From 736289f2241f3e6eeeb004d863d88a0b2a47f15a Mon Sep 17 00:00:00 2001
From: webchick <drupal@webchick.net>
Date: Wed, 29 Apr 2015 20:45:28 -0700
Subject: [PATCH] Issue #2461863 by stefan.r: Upgrade PHPUnit to the latest
 stable release

---
 core/composer.json                            |    2 +-
 core/composer.lock                            |  325 ++-
 core/vendor/composer/autoload_classmap.php    |   20 +-
 core/vendor/composer/autoload_namespaces.php  |    2 +
 core/vendor/composer/include_paths.php        |    2 -
 core/vendor/composer/installed.json           | 1961 ++++++++--------
 .../reflection-docblock/.gitignore            |    2 +
 .../reflection-docblock/.travis.yml           |   32 +
 .../phpdocumentor/reflection-docblock/LICENSE |   21 +
 .../reflection-docblock/README.md             |   57 +
 .../reflection-docblock/composer.json         |   26 +
 .../reflection-docblock/composer.lock         |  827 +++++++
 .../reflection-docblock/phpunit.xml.dist      |   14 +
 .../src/phpDocumentor/Reflection/DocBlock.php |  468 ++++
 .../Reflection/DocBlock/Context.php           |  154 ++
 .../Reflection/DocBlock/Description.php       |  223 ++
 .../Reflection/DocBlock/Location.php          |   76 +
 .../Reflection/DocBlock/Serializer.php        |  198 ++
 .../phpDocumentor/Reflection/DocBlock/Tag.php |  377 +++
 .../Reflection/DocBlock/Tag/AuthorTag.php     |  131 ++
 .../Reflection/DocBlock/Tag/CoversTag.php     |   24 +
 .../Reflection/DocBlock/Tag/DeprecatedTag.php |   26 +
 .../Reflection/DocBlock/Tag/ExampleTag.php    |  156 ++
 .../Reflection/DocBlock/Tag/LinkTag.php       |   81 +
 .../Reflection/DocBlock/Tag/MethodTag.php     |  209 ++
 .../Reflection/DocBlock/Tag/ParamTag.php      |  119 +
 .../DocBlock/Tag/PropertyReadTag.php          |   24 +
 .../Reflection/DocBlock/Tag/PropertyTag.php   |   24 +
 .../DocBlock/Tag/PropertyWriteTag.php         |   24 +
 .../Reflection/DocBlock/Tag/ReturnTag.php     |   99 +
 .../Reflection/DocBlock/Tag/SeeTag.php        |   81 +
 .../Reflection/DocBlock/Tag/SinceTag.php      |   26 +
 .../Reflection/DocBlock/Tag/SourceTag.php     |  137 ++
 .../Reflection/DocBlock/Tag/ThrowsTag.php     |   24 +
 .../Reflection/DocBlock/Tag/UsesTag.php       |   24 +
 .../Reflection/DocBlock/Tag/VarTag.php        |   24 +
 .../Reflection/DocBlock/Tag/VersionTag.php    |  108 +
 .../Reflection/DocBlock/Type/Collection.php   |  221 ++
 .../Reflection/DocBlock/DescriptionTest.php   |  245 ++
 .../Reflection/DocBlock/Tag/CoversTagTest.php |   86 +
 .../DocBlock/Tag/DeprecatedTagTest.php        |  115 +
 .../DocBlock/Tag/ExampleTagTest.php           |  203 ++
 .../Reflection/DocBlock/Tag/LinkTagTest.php   |   87 +
 .../Reflection/DocBlock/Tag/MethodTagTest.php |  146 ++
 .../Reflection/DocBlock/Tag/ParamTagTest.php  |  118 +
 .../Reflection/DocBlock/Tag/ReturnTagTest.php |  102 +
 .../Reflection/DocBlock/Tag/SeeTagTest.php    |   86 +
 .../Reflection/DocBlock/Tag/SinceTagTest.php  |  115 +
 .../Reflection/DocBlock/Tag/SourceTagTest.php |  116 +
 .../Reflection/DocBlock/Tag/ThrowsTagTest.php |  102 +
 .../Reflection/DocBlock/Tag/UsesTagTest.php   |   86 +
 .../Reflection/DocBlock/Tag/VarTagTest.php    |   94 +
 .../DocBlock/Tag/VersionTagTest.php           |  115 +
 .../Reflection/DocBlock/TagTest.php           |  313 +++
 .../DocBlock/Type/CollectionTest.php          |  195 ++
 .../phpDocumentor/Reflection/DocBlockTest.php |  337 +++
 core/vendor/phpspec/prophecy/.gitignore       |    5 +
 core/vendor/phpspec/prophecy/.travis.yml      |    9 +
 core/vendor/phpspec/prophecy/CHANGES.md       |  110 +
 core/vendor/phpspec/prophecy/CONTRIBUTING.md  |   21 +
 core/vendor/phpspec/prophecy/LICENSE          |   23 +
 core/vendor/phpspec/prophecy/README.md        |  389 ++++
 core/vendor/phpspec/prophecy/composer.json    |   40 +
 .../Argument/ArgumentsWildcardSpec.php        |  143 ++
 .../Argument/Token/AnyValueTokenSpec.php      |   28 +
 .../Argument/Token/AnyValuesTokenSpec.php     |   28 +
 .../Argument/Token/ArrayCountTokenSpec.php    |   64 +
 .../Argument/Token/ArrayEntryTokenSpec.php    |  229 ++
 .../Token/ArrayEveryEntryTokenSpec.php        |  109 +
 .../Argument/Token/CallbackTokenSpec.php      |   42 +
 .../Argument/Token/ExactValueTokenSpec.php    |  155 ++
 .../Token/IdenticalValueTokenSpec.php         |  152 ++
 .../Argument/Token/LogicalAndTokenSpec.php    |   78 +
 .../Argument/Token/LogicalNotTokenSpec.php    |   65 +
 .../Argument/Token/ObjectStateTokenSpec.php   |  101 +
 .../Token/StringContainsTokenSpec.php         |   49 +
 .../Prophecy/Argument/Token/TypeTokenSpec.php |   59 +
 .../prophecy/spec/Prophecy/ArgumentSpec.php   |  101 +
 .../spec/Prophecy/Call/CallCenterSpec.php     |  188 ++
 .../prophecy/spec/Prophecy/Call/CallSpec.php  |   54 +
 .../DisableConstructorPatchSpec.php           |   59 +
 .../ClassPatch/HhvmExceptionPatchSpec.php     |   37 +
 .../Doubler/ClassPatch/KeywordPatchSpec.php   |   44 +
 .../Doubler/ClassPatch/MagicCallPatchSpec.php |   76 +
 .../ClassPatch/ProphecySubjectPatchSpec.php   |   83 +
 .../ReflectionClassNewInstancePatchSpec.php   |   47 +
 .../ClassPatch/SplFileInfoPatchSpec.php       |   91 +
 .../ClassPatch/TraversablePatchSpec.php       |   61 +
 .../spec/Prophecy/Doubler/DoublerSpec.php     |  122 +
 .../Generator/ClassCodeGeneratorSpec.php      |  186 ++
 .../Doubler/Generator/ClassCreatorSpec.php    |   44 +
 .../Doubler/Generator/ClassMirrorSpec.php     |  554 +++++
 .../Generator/Node/ArgumentNodeSpec.php       |   62 +
 .../Doubler/Generator/Node/ClassNodeSpec.php  |  154 ++
 .../Doubler/Generator/Node/MethodNodeSpec.php |  123 +
 .../spec/Prophecy/Doubler/LazyDoubleSpec.php  |   96 +
 .../Prophecy/Doubler/NameGeneratorSpec.php    |   72 +
 .../Call/UnexpectedCallExceptionSpec.php      |   32 +
 .../Doubler/ClassCreatorExceptionSpec.php     |   28 +
 .../Doubler/ClassMirrorExceptionSpec.php      |   27 +
 .../Doubler/ClassNotFoundExceptionSpec.php    |   25 +
 .../Exception/Doubler/DoubleExceptionSpec.php |   14 +
 .../InterfaceNotFoundExceptionSpec.php        |   24 +
 .../Doubler/MethodNotFoundExceptionSpec.php   |   40 +
 .../Prediction/AggregateExceptionSpec.php     |   57 +
 .../Prediction/NoCallsExceptionSpec.php       |   29 +
 .../UnexpectedCallsCountExceptionSpec.php     |   31 +
 .../UnexpectedCallsExceptionSpec.php          |   36 +
 .../Prophecy/MethodProphecyExceptionSpec.php  |   30 +
 .../Prophecy/ObjectProphecyExceptionSpec.php  |   27 +
 .../Prediction/CallPredictionSpec.php         |   42 +
 .../Prediction/CallTimesPredictionSpec.php    |   54 +
 .../Prediction/CallbackPredictionSpec.php     |   36 +
 .../Prediction/NoCallsPredictionSpec.php      |   43 +
 .../Prophecy/Promise/CallbackPromiseSpec.php  |  110 +
 .../Promise/ReturnArgumentPromiseSpec.php     |   41 +
 .../Prophecy/Promise/ReturnPromiseSpec.php    |   61 +
 .../Prophecy/Promise/ThrowPromiseSpec.php     |   58 +
 .../Prophecy/Prophecy/MethodProphecySpec.php  |  381 ++++
 .../Prophecy/Prophecy/ObjectProphecySpec.php  |  305 +++
 .../spec/Prophecy/Prophecy/RevealerSpec.php   |   51 +
 .../prophecy/spec/Prophecy/ProphetSpec.php    |   91 +
 .../spec/Prophecy/Util/StringUtilSpec.php     |   97 +
 .../prophecy/src/Prophecy/Argument.php        |  198 ++
 .../Prophecy/Argument/ArgumentsWildcard.php   |  101 +
 .../Prophecy/Argument/Token/AnyValueToken.php |   52 +
 .../Argument/Token/AnyValuesToken.php         |   52 +
 .../Argument/Token/ArrayCountToken.php        |   86 +
 .../Argument/Token/ArrayEntryToken.php        |  143 ++
 .../Argument/Token/ArrayEveryEntryToken.php   |   82 +
 .../Prophecy/Argument/Token/CallbackToken.php |   75 +
 .../Argument/Token/ExactValueToken.php        |  116 +
 .../Argument/Token/IdenticalValueToken.php    |   74 +
 .../Argument/Token/LogicalAndToken.php        |   80 +
 .../Argument/Token/LogicalNotToken.php        |   73 +
 .../Argument/Token/ObjectStateToken.php       |  104 +
 .../Argument/Token/StringContainsToken.php    |   67 +
 .../Argument/Token/TokenInterface.php         |   43 +
 .../src/Prophecy/Argument/Token/TypeToken.php |   76 +
 .../prophecy/src/Prophecy/Call/Call.php       |  127 ++
 .../prophecy/src/Prophecy/Call/CallCenter.php |  152 ++
 .../src/Prophecy/Doubler/CachedDoubler.php    |   68 +
 .../ClassPatch/ClassPatchInterface.php        |   48 +
 .../ClassPatch/DisableConstructorPatch.php    |   72 +
 .../Doubler/ClassPatch/HhvmExceptionPatch.php |   63 +
 .../Doubler/ClassPatch/KeywordPatch.php       |  135 ++
 .../Doubler/ClassPatch/MagicCallPatch.php     |   73 +
 .../ClassPatch/ProphecySubjectPatch.php       |   98 +
 .../ReflectionClassNewInstancePatch.php       |   57 +
 .../Doubler/ClassPatch/SplFileInfoPatch.php   |   85 +
 .../Doubler/ClassPatch/TraversablePatch.php   |   83 +
 .../src/Prophecy/Doubler/DoubleInterface.php  |   22 +
 .../prophecy/src/Prophecy/Doubler/Doubler.php |  146 ++
 .../Doubler/Generator/ClassCodeGenerator.php  |   91 +
 .../Doubler/Generator/ClassCreator.php        |   67 +
 .../Doubler/Generator/ClassMirror.php         |  202 ++
 .../Doubler/Generator/Node/ArgumentNode.php   |   75 +
 .../Doubler/Generator/Node/ClassNode.php      |  130 ++
 .../Doubler/Generator/Node/MethodNode.php     |  129 ++
 .../Doubler/Generator/ReflectionInterface.php |   22 +
 .../src/Prophecy/Doubler/LazyDouble.php       |  127 ++
 .../src/Prophecy/Doubler/NameGenerator.php    |   52 +
 .../Call/UnexpectedCallException.php          |   40 +
 .../Doubler/ClassCreatorException.php         |   31 +
 .../Doubler/ClassMirrorException.php          |   31 +
 .../Doubler/ClassNotFoundException.php        |   33 +
 .../Exception/Doubler/DoubleException.php     |   18 +
 .../Exception/Doubler/DoublerException.php    |   18 +
 .../Doubler/InterfaceNotFoundException.php    |   20 +
 .../Doubler/MethodNotFoundException.php       |   60 +
 .../Doubler/ReturnByReferenceException.php    |   41 +
 .../src/Prophecy/Exception/Exception.php      |   26 +
 .../Exception/InvalidArgumentException.php    |   16 +
 .../Prediction/AggregateException.php         |   50 +
 .../Prediction/FailedPredictionException.php  |   24 +
 .../Exception/Prediction/NoCallsException.php |   18 +
 .../Prediction/PredictionException.php        |   18 +
 .../UnexpectedCallsCountException.php         |   31 +
 .../Prediction/UnexpectedCallsException.php   |   32 +
 .../Prophecy/MethodProphecyException.php      |   34 +
 .../Prophecy/ObjectProphecyException.php      |   34 +
 .../Exception/Prophecy/ProphecyException.php  |   18 +
 .../Prophecy/Prediction/CallPrediction.php    |   86 +
 .../Prediction/CallTimesPrediction.php        |  107 +
 .../Prediction/CallbackPrediction.php         |   65 +
 .../Prophecy/Prediction/NoCallsPrediction.php |   68 +
 .../Prediction/PredictionInterface.php        |   37 +
 .../src/Prophecy/Promise/CallbackPromise.php  |   66 +
 .../src/Prophecy/Promise/PromiseInterface.php |   35 +
 .../Promise/ReturnArgumentPromise.php         |   61 +
 .../src/Prophecy/Promise/ReturnPromise.php    |   55 +
 .../src/Prophecy/Promise/ThrowPromise.php     |   91 +
 .../src/Prophecy/Prophecy/MethodProphecy.php  |  409 ++++
 .../src/Prophecy/Prophecy/ObjectProphecy.php  |  279 +++
 .../Prophecy/Prophecy/ProphecyInterface.php   |   27 +
 .../Prophecy/ProphecySubjectInterface.php     |   34 +
 .../src/Prophecy/Prophecy/Revealer.php        |   44 +
 .../Prophecy/Prophecy/RevealerInterface.php   |   29 +
 .../phpspec/prophecy/src/Prophecy/Prophet.php |  134 ++
 .../prophecy/src/Prophecy/Util/ExportUtil.php |  185 ++
 .../prophecy/src/Prophecy/Util/StringUtil.php |   89 +
 .../phpunit/php-code-coverage/CONTRIBUTING.md |    2 +-
 core/vendor/phpunit/php-code-coverage/LICENSE |    2 +-
 .../phpunit/php-code-coverage/README.md       |    6 +-
 .../phpunit/php-code-coverage/build.xml       |    1 -
 .../phpunit/php-code-coverage/composer.json   |    7 +-
 .../php-code-coverage/src/CodeCoverage.php    |   55 +-
 .../src/CodeCoverage/Driver.php               |   47 +-
 .../src/CodeCoverage/Driver/HHVM.php          |   49 +-
 .../src/CodeCoverage/Driver/Xdebug.php        |   47 +-
 .../src/CodeCoverage/Exception.php            |   47 +-
 .../Exception/UnintentionallyCoveredCode.php  |   47 +-
 .../src/CodeCoverage/Filter.php               |   56 +-
 .../src/CodeCoverage/Report/Clover.php        |   47 +-
 .../src/CodeCoverage/Report/Crap4j.php        |   69 +-
 .../src/CodeCoverage/Report/Factory.php       |   53 +-
 .../src/CodeCoverage/Report/HTML.php          |   49 +-
 .../src/CodeCoverage/Report/HTML/Renderer.php |   56 +-
 .../Report/HTML/Renderer/Dashboard.php        |   85 +-
 .../Report/HTML/Renderer/Directory.php        |   47 +-
 .../Report/HTML/Renderer/File.php             |   47 +-
 .../Renderer/Template/css/bootstrap.min.css   |    6 +-
 .../fonts/glyphicons-halflings-regular.eot    |  215 +-
 .../fonts/glyphicons-halflings-regular.svg    |  485 ++--
 .../fonts/glyphicons-halflings-regular.ttf    | 1018 ++++++---
 .../fonts/glyphicons-halflings-regular.woff   |  190 +-
 .../fonts/glyphicons-halflings-regular.woff2  |   73 +
 .../Renderer/Template/js/bootstrap.min.js     |    7 +-
 .../HTML/Renderer/Template/js/d3.min.js       |   10 +-
 .../HTML/Renderer/Template/js/holder.js       | 2019 ++++++++++++-----
 .../HTML/Renderer/Template/js/jquery.min.js   |    8 +-
 .../src/CodeCoverage/Report/Node.php          |   47 +-
 .../CodeCoverage/Report/Node/Directory.php    |   62 +-
 .../src/CodeCoverage/Report/Node/File.php     |  101 +-
 .../src/CodeCoverage/Report/Node/Iterator.php |   47 +-
 .../src/CodeCoverage/Report/PHP.php           |   47 +-
 .../src/CodeCoverage/Report/Text.php          |   59 +-
 .../src/CodeCoverage/Report/XML.php           |   47 +-
 .../src/CodeCoverage/Report/XML/Directory.php |   47 +-
 .../src/CodeCoverage/Report/XML/File.php      |   59 +-
 .../CodeCoverage/Report/XML/File/Coverage.php |   47 +-
 .../CodeCoverage/Report/XML/File/Method.php   |   47 +-
 .../CodeCoverage/Report/XML/File/Report.php   |   56 +-
 .../src/CodeCoverage/Report/XML/File/Unit.php |   62 +-
 .../src/CodeCoverage/Report/XML/Node.php      |   56 +-
 .../src/CodeCoverage/Report/XML/Project.php   |   56 +-
 .../src/CodeCoverage/Report/XML/Tests.php     |   50 +-
 .../src/CodeCoverage/Report/XML/Totals.php    |   78 +-
 .../src/CodeCoverage/Util.php                 |   47 +-
 .../Util/InvalidArgumentHelper.php            |   47 +-
 .../tests/PHP/CodeCoverage/FilterTest.php     |   48 +-
 .../PHP/CodeCoverage/Report/CloverTest.php    |   48 +-
 .../PHP/CodeCoverage/Report/FactoryTest.php   |   48 +-
 .../tests/PHP/CodeCoverage/UtilTest.php       |   48 +-
 .../tests/PHP/CodeCoverageTest.php            |   48 +-
 .../php-code-coverage/tests/TestCase.php      |   48 +-
 .../php-file-iterator/ChangeLog.markdown      |   31 -
 .../phpunit/php-file-iterator/ChangeLog.md    |   10 +
 .../File/Iterator/Autoload.php                |   66 -
 .../File/Iterator/Autoload.php.in             |   64 -
 core/vendor/phpunit/php-file-iterator/LICENSE |    2 +-
 .../phpunit/php-file-iterator/README.markdown |   23 -
 .../phpunit/php-file-iterator/README.md       |   12 +
 .../phpunit/php-file-iterator/build.xml       |  161 --
 .../ControlSignatureSniff.php                 |   22 -
 .../Whitespace/ConcatenationSpacingSniff.php  |   22 -
 .../php-file-iterator/build/PHPCS/ruleset.xml |   35 -
 .../phpunit/php-file-iterator/build/phpmd.xml |   27 -
 .../phpunit/php-file-iterator/composer.json   |   11 +-
 .../phpunit/php-file-iterator/package.xml     |   65 -
 .../{File/Iterator => src}/Facade.php         |   45 +-
 .../{File/Iterator => src}/Factory.php        |   78 +-
 .../{File => src}/Iterator.php                |   45 +-
 core/vendor/phpunit/php-token-stream/LICENSE  |    2 +-
 .../phpunit/php-token-stream/composer.json    |    2 +-
 .../phpunit/php-token-stream/src/Token.php    |   57 +-
 .../php-token-stream/src/Token/Stream.php     |   45 +-
 .../src/Token/Stream/CachingFactory.php       |   45 +-
 .../tests/Token/ClassTest.php                 |   46 +-
 .../tests/Token/ClosureTest.php               |   46 +-
 .../tests/Token/FunctionTest.php              |   46 +-
 .../tests/Token/IncludeTest.php               |   46 +-
 .../tests/Token/InterfaceTest.php             |   47 +-
 .../tests/Token/NamespaceTest.php             |   46 +-
 .../php-token-stream/tests/TokenTest.php      |   46 +-
 .../phpunit/phpunit-mock-objects/.travis.yml  |    1 +
 .../phpunit/phpunit-mock-objects/LICENSE      |    2 +-
 .../phpunit-mock-objects/composer.json        |    4 +-
 .../Framework/MockObject/Builder/Identity.php |   46 +-
 .../MockObject/Builder/InvocationMocker.php   |   46 +-
 .../Framework/MockObject/Builder/Match.php    |   46 +-
 .../MockObject/Builder/MethodNameMatch.php    |   46 +-
 .../MockObject/Builder/Namespace.php          |   46 +-
 .../MockObject/Builder/ParametersMatch.php    |   46 +-
 .../src/Framework/MockObject/Builder/Stub.php |   46 +-
 .../Exception/BadMethodCallException.php      |   46 +-
 .../MockObject/Exception/Exception.php        |   46 +-
 .../MockObject/Exception/RuntimeException.php |   46 +-
 .../src/Framework/MockObject/Generator.php    |   52 +-
 .../src/Framework/MockObject/Invocation.php   |   46 +-
 .../MockObject/Invocation/Object.php          |   46 +-
 .../MockObject/Invocation/Static.php          |   46 +-
 .../Framework/MockObject/InvocationMocker.php |   46 +-
 .../src/Framework/MockObject/Invokable.php    |   46 +-
 .../src/Framework/MockObject/Matcher.php      |   46 +-
 .../MockObject/Matcher/AnyInvokedCount.php    |   46 +-
 .../MockObject/Matcher/AnyParameters.php      |   46 +-
 .../Matcher/ConsecutiveParameters.php         |   45 +-
 .../MockObject/Matcher/Invocation.php         |   46 +-
 .../MockObject/Matcher/InvokedAtIndex.php     |   46 +-
 .../Matcher/InvokedAtLeastCount.php           |   46 +-
 .../MockObject/Matcher/InvokedAtLeastOnce.php |   46 +-
 .../MockObject/Matcher/InvokedAtMostCount.php |   46 +-
 .../MockObject/Matcher/InvokedCount.php       |   46 +-
 .../MockObject/Matcher/InvokedRecorder.php    |   46 +-
 .../MockObject/Matcher/MethodName.php         |   46 +-
 .../MockObject/Matcher/Parameters.php         |   46 +-
 .../Matcher/StatelessInvocation.php           |   46 +-
 .../src/Framework/MockObject/MockBuilder.php  |   47 +-
 .../src/Framework/MockObject/MockObject.php   |   46 +-
 .../src/Framework/MockObject/Stub.php         |   46 +-
 .../MockObject/Stub/ConsecutiveCalls.php      |   47 +-
 .../Framework/MockObject/Stub/Exception.php   |   47 +-
 .../MockObject/Stub/MatcherCollection.php     |   46 +-
 .../src/Framework/MockObject/Stub/Return.php  |   46 +-
 .../MockObject/Stub/ReturnArgument.php        |   46 +-
 .../MockObject/Stub/ReturnCallback.php        |   46 +-
 .../Framework/MockObject/Stub/ReturnSelf.php  |   47 +-
 .../MockObject/Stub/ReturnValueMap.php        |   46 +-
 .../src/Framework/MockObject/Verifiable.php   |   46 +-
 .../tests/GeneratorTest.php                   |    2 +-
 .../tests/MockBuilderTest.php                 |   47 +-
 .../tests/MockObjectTest.php                  |   46 +-
 .../tests/ProxyObjectTest.php                 |   46 +-
 core/vendor/phpunit/phpunit/.travis.yml       |    6 +-
 core/vendor/phpunit/phpunit/ChangeLog-4.0.md  |  115 +
 core/vendor/phpunit/phpunit/ChangeLog-4.1.md  |   44 +
 core/vendor/phpunit/phpunit/ChangeLog-4.2.md  |   31 +
 core/vendor/phpunit/phpunit/ChangeLog-4.3.md  |   32 +
 core/vendor/phpunit/phpunit/ChangeLog-4.4.md  |   32 +
 core/vendor/phpunit/phpunit/ChangeLog-4.5.md  |   10 +
 core/vendor/phpunit/phpunit/ChangeLog-4.6.md  |   26 +
 core/vendor/phpunit/phpunit/README.md         |    8 +-
 core/vendor/phpunit/phpunit/build.xml         |   27 +-
 .../phpunit/build/phar-autoload.php.in        |   21 +-
 .../phpunit/phpunit/build/phar-manifest.php   |    1 -
 core/vendor/phpunit/phpunit/composer.json     |   19 +-
 core/vendor/phpunit/phpunit/phpunit.xsd       |    6 +-
 .../phpunit/src/Extensions/GroupTestSuite.php |    3 +-
 .../phpunit/src/Extensions/RepeatedTest.php   |    3 +-
 .../phpunit/phpunit/src/Framework/Assert.php  |   22 +-
 .../Constraint/ExceptionMessageRegExp.php     |    2 +-
 .../src/Framework/Constraint/IsEqual.php      |    9 +-
 .../src/Framework/Constraint/IsType.php       |    2 +-
 .../Framework/Constraint/StringMatches.php    |    4 +-
 .../src/Framework/IncompleteTestCase.php      |    2 +
 .../phpunit/src/Framework/TestCase.php        |  278 ++-
 .../phpunit/src/Framework/TestSuite.php       |   17 +
 .../phpunit/src/Runner/BaseTestRunner.php     |   12 +-
 .../phpunit/src/Runner/Filter/Group.php       |    3 +-
 .../phpunit/src/Runner/Filter/Test.php        |    6 +-
 .../phpunit/phpunit/src/Runner/Version.php    |    4 +-
 .../phpunit/phpunit/src/TextUI/Command.php    |   27 +-
 .../phpunit/src/TextUI/ResultPrinter.php      |   72 +-
 .../phpunit/phpunit/src/TextUI/TestRunner.php |   96 +-
 .../phpunit/phpunit/src/Util/Blacklist.php    |    6 +-
 .../phpunit/src/Util/Configuration.php        |  121 +-
 .../phpunit/phpunit/src/Util/Fileloader.php   |    3 +-
 .../phpunit/phpunit/src/Util/Filter.php       |    3 +-
 .../phpunit/phpunit/src/Util/Getopt.php       |   10 +-
 .../phpunit/phpunit/src/Util/GlobalState.php  |    3 +-
 .../phpunit/phpunit/src/Util/Log/JUnit.php    |   27 +-
 .../phpunit/phpunit/src/Util/Log/TAP.php      |    3 +-
 core/vendor/phpunit/phpunit/src/Util/PHP.php  |   32 +-
 .../phpunit/phpunit/src/Util/Printer.php      |    4 +-
 core/vendor/phpunit/phpunit/src/Util/Test.php |    6 +-
 core/vendor/phpunit/phpunit/src/Util/XML.php  |    2 +-
 .../phpunit/tests/Framework/AssertTest.php    |   25 +-
 .../tests/Framework/Constraint/CountTest.php  |    2 +-
 .../tests/Framework/ConstraintTest.php        |  441 ++--
 .../phpunit/tests/Framework/SuiteTest.php     |    1 -
 .../phpunit/tests/Regression/1021.phpt        |    2 +-
 .../phpunit/phpunit/tests/Regression/523.phpt |    2 +-
 .../phpunit/phpunit/tests/Regression/578.phpt |    2 +-
 .../phpunit/phpunit/tests/Regression/684.phpt |    2 +-
 .../phpunit/phpunit/tests/Regression/783.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1149.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1216.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1265.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1330.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1335.phpt |    2 +-
 .../Regression/GitHub/1335/Issue1335Test.php  |   24 +-
 .../phpunit/tests/Regression/GitHub/1337.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1340.phpt |    8 +-
 .../Regression/GitHub/1340/Issue1340Test.php  |    6 +-
 .../phpunit/tests/Regression/GitHub/1348.phpt |    6 +-
 .../phpunit/tests/Regression/GitHub/1351.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1374.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1437.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/1468.phpt |    2 +-
 .../Regression/GitHub/1468/Issue1468Test.php  |    1 -
 .../phpunit/tests/Regression/GitHub/1471.phpt |    2 +-
 .../Regression/GitHub/1471/Issue1471Test.php  |    1 -
 .../phpunit/tests/Regression/GitHub/1472.phpt |    9 +-
 .../phpunit/tests/Regression/GitHub/1570.phpt |    2 +-
 .../phpunit/tests/Regression/GitHub/244.phpt  |    2 +-
 .../phpunit/tests/Regression/GitHub/322.phpt  |    2 +-
 .../phpunit/tests/Regression/GitHub/433.phpt  |    2 +-
 .../phpunit/tests/Regression/GitHub/445.phpt  |    4 +-
 .../phpunit/tests/Regression/GitHub/498.phpt  |    2 +-
 .../Regression/GitHub/498/Issue498Test.php    |    1 -
 .../phpunit/tests/Regression/GitHub/503.phpt  |    2 +-
 .../phpunit/tests/Regression/GitHub/581.phpt  |    2 +-
 .../Regression/GitHub/581/Issue581Test.php    |    4 +-
 .../phpunit/tests/Regression/GitHub/74.phpt   |    2 +-
 .../phpunit/tests/Regression/GitHub/765.phpt  |    2 +-
 .../phpunit/tests/Regression/GitHub/797.phpt  |    2 +-
 .../phpunit/tests/Regression/GitHub/863.phpt  |    2 +-
 .../tests/TextUI/abstract-test-class.phpt     |    2 +-
 .../phpunit/tests/TextUI/colors-always.phpt   |   19 +
 .../tests/TextUI/concrete-test-class.phpt     |    2 +-
 .../tests/TextUI/custom-printer-debug.phpt    |    2 +-
 .../tests/TextUI/custom-printer-verbose.phpt  |    2 +-
 .../tests/TextUI/dataprovider-debug.phpt      |    2 +-
 .../dataprovider-log-xml-isolation.phpt       |    2 +-
 .../tests/TextUI/dataprovider-log-xml.phpt    |    2 +-
 .../tests/TextUI/dataprovider-testdox.phpt    |    2 +-
 .../phpunit/phpunit/tests/TextUI/debug.phpt   |    2 +-
 .../tests/TextUI/default-isolation.phpt       |    2 +-
 .../phpunit/phpunit/tests/TextUI/default.phpt |    2 +-
 .../tests/TextUI/dependencies-isolation.phpt  |    2 +-
 .../phpunit/tests/TextUI/dependencies.phpt    |    2 +-
 .../tests/TextUI/dependencies2-isolation.phpt |    2 +-
 .../phpunit/tests/TextUI/dependencies2.phpt   |    2 +-
 .../tests/TextUI/dependencies3-isolation.phpt |    2 +-
 .../phpunit/tests/TextUI/dependencies3.phpt   |    2 +-
 .../phpunit/tests/TextUI/empty-testcase.phpt  |    2 +-
 .../phpunit/tests/TextUI/exception-stack.phpt |    2 +-
 .../tests/TextUI/exclude-group-isolation.phpt |    2 +-
 .../phpunit/tests/TextUI/exclude-group.phpt   |    2 +-
 .../tests/TextUI/failure-isolation.phpt       |    2 +-
 .../phpunit/phpunit/tests/TextUI/failure.phpt |    2 +-
 .../phpunit/tests/TextUI/fatal-isolation.phpt |    2 +-
 .../phpunit/phpunit/tests/TextUI/fatal.phpt   |    2 +-
 .../tests/TextUI/filter-class-isolation.phpt  |    2 +-
 .../phpunit/tests/TextUI/filter-class.phpt    |    2 +-
 ...ider-by-classname-and-range-isolation.phpt |    2 +-
 ...r-dataprovider-by-classname-and-range.phpt |    2 +-
 ...lter-dataprovider-by-number-isolation.phpt |    2 +-
 .../TextUI/filter-dataprovider-by-number.phpt |    2 +-
 ...-dataprovider-by-only-range-isolation.phpt |    2 +-
 .../filter-dataprovider-by-only-range.phpt    |    2 +-
 ...dataprovider-by-only-regexp-isolation.phpt |    2 +-
 .../filter-dataprovider-by-only-regexp.phpt   |    2 +-
 ...dataprovider-by-only-string-isolation.phpt |    2 +-
 .../filter-dataprovider-by-only-string.phpt   |    2 +-
 ...ilter-dataprovider-by-range-isolation.phpt |    2 +-
 .../TextUI/filter-dataprovider-by-range.phpt  |    2 +-
 ...lter-dataprovider-by-regexp-isolation.phpt |    2 +-
 .../TextUI/filter-dataprovider-by-regexp.phpt |    2 +-
 ...lter-dataprovider-by-string-isolation.phpt |    2 +-
 .../TextUI/filter-dataprovider-by-string.phpt |    2 +-
 .../filter-method-case-insensitive.phpt       |    2 +-
 ...ilter-method-case-sensitive-no-result.phpt |    2 +-
 .../tests/TextUI/filter-method-isolation.phpt |    2 +-
 .../phpunit/tests/TextUI/filter-method.phpt   |    2 +-
 .../tests/TextUI/filter-no-results.phpt       |    2 +-
 .../phpunit/tests/TextUI/group-isolation.phpt |    2 +-
 .../phpunit/phpunit/tests/TextUI/group.phpt   |    2 +-
 .../phpunit/phpunit/tests/TextUI/help.phpt    |    8 +-
 .../phpunit/phpunit/tests/TextUI/help2.phpt   |    8 +-
 .../phpunit/tests/TextUI/ini-isolation.phpt   |    2 +-
 .../phpunit/tests/TextUI/list-groups.phpt     |    2 +-
 .../TextUI/log-json-no-pretty-print.phpt      |    2 +-
 .../tests/TextUI/log-json-post-66021.phpt     |    2 +-
 .../tests/TextUI/log-json-pre-66021.phpt      |    2 +-
 .../phpunit/phpunit/tests/TextUI/log-tap.phpt |    2 +-
 .../phpunit/phpunit/tests/TextUI/log-xml.phpt |    2 +-
 .../tests/TextUI/output-isolation.phpt        |    2 +-
 .../phpunit/phpunit/tests/TextUI/repeat.phpt  |    2 +-
 ...t => report-useless-tests-incomplete.phpt} |    6 +-
 ...pt => report-useless-tests-isolation.phpt} |    6 +-
 ...{strict.phpt => report-useless-tests.phpt} |    6 +-
 .../tests/TextUI/test-suffix-multiple.phpt    |    2 +-
 .../tests/TextUI/test-suffix-single.phpt      |    2 +-
 .../phpunit/tests/TextUI/testdox-html.phpt    |    2 +-
 .../phpunit/tests/TextUI/testdox-text.phpt    |    2 +-
 .../phpunit/phpunit/tests/TextUI/testdox.phpt |    2 +-
 .../phpunit/tests/Util/ConfigurationTest.php  |   52 +-
 .../phpunit/tests/Util/GlobalStateTest.php    |    6 +-
 .../phpunit/phpunit/tests/Util/TestTest.php   |    2 +-
 .../phpunit/phpunit/tests/Util/XMLTest.php    |    2 +-
 .../tests/_files/Inheritance/InheritanceA.php |    1 -
 .../tests/_files/Inheritance/InheritanceB.php |    1 -
 .../phpunit/tests/_files/NonStatic.php        |    2 +-
 .../_files/configuration.colors.empty.xml     |    1 +
 .../_files/configuration.colors.false.xml     |    1 +
 .../_files/configuration.colors.invalid.xml   |    1 +
 .../_files/configuration.colors.true.xml      |    1 +
 .../phpunit/tests/_files/configuration.xml    |    2 +
 .../tests/_files/configuration_xinclude.xml   |    8 +-
 core/vendor/sebastian/comparator/.travis.yml  |    6 +-
 core/vendor/sebastian/comparator/LICENSE      |    2 +-
 .../vendor/sebastian/comparator/composer.json |    8 +-
 .../comparator/src/ArrayComparator.php        |   45 +-
 .../sebastian/comparator/src/Comparator.php   |   45 +-
 .../comparator/src/ComparisonFailure.php      |   46 +-
 .../comparator/src/DOMNodeComparator.php      |   45 +-
 .../comparator/src/DateTimeComparator.php     |   45 +-
 .../comparator/src/DoubleComparator.php       |   45 +-
 .../comparator/src/ExceptionComparator.php    |   45 +-
 .../sebastian/comparator/src/Factory.php      |   62 +-
 .../comparator/src/MockObjectComparator.php   |   45 +-
 .../comparator/src/NumericComparator.php      |   46 +-
 .../comparator/src/ObjectComparator.php       |   45 +-
 .../comparator/src/ResourceComparator.php     |   45 +-
 .../comparator/src/ScalarComparator.php       |   45 +-
 .../src/SplObjectStorageComparator.php        |   45 +-
 .../comparator/src/TypeComparator.php         |   45 +-
 .../comparator/tests/ArrayComparatorTest.php  |   45 +-
 .../tests/DOMNodeComparatorTest.php           |   45 +-
 .../tests/DateTimeComparatorTest.php          |   45 +-
 .../comparator/tests/DoubleComparatorTest.php |   45 +-
 .../tests/ExceptionComparatorTest.php         |   45 +-
 .../comparator/tests/FactoryTest.php          |   45 +-
 .../tests/MockObjectComparatorTest.php        |   45 +-
 .../tests/NumericComparatorTest.php           |   47 +-
 .../comparator/tests/ObjectComparatorTest.php |   45 +-
 .../tests/ResourceComparatorTest.php          |   45 +-
 .../comparator/tests/ScalarComparatorTest.php |   45 +-
 .../tests/SplObjectStorageComparatorTest.php  |   45 +-
 .../comparator/tests/TypeComparatorTest.php   |   45 +-
 .../comparator/tests/_files/Author.php        |   45 +-
 .../comparator/tests/_files/Book.php          |   45 +-
 .../tests/_files/ClassWithToString.php        |   43 +-
 .../comparator/tests/_files/SampleClass.php   |   45 +-
 .../comparator/tests/_files/Struct.php        |   45 +-
 .../comparator/tests/_files/TestClass.php     |   43 +-
 .../tests/_files/TestClassComparator.php      |   43 +-
 core/vendor/sebastian/diff/.travis.yml        |    5 +-
 core/vendor/sebastian/diff/LICENSE            |    2 +-
 core/vendor/sebastian/diff/composer.json      |    2 +-
 core/vendor/sebastian/diff/src/Chunk.php      |   46 +-
 core/vendor/sebastian/diff/src/Diff.php       |   46 +-
 core/vendor/sebastian/diff/src/Differ.php     |   54 +-
 .../diff/src/LCS/LongestCommonSubsequence.php |   46 +-
 ...LongestCommonSubsequenceImplementation.php |   46 +-
 ...LongestCommonSubsequenceImplementation.php |   75 +-
 core/vendor/sebastian/diff/src/Line.php       |   46 +-
 core/vendor/sebastian/diff/src/Parser.php     |  104 +-
 .../sebastian/diff/tests/DifferTest.php       |  Bin 7772 -> 11371 bytes
 .../LCS/TimeEfficientImplementationTest.php   |  175 ++
 .../sebastian/diff/tests/ParserTest.php       |   62 +
 .../sebastian/diff/tests/fixtures/patch.txt   |    9 +
 .../sebastian/diff/tests/fixtures/patch2.txt  |   21 +
 core/vendor/sebastian/environment/LICENSE     |    2 +-
 .../sebastian/environment/composer.json       |    4 +-
 .../sebastian/environment/src/Console.php     |   69 +-
 .../sebastian/environment/src/Runtime.php     |   45 +-
 .../environment/tests/ConsoleTest.php         |   63 +-
 .../environment/tests/RuntimeTest.php         |   43 +-
 core/vendor/sebastian/exporter/LICENSE        |    2 +-
 core/vendor/sebastian/exporter/composer.json  |    7 +-
 .../sebastian/exporter/phpunit.xml.dist       |   11 +-
 .../vendor/sebastian/exporter/src/Context.php |  199 --
 .../sebastian/exporter/src/Exception.php      |   57 -
 .../sebastian/exporter/src/Exporter.php       |  284 +--
 .../sebastian/exporter/tests/ExporterTest.php |  101 +-
 .../sebastian/recursion-context/.gitignore    |    9 +
 .../sebastian/recursion-context/.travis.yml   |   22 +
 .../sebastian/recursion-context/LICENSE       |   33 +
 .../sebastian/recursion-context/README.md     |   13 +
 .../sebastian/recursion-context/build.xml     |   27 +
 .../sebastian/recursion-context/composer.json |   36 +
 .../recursion-context/phpunit.xml.dist        |   20 +
 .../recursion-context/src/Context.php         |  158 ++
 .../recursion-context/src/Exception.php       |   22 +
 .../src/InvalidArgumentException.php          |   22 +
 .../recursion-context/tests/ContextTest.php   |  144 ++
 core/vendor/sebastian/version/LICENSE         |    2 +-
 core/vendor/sebastian/version/README.md       |    9 -
 core/vendor/sebastian/version/src/Version.php |   47 +-
 .../vendor/sebastian/version/src/autoload.php |   11 +-
 583 files changed, 26252 insertions(+), 10018 deletions(-)
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/.gitignore
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/.travis.yml
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/LICENSE
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/README.md
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/composer.json
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/composer.lock
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/phpunit.xml.dist
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Context.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Description.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Location.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Serializer.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/AuthorTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/CoversTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ExampleTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/LinkTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/MethodTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ParamTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyReadTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyWriteTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SeeTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SinceTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SourceTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/UsesTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VarTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VersionTag.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Type/Collection.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/DescriptionTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/CoversTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ExampleTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/LinkTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/MethodTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ParamTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ReturnTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SeeTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SinceTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SourceTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/UsesTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VarTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VersionTagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Type/CollectionTest.php
 create mode 100644 core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlockTest.php
 create mode 100644 core/vendor/phpspec/prophecy/.gitignore
 create mode 100644 core/vendor/phpspec/prophecy/.travis.yml
 create mode 100644 core/vendor/phpspec/prophecy/CHANGES.md
 create mode 100644 core/vendor/phpspec/prophecy/CONTRIBUTING.md
 create mode 100644 core/vendor/phpspec/prophecy/LICENSE
 create mode 100644 core/vendor/phpspec/prophecy/README.md
 create mode 100644 core/vendor/phpspec/prophecy/composer.json
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/ArgumentsWildcardSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValueTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValuesTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayCountTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEntryTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEveryEntryTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/CallbackTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ExactValueTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/IdenticalValueTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalAndTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalNotTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/StringContainsTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/TypeTokenSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/ArgumentSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallCenterSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/HhvmExceptionPatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/KeywordPatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/MagicCallPatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ProphecySubjectPatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/DoublerSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCreatorSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassMirrorSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ArgumentNodeSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ClassNodeSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/MethodNodeSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/LazyDoubleSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Call/UnexpectedCallExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassCreatorExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassMirrorExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassNotFoundExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/DoubleExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/InterfaceNotFoundExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/MethodNotFoundExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/AggregateExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/NoCallsExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsCountExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/MethodProphecyExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/ObjectProphecyExceptionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallPredictionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallTimesPredictionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallbackPredictionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/NoCallsPredictionSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Promise/CallbackPromiseSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnArgumentPromiseSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnPromiseSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/MethodProphecySpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/ObjectProphecySpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/RevealerSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/ProphetSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/spec/Prophecy/Util/StringUtilSpec.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Prophet.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php
 create mode 100644 core/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php
 create mode 100644 core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff2
 delete mode 100644 core/vendor/phpunit/php-file-iterator/ChangeLog.markdown
 create mode 100644 core/vendor/phpunit/php-file-iterator/ChangeLog.md
 delete mode 100644 core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php
 delete mode 100644 core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in
 delete mode 100644 core/vendor/phpunit/php-file-iterator/README.markdown
 create mode 100644 core/vendor/phpunit/php-file-iterator/README.md
 delete mode 100644 core/vendor/phpunit/php-file-iterator/build.xml
 delete mode 100644 core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php
 delete mode 100644 core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php
 delete mode 100644 core/vendor/phpunit/php-file-iterator/build/PHPCS/ruleset.xml
 delete mode 100644 core/vendor/phpunit/php-file-iterator/build/phpmd.xml
 delete mode 100644 core/vendor/phpunit/php-file-iterator/package.xml
 rename core/vendor/phpunit/php-file-iterator/{File/Iterator => src}/Facade.php (60%)
 rename core/vendor/phpunit/php-file-iterator/{File/Iterator => src}/Factory.php (51%)
 rename core/vendor/phpunit/php-file-iterator/{File => src}/Iterator.php (66%)
 create mode 100644 core/vendor/phpunit/phpunit/ChangeLog-4.0.md
 create mode 100644 core/vendor/phpunit/phpunit/ChangeLog-4.1.md
 create mode 100644 core/vendor/phpunit/phpunit/ChangeLog-4.2.md
 create mode 100644 core/vendor/phpunit/phpunit/ChangeLog-4.3.md
 create mode 100644 core/vendor/phpunit/phpunit/ChangeLog-4.4.md
 create mode 100644 core/vendor/phpunit/phpunit/ChangeLog-4.5.md
 create mode 100644 core/vendor/phpunit/phpunit/ChangeLog-4.6.md
 create mode 100644 core/vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt
 rename core/vendor/phpunit/phpunit/tests/TextUI/{strict-incomplete.phpt => report-useless-tests-incomplete.phpt} (69%)
 rename core/vendor/phpunit/phpunit/tests/TextUI/{strict-isolation.phpt => report-useless-tests-isolation.phpt} (68%)
 rename core/vendor/phpunit/phpunit/tests/TextUI/{strict.phpt => report-useless-tests.phpt} (69%)
 create mode 100644 core/vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml
 create mode 100644 core/vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml
 create mode 100644 core/vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml
 create mode 100644 core/vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml
 create mode 100644 core/vendor/sebastian/diff/tests/LCS/TimeEfficientImplementationTest.php
 create mode 100644 core/vendor/sebastian/diff/tests/ParserTest.php
 create mode 100644 core/vendor/sebastian/diff/tests/fixtures/patch.txt
 create mode 100644 core/vendor/sebastian/diff/tests/fixtures/patch2.txt
 delete mode 100644 core/vendor/sebastian/exporter/src/Context.php
 delete mode 100644 core/vendor/sebastian/exporter/src/Exception.php
 create mode 100644 core/vendor/sebastian/recursion-context/.gitignore
 create mode 100644 core/vendor/sebastian/recursion-context/.travis.yml
 create mode 100644 core/vendor/sebastian/recursion-context/LICENSE
 create mode 100644 core/vendor/sebastian/recursion-context/README.md
 create mode 100644 core/vendor/sebastian/recursion-context/build.xml
 create mode 100644 core/vendor/sebastian/recursion-context/composer.json
 create mode 100644 core/vendor/sebastian/recursion-context/phpunit.xml.dist
 create mode 100644 core/vendor/sebastian/recursion-context/src/Context.php
 create mode 100644 core/vendor/sebastian/recursion-context/src/Exception.php
 create mode 100644 core/vendor/sebastian/recursion-context/src/InvalidArgumentException.php
 create mode 100644 core/vendor/sebastian/recursion-context/tests/ContextTest.php

diff --git a/core/composer.json b/core/composer.json
index ca963cf4ed74..4f6b25076908 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -23,7 +23,7 @@
     "guzzlehttp/guzzle": "~5.0",
     "symfony-cmf/routing": "1.3.*",
     "easyrdf/easyrdf": "0.9.*",
-    "phpunit/phpunit": "4.4.*",
+    "phpunit/phpunit": "4.6.*",
     "zendframework/zend-feed": "2.4.*",
     "mikey179/vfsStream": "1.*",
     "stack/builder": "1.0.*",
diff --git a/core/composer.lock b/core/composer.lock
index 619720cf61c3..5022e171069c 100644
--- a/core/composer.lock
+++ b/core/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "304089b3fa329c66764fdc353c5e0e83",
+    "hash": "c523fe48318d98a520d2bc45286106e2",
     "packages": [
         {
             "name": "behat/mink",
@@ -1043,18 +1043,127 @@
             "homepage": "http://vfs.bovigo.org/",
             "time": "2014-09-14 10:18:53"
         },
+        {
+            "name": "phpdocumentor/reflection-docblock",
+            "version": "2.0.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
+                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0"
+            },
+            "suggest": {
+                "dflydev/markdown": "~1.0",
+                "erusev/parsedown": "~1.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "phpDocumentor": [
+                        "src/"
+                    ]
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mike van Riel",
+                    "email": "mike.vanriel@naenius.com"
+                }
+            ],
+            "time": "2015-02-03 12:10:50"
+        },
+        {
+            "name": "phpspec/prophecy",
+            "version": "1.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpspec/prophecy.git",
+                "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5",
+                "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/instantiator": "^1.0.2",
+                "phpdocumentor/reflection-docblock": "~2.0",
+                "sebastian/comparator": "~1.1"
+            },
+            "require-dev": {
+                "phpspec/phpspec": "~2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Prophecy\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Konstantin Kudryashov",
+                    "email": "ever.zet@gmail.com",
+                    "homepage": "http://everzet.com"
+                },
+                {
+                    "name": "Marcello Duarte",
+                    "email": "marcello.duarte@gmail.com"
+                }
+            ],
+            "description": "Highly opinionated mocking framework for PHP 5.3+",
+            "homepage": "https://github.com/phpspec/prophecy",
+            "keywords": [
+                "Double",
+                "Dummy",
+                "fake",
+                "mock",
+                "spy",
+                "stub"
+            ],
+            "time": "2015-03-27 19:31:25"
+        },
         {
             "name": "phpunit/php-code-coverage",
-            "version": "2.0.11",
+            "version": "2.0.16",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "53603b3c995f5aab6b59c8e08c3a663d2cc810b7"
+                "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/53603b3c995f5aab6b59c8e08c3a663d2cc810b7",
-                "reference": "53603b3c995f5aab6b59c8e08c3a663d2cc810b7",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/934fd03eb6840508231a7f73eb8940cf32c3b66c",
+                "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c",
                 "shasum": ""
             },
             "require": {
@@ -1067,7 +1176,7 @@
             },
             "require-dev": {
                 "ext-xdebug": ">=2.1.4",
-                "phpunit/phpunit": "~4.1"
+                "phpunit/phpunit": "~4"
             },
             "suggest": {
                 "ext-dom": "*",
@@ -1086,9 +1195,6 @@
                 ]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
             "license": [
                 "BSD-3-Clause"
             ],
@@ -1106,35 +1212,37 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2014-08-31 06:33:04"
+            "time": "2015-04-11 04:35:00"
         },
         {
             "name": "phpunit/php-file-iterator",
-            "version": "1.3.4",
+            "version": "1.4.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
+                "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
-                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
+                "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4.x-dev"
+                }
+            },
             "autoload": {
                 "classmap": [
-                    "File/"
+                    "src/"
                 ]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
             "license": [
                 "BSD-3-Clause"
             ],
@@ -1151,7 +1259,7 @@
                 "filesystem",
                 "iterator"
             ],
-            "time": "2013-10-10 15:34:57"
+            "time": "2015-04-02 05:19:05"
         },
         {
             "name": "phpunit/php-text-template",
@@ -1243,16 +1351,16 @@
         },
         {
             "name": "phpunit/php-token-stream",
-            "version": "1.3.0",
+            "version": "1.4.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "f8d5d08c56de5cfd592b3340424a81733259a876"
+                "reference": "eab81d02569310739373308137284e0158424330"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/f8d5d08c56de5cfd592b3340424a81733259a876",
-                "reference": "f8d5d08c56de5cfd592b3340424a81733259a876",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/eab81d02569310739373308137284e0158424330",
+                "reference": "eab81d02569310739373308137284e0158424330",
                 "shasum": ""
             },
             "require": {
@@ -1265,7 +1373,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.3-dev"
+                    "dev-master": "1.4-dev"
                 }
             },
             "autoload": {
@@ -1288,20 +1396,20 @@
             "keywords": [
                 "tokenizer"
             ],
-            "time": "2014-08-31 06:12:13"
+            "time": "2015-04-08 04:46:07"
         },
         {
             "name": "phpunit/phpunit",
-            "version": "4.4.2",
+            "version": "4.6.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "e90575c2bb86290d57a262862dab1da125431576"
+                "reference": "163232991e652e6efed2f8470326fffa61e848e2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e90575c2bb86290d57a262862dab1da125431576",
-                "reference": "e90575c2bb86290d57a262862dab1da125431576",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/163232991e652e6efed2f8470326fffa61e848e2",
+                "reference": "163232991e652e6efed2f8470326fffa61e848e2",
                 "shasum": ""
             },
             "require": {
@@ -1311,18 +1419,19 @@
                 "ext-reflection": "*",
                 "ext-spl": "*",
                 "php": ">=5.3.3",
-                "phpunit/php-code-coverage": "~2.0",
-                "phpunit/php-file-iterator": "~1.3.2",
+                "phpspec/prophecy": "~1.3,>=1.3.1",
+                "phpunit/php-code-coverage": "~2.0,>=2.0.11",
+                "phpunit/php-file-iterator": "~1.4",
                 "phpunit/php-text-template": "~1.2",
-                "phpunit/php-timer": "~1.0.2",
+                "phpunit/php-timer": "~1.0",
                 "phpunit/phpunit-mock-objects": "~2.3",
-                "sebastian/comparator": "~1.0",
-                "sebastian/diff": "~1.1",
-                "sebastian/environment": "~1.1",
-                "sebastian/exporter": "~1.0",
+                "sebastian/comparator": "~1.1",
+                "sebastian/diff": "~1.2",
+                "sebastian/environment": "~1.2",
+                "sebastian/exporter": "~1.2",
                 "sebastian/global-state": "~1.0",
                 "sebastian/version": "~1.0",
-                "symfony/yaml": "~2.0"
+                "symfony/yaml": "~2.1|~3.0"
             },
             "suggest": {
                 "phpunit/php-invoker": "~1.1"
@@ -1333,7 +1442,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "4.4.x-dev"
+                    "dev-master": "4.6.x-dev"
                 }
             },
             "autoload": {
@@ -1359,29 +1468,29 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2015-01-17 11:24:41"
+            "time": "2015-04-11 05:23:21"
         },
         {
             "name": "phpunit/phpunit-mock-objects",
-            "version": "2.3.0",
+            "version": "2.3.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "c63d2367247365f688544f0d500af90a11a44c65"
+                "reference": "74ffb87f527f24616f72460e54b595f508dccb5c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
-                "reference": "c63d2367247365f688544f0d500af90a11a44c65",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/74ffb87f527f24616f72460e54b595f508dccb5c",
+                "reference": "74ffb87f527f24616f72460e54b595f508dccb5c",
                 "shasum": ""
             },
             "require": {
-                "doctrine/instantiator": "~1.0,>=1.0.1",
+                "doctrine/instantiator": "~1.0,>=1.0.2",
                 "php": ">=5.3.3",
                 "phpunit/php-text-template": "~1.2"
             },
             "require-dev": {
-                "phpunit/phpunit": "~4.3"
+                "phpunit/phpunit": "~4.4"
             },
             "suggest": {
                 "ext-soap": "*"
@@ -1414,7 +1523,7 @@
                 "mock",
                 "xunit"
             ],
-            "time": "2014-10-03 05:12:11"
+            "time": "2015-04-02 05:36:41"
         },
         {
             "name": "psr/log",
@@ -1548,30 +1657,30 @@
         },
         {
             "name": "sebastian/comparator",
-            "version": "1.0.1",
+            "version": "1.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "e54a01c0da1b87db3c5a3c4c5277ddf331da4aef"
+                "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e54a01c0da1b87db3c5a3c4c5277ddf331da4aef",
-                "reference": "e54a01c0da1b87db3c5a3c4c5277ddf331da4aef",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
+                "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3",
-                "sebastian/diff": "~1.1",
-                "sebastian/exporter": "~1.0"
+                "sebastian/diff": "~1.2",
+                "sebastian/exporter": "~1.2"
             },
             "require-dev": {
-                "phpunit/phpunit": "~4.1"
+                "phpunit/phpunit": "~4.4"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0.x-dev"
+                    "dev-master": "1.1.x-dev"
                 }
             },
             "autoload": {
@@ -1608,20 +1717,20 @@
                 "compare",
                 "equality"
             ],
-            "time": "2014-05-11 23:00:21"
+            "time": "2015-01-29 16:28:08"
         },
         {
             "name": "sebastian/diff",
-            "version": "1.2.0",
+            "version": "1.3.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "5843509fed39dee4b356a306401e9dd1a931fec7"
+                "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/5843509fed39dee4b356a306401e9dd1a931fec7",
-                "reference": "5843509fed39dee4b356a306401e9dd1a931fec7",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
+                "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
                 "shasum": ""
             },
             "require": {
@@ -1633,7 +1742,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.2-dev"
+                    "dev-master": "1.3-dev"
                 }
             },
             "autoload": {
@@ -1660,32 +1769,32 @@
             "keywords": [
                 "diff"
             ],
-            "time": "2014-08-15 10:29:00"
+            "time": "2015-02-22 15:13:53"
         },
         {
             "name": "sebastian/environment",
-            "version": "1.2.0",
+            "version": "1.2.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "0d9bf79554d2a999da194a60416c15cf461eb67d"
+                "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/0d9bf79554d2a999da194a60416c15cf461eb67d",
-                "reference": "0d9bf79554d2a999da194a60416c15cf461eb67d",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
+                "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "require-dev": {
-                "phpunit/phpunit": "~4.3"
+                "phpunit/phpunit": "~4.4"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.2.x-dev"
+                    "dev-master": "1.3.x-dev"
                 }
             },
             "autoload": {
@@ -1710,32 +1819,33 @@
                 "environment",
                 "hhvm"
             ],
-            "time": "2014-10-22 06:38:05"
+            "time": "2015-01-01 10:01:08"
         },
         {
             "name": "sebastian/exporter",
-            "version": "1.0.2",
+            "version": "1.2.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0"
+                "reference": "84839970d05254c73cde183a721c7af13aede943"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c7d59948d6e82818e1bdff7cadb6c34710eb7dc0",
-                "reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
+                "reference": "84839970d05254c73cde183a721c7af13aede943",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.3"
+                "php": ">=5.3.3",
+                "sebastian/recursion-context": "~1.0"
             },
             "require-dev": {
-                "phpunit/phpunit": "~4.0"
+                "phpunit/phpunit": "~4.4"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0.x-dev"
+                    "dev-master": "1.2.x-dev"
                 }
             },
             "autoload": {
@@ -1775,7 +1885,7 @@
                 "export",
                 "exporter"
             ],
-            "time": "2014-09-10 00:51:36"
+            "time": "2015-01-27 07:23:06"
         },
         {
             "name": "sebastian/global-state",
@@ -1828,18 +1938,71 @@
             ],
             "time": "2014-10-06 09:23:50"
         },
+        {
+            "name": "sebastian/recursion-context",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/recursion-context.git",
+                "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
+                "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net"
+                }
+            ],
+            "description": "Provides functionality to recursively process PHP variables",
+            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+            "time": "2015-01-24 09:48:32"
+        },
         {
             "name": "sebastian/version",
-            "version": "1.0.3",
+            "version": "1.0.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43"
+                "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
-                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
+                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ab931d46cd0d3204a91e1b9a40c4bc13032b58e4",
+                "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4",
                 "shasum": ""
             },
             "type": "library",
@@ -1861,7 +2024,7 @@
             ],
             "description": "Library that helps with managing the version number of Git-hosted PHP projects",
             "homepage": "https://github.com/sebastianbergmann/version",
-            "time": "2014-03-07 15:35:33"
+            "time": "2015-02-24 06:35:25"
         },
         {
             "name": "stack/builder",
diff --git a/core/vendor/composer/autoload_classmap.php b/core/vendor/composer/autoload_classmap.php
index 1d3281838725..1b5c7ffe81be 100644
--- a/core/vendor/composer/autoload_classmap.php
+++ b/core/vendor/composer/autoload_classmap.php
@@ -12,9 +12,9 @@
     'Drupal\\Core\\DrupalKernel' => $baseDir . '/lib/Drupal/Core/DrupalKernel.php',
     'Drupal\\Core\\DrupalKernelInterface' => $baseDir . '/lib/Drupal/Core/DrupalKernelInterface.php',
     'Drupal\\Core\\Site\\Settings' => $baseDir . '/lib/Drupal/Core/Site/Settings.php',
-    'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator.php',
-    'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator/Facade.php',
-    'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator/Factory.php',
+    'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
+    'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
+    'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
     'PHPUnit_Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
     'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
     'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
@@ -297,6 +297,7 @@
     'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
@@ -313,6 +314,10 @@
     'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
@@ -355,6 +360,7 @@
     'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
@@ -372,6 +378,9 @@
     'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+    'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
     'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
@@ -406,14 +415,15 @@
     'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
     'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
     'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
-    'SebastianBergmann\\Exporter\\Context' => $vendorDir . '/sebastian/exporter/src/Context.php',
-    'SebastianBergmann\\Exporter\\Exception' => $vendorDir . '/sebastian/exporter/src/Exception.php',
     'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
     'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',
     'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/Exception.php',
     'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
     'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/RuntimeException.php',
     'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
+    'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
+    'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
+    'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
     'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
     'SessionHandlerInterface' => $vendorDir . '/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php',
     'Symfony\\Component\\HttpFoundation\\FileBag' => $vendorDir . '/symfony/http-foundation/Symfony/Component/HttpFoundation/FileBag.php',
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
index d21e1be77e4a..3d0d583be6e9 100644
--- a/core/vendor/composer/autoload_namespaces.php
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -6,6 +6,7 @@
 $baseDir = dirname($vendorDir);
 
 return array(
+    'phpDocumentor' => array($vendorDir . '/phpdocumentor/reflection-docblock/src'),
     'org\\bovigo\\vfs\\' => array($vendorDir . '/mikey179/vfsStream/src/main/php'),
     'Twig_' => array($vendorDir . '/twig/twig/lib'),
     'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
@@ -25,6 +26,7 @@
     'Symfony\\Component\\BrowserKit\\' => array($vendorDir . '/symfony/browser-kit'),
     'Stack' => array($vendorDir . '/stack/builder/src'),
     'Psr\\Log\\' => array($vendorDir . '/psr/log'),
+    'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src'),
     'Gliph' => array($vendorDir . '/sdboyer/gliph/src'),
     'Egulias\\' => array($vendorDir . '/egulias/email-validator/src'),
     'EasyRdf_' => array($vendorDir . '/easyrdf/easyrdf/lib'),
diff --git a/core/vendor/composer/include_paths.php b/core/vendor/composer/include_paths.php
index 2cc5bccfbd87..9490138755bf 100644
--- a/core/vendor/composer/include_paths.php
+++ b/core/vendor/composer/include_paths.php
@@ -8,6 +8,4 @@
 return array(
     $vendorDir . '/phpunit/php-text-template',
     $vendorDir . '/phpunit/php-timer',
-    $vendorDir . '/phpunit/php-file-iterator',
-    $vendorDir . '/phpunit/php-code-coverage',
 );
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index 8031865da7d2..2e9c0e803f60 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -421,281 +421,6 @@
         ],
         "homepage": "http://vfs.bovigo.org/"
     },
-    {
-        "name": "phpunit/php-token-stream",
-        "version": "1.3.0",
-        "version_normalized": "1.3.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-            "reference": "f8d5d08c56de5cfd592b3340424a81733259a876"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/f8d5d08c56de5cfd592b3340424a81733259a876",
-            "reference": "f8d5d08c56de5cfd592b3340424a81733259a876",
-            "shasum": ""
-        },
-        "require": {
-            "ext-tokenizer": "*",
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.2"
-        },
-        "time": "2014-08-31 06:12:13",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.3-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Wrapper around PHP's tokenizer extension.",
-        "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-        "keywords": [
-            "tokenizer"
-        ]
-    },
-    {
-        "name": "sebastian/version",
-        "version": "1.0.3",
-        "version_normalized": "1.0.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/version.git",
-            "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
-            "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
-            "shasum": ""
-        },
-        "time": "2014-03-07 15:35:33",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de",
-                "role": "lead"
-            }
-        ],
-        "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-        "homepage": "https://github.com/sebastianbergmann/version"
-    },
-    {
-        "name": "sebastian/exporter",
-        "version": "1.0.2",
-        "version_normalized": "1.0.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/exporter.git",
-            "reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c7d59948d6e82818e1bdff7cadb6c34710eb7dc0",
-            "reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.0"
-        },
-        "time": "2014-09-10 00:51:36",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Jeff Welch",
-                "email": "whatthejeff@gmail.com"
-            },
-            {
-                "name": "Volker Dusch",
-                "email": "github@wallbash.com"
-            },
-            {
-                "name": "Bernhard Schussek",
-                "email": "bschussek@2bepublished.at"
-            },
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            },
-            {
-                "name": "Adam Harvey",
-                "email": "aharvey@php.net"
-            }
-        ],
-        "description": "Provides the functionality to export PHP variables for visualization",
-        "homepage": "http://www.github.com/sebastianbergmann/exporter",
-        "keywords": [
-            "export",
-            "exporter"
-        ]
-    },
-    {
-        "name": "sebastian/diff",
-        "version": "1.2.0",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/diff.git",
-            "reference": "5843509fed39dee4b356a306401e9dd1a931fec7"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/5843509fed39dee4b356a306401e9dd1a931fec7",
-            "reference": "5843509fed39dee4b356a306401e9dd1a931fec7",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.2"
-        },
-        "time": "2014-08-15 10:29:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.2-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Kore Nordmann",
-                "email": "mail@kore-nordmann.de"
-            },
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Diff implementation",
-        "homepage": "http://www.github.com/sebastianbergmann/diff",
-        "keywords": [
-            "diff"
-        ]
-    },
-    {
-        "name": "sebastian/comparator",
-        "version": "1.0.1",
-        "version_normalized": "1.0.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/comparator.git",
-            "reference": "e54a01c0da1b87db3c5a3c4c5277ddf331da4aef"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e54a01c0da1b87db3c5a3c4c5277ddf331da4aef",
-            "reference": "e54a01c0da1b87db3c5a3c4c5277ddf331da4aef",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3",
-            "sebastian/diff": "~1.1",
-            "sebastian/exporter": "~1.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.1"
-        },
-        "time": "2014-05-11 23:00:21",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Jeff Welch",
-                "email": "whatthejeff@gmail.com"
-            },
-            {
-                "name": "Volker Dusch",
-                "email": "github@wallbash.com"
-            },
-            {
-                "name": "Bernhard Schussek",
-                "email": "bschussek@2bepublished.at"
-            },
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Provides the functionality to compare PHP values for equality",
-        "homepage": "http://www.github.com/sebastianbergmann/comparator",
-        "keywords": [
-            "comparator",
-            "compare",
-            "equality"
-        ]
-    },
     {
         "name": "phpunit/php-text-template",
         "version": "1.2.0",
@@ -845,132 +570,18 @@
         ]
     },
     {
-        "name": "phpunit/php-file-iterator",
-        "version": "1.3.4",
-        "version_normalized": "1.3.4.0",
+        "name": "sdboyer/gliph",
+        "version": "0.1.8",
+        "version_normalized": "0.1.8.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-            "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
+            "url": "https://github.com/sdboyer/gliph.git",
+            "reference": "db9e4b77622f91e2d338cc45f83c2cd0e3cf0e1e"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
-            "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "time": "2013-10-10 15:34:57",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "File/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
-        ],
-        "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-        "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-        "keywords": [
-            "filesystem",
-            "iterator"
-        ]
-    },
-    {
-        "name": "phpunit/php-code-coverage",
-        "version": "2.0.11",
-        "version_normalized": "2.0.11.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-            "reference": "53603b3c995f5aab6b59c8e08c3a663d2cc810b7"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/53603b3c995f5aab6b59c8e08c3a663d2cc810b7",
-            "reference": "53603b3c995f5aab6b59c8e08c3a663d2cc810b7",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3",
-            "phpunit/php-file-iterator": "~1.3",
-            "phpunit/php-text-template": "~1.2",
-            "phpunit/php-token-stream": "~1.3",
-            "sebastian/environment": "~1.0",
-            "sebastian/version": "~1.0"
-        },
-        "require-dev": {
-            "ext-xdebug": ">=2.1.4",
-            "phpunit/phpunit": "~4.1"
-        },
-        "suggest": {
-            "ext-dom": "*",
-            "ext-xdebug": ">=2.2.1",
-            "ext-xmlwriter": "*"
-        },
-        "time": "2014-08-31 06:33:04",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
-        ],
-        "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-        "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-        "keywords": [
-            "coverage",
-            "testing",
-            "xunit"
-        ]
-    },
-    {
-        "name": "sdboyer/gliph",
-        "version": "0.1.8",
-        "version_normalized": "0.1.8.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sdboyer/gliph.git",
-            "reference": "db9e4b77622f91e2d338cc45f83c2cd0e3cf0e1e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sdboyer/gliph/zipball/db9e4b77622f91e2d338cc45f83c2cd0e3cf0e1e",
-            "reference": "db9e4b77622f91e2d338cc45f83c2cd0e3cf0e1e",
+            "url": "https://api.github.com/repos/sdboyer/gliph/zipball/db9e4b77622f91e2d338cc45f83c2cd0e3cf0e1e",
+            "reference": "db9e4b77622f91e2d338cc45f83c2cd0e3cf0e1e",
             "shasum": ""
         },
         "require": {
@@ -1211,58 +822,6 @@
             "validator"
         ]
     },
-    {
-        "name": "sebastian/environment",
-        "version": "1.2.0",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/environment.git",
-            "reference": "0d9bf79554d2a999da194a60416c15cf461eb67d"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/0d9bf79554d2a999da194a60416c15cf461eb67d",
-            "reference": "0d9bf79554d2a999da194a60416c15cf461eb67d",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.3"
-        },
-        "time": "2014-10-22 06:38:05",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.2.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Provides functionality to handle HHVM/PHP environments",
-        "homepage": "http://www.github.com/sebastianbergmann/environment",
-        "keywords": [
-            "Xdebug",
-            "environment",
-            "hhvm"
-        ]
-    },
     {
         "name": "easyrdf/easyrdf",
         "version": "0.9.0",
@@ -1380,79 +939,6 @@
             "global state"
         ]
     },
-    {
-        "name": "phpunit/phpunit",
-        "version": "4.4.2",
-        "version_normalized": "4.4.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit.git",
-            "reference": "e90575c2bb86290d57a262862dab1da125431576"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e90575c2bb86290d57a262862dab1da125431576",
-            "reference": "e90575c2bb86290d57a262862dab1da125431576",
-            "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"
-        },
-        "suggest": {
-            "phpunit/php-invoker": "~1.1"
-        },
-        "time": "2015-01-17 11:24:41",
-        "bin": [
-            "phpunit"
-        ],
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "4.4.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de",
-                "role": "lead"
-            }
-        ],
-        "description": "The PHP Unit Testing framework.",
-        "homepage": "https://phpunit.de/",
-        "keywords": [
-            "phpunit",
-            "testing",
-            "xunit"
-        ]
-    },
     {
         "name": "doctrine/common",
         "version": "v2.4.2",
@@ -1534,117 +1020,60 @@
         ]
     },
     {
-        "name": "phpunit/phpunit-mock-objects",
-        "version": "2.3.0",
-        "version_normalized": "2.3.0.0",
+        "name": "behat/mink",
+        "version": "v1.6.1",
+        "version_normalized": "1.6.1.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-            "reference": "c63d2367247365f688544f0d500af90a11a44c65"
+            "url": "https://github.com/minkphp/Mink.git",
+            "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
-            "reference": "c63d2367247365f688544f0d500af90a11a44c65",
+            "url": "https://api.github.com/repos/minkphp/Mink/zipball/8b68523a339ec991bcd638b39dc8f04f808da88a",
+            "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a",
             "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"
+            "php": ">=5.3.1",
+            "symfony/css-selector": "~2.0"
         },
         "suggest": {
-            "ext-soap": "*"
+            "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
+            "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation",
+            "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)",
+            "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)"
         },
-        "time": "2014-10-03 05:12:11",
+        "time": "2015-02-04 17:02:06",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3.x-dev"
+                "dev-master": "1.6.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "src/"
-            ]
+            "psr-4": {
+                "Behat\\Mink\\": "src/"
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Konstantin Kudryashov",
+                "email": "ever.zet@gmail.com",
+                "homepage": "http://everzet.com"
             }
         ],
-        "description": "Mock Object library for PHPUnit",
-        "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+        "description": "Browser controller/emulator abstraction for PHP",
+        "homepage": "http://mink.behat.org/",
         "keywords": [
-            "mock",
-            "xunit"
-        ]
-    },
-    {
-        "name": "behat/mink",
-        "version": "v1.6.1",
-        "version_normalized": "1.6.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/minkphp/Mink.git",
-            "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/minkphp/Mink/zipball/8b68523a339ec991bcd638b39dc8f04f808da88a",
-            "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.1",
-            "symfony/css-selector": "~2.0"
-        },
-        "suggest": {
-            "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
-            "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation",
-            "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)",
-            "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)"
-        },
-        "time": "2015-02-04 17:02:06",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.6.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Behat\\Mink\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Konstantin Kudryashov",
-                "email": "ever.zet@gmail.com",
-                "homepage": "http://everzet.com"
-            }
-        ],
-        "description": "Browser controller/emulator abstraction for PHP",
-        "homepage": "http://mink.behat.org/",
-        "keywords": [
-            "browser",
-            "testing",
-            "web"
+            "browser",
+            "testing",
+            "web"
         ]
     },
     {
@@ -2545,271 +1974,988 @@
         "target-dir": "Symfony/Component/Serializer",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Serializer.git",
-            "reference": "bf30b882e15945fe8700edcd966eb3f5503820f3"
+            "url": "https://github.com/symfony/Serializer.git",
+            "reference": "bf30b882e15945fe8700edcd966eb3f5503820f3"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/Serializer/zipball/bf30b882e15945fe8700edcd966eb3f5503820f3",
+            "reference": "bf30b882e15945fe8700edcd966eb3f5503820f3",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/phpunit-bridge": "~2.7"
+        },
+        "time": "2015-03-22 16:55:57",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Serializer\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "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": "symfony/translation",
+        "version": "v2.6.6",
+        "version_normalized": "2.6.6.0",
+        "target-dir": "Symfony/Component/Translation",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/Translation.git",
+            "reference": "bd939f05cdaca128f4ddbae1b447d6f0203b60af"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/Translation/zipball/bd939f05cdaca128f4ddbae1b447d6f0203b60af",
+            "reference": "bd939f05cdaca128f4ddbae1b447d6f0203b60af",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "psr/log": "~1.0",
+            "symfony/config": "~2.3,>=2.3.12",
+            "symfony/intl": "~2.3",
+            "symfony/phpunit-bridge": "~2.7",
+            "symfony/yaml": "~2.2"
+        },
+        "suggest": {
+            "psr/log": "To use logging capability in translator",
+            "symfony/config": "",
+            "symfony/yaml": ""
+        },
+        "time": "2015-03-30 15:54:10",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Translation\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony Translation Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "symfony/validator",
+        "version": "v2.6.6",
+        "version_normalized": "2.6.6.0",
+        "target-dir": "Symfony/Component/Validator",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/Validator.git",
+            "reference": "85d9b42fe71bf88e7a1e5dec2094605dc9fbff28"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/Validator/zipball/85d9b42fe71bf88e7a1e5dec2094605dc9fbff28",
+            "reference": "85d9b42fe71bf88e7a1e5dec2094605dc9fbff28",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3",
+            "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/phpunit-bridge": "~2.7",
+            "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.",
+            "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-03-30 15:54:10",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Validator\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony Validator Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "symfony/process",
+        "version": "v2.6.6",
+        "version_normalized": "2.6.6.0",
+        "target-dir": "Symfony/Component/Process",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/Process.git",
+            "reference": "a8bebaec1a9dc6cde53e0250e32917579b0be552"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/Process/zipball/a8bebaec1a9dc6cde53e0250e32917579b0be552",
+            "reference": "a8bebaec1a9dc6cde53e0250e32917579b0be552",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/phpunit-bridge": "~2.7"
+        },
+        "time": "2015-03-30 15:54:10",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Process\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony Process Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "symfony/yaml",
+        "version": "v2.6.6",
+        "version_normalized": "2.6.6.0",
+        "target-dir": "Symfony/Component/Yaml",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/Yaml.git",
+            "reference": "174f009ed36379a801109955fc5a71a49fe62dd4"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/Yaml/zipball/174f009ed36379a801109955fc5a71a49fe62dd4",
+            "reference": "174f009ed36379a801109955fc5a71a49fe62dd4",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/phpunit-bridge": "~2.7"
+        },
+        "time": "2015-03-30 15:54:10",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Yaml\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony Yaml Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "symfony/dom-crawler",
+        "version": "v2.6.6",
+        "version_normalized": "2.6.6.0",
+        "target-dir": "Symfony/Component/DomCrawler",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/DomCrawler.git",
+            "reference": "8897ebf39c7dfb752a5494fa301845a3fbb9e53d"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/8897ebf39c7dfb752a5494fa301845a3fbb9e53d",
+            "reference": "8897ebf39c7dfb752a5494fa301845a3fbb9e53d",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/css-selector": "~2.3",
+            "symfony/phpunit-bridge": "~2.7"
+        },
+        "suggest": {
+            "symfony/css-selector": ""
+        },
+        "time": "2015-03-30 15:54:10",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\DomCrawler\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony DomCrawler Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "symfony/browser-kit",
+        "version": "v2.6.6",
+        "version_normalized": "2.6.6.0",
+        "target-dir": "Symfony/Component/BrowserKit",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/BrowserKit.git",
+            "reference": "f21189b0eccbe56528515858ca1d5089a741692f"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/f21189b0eccbe56528515858ca1d5089a741692f",
+            "reference": "f21189b0eccbe56528515858ca1d5089a741692f",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3",
+            "symfony/dom-crawler": "~2.0,>=2.0.5"
+        },
+        "require-dev": {
+            "symfony/css-selector": "~2.0,>=2.0.5",
+            "symfony/phpunit-bridge": "~2.7",
+            "symfony/process": "~2.0,>=2.0.5"
+        },
+        "suggest": {
+            "symfony/process": ""
+        },
+        "time": "2015-03-30 15:54:10",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\BrowserKit\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony BrowserKit Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "zendframework/zend-stdlib",
+        "version": "2.4.0",
+        "version_normalized": "2.4.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/zendframework/Component_ZendStdlib.git",
+            "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/eab586f4c18af3fa63c977611939f1f4a3cf1030",
+            "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.23"
+        },
+        "require-dev": {
+            "zendframework/zend-eventmanager": "self.version",
+            "zendframework/zend-filter": "self.version",
+            "zendframework/zend-serializer": "self.version",
+            "zendframework/zend-servicemanager": "self.version"
+        },
+        "suggest": {
+            "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
+            "zendframework/zend-filter": "To support naming strategy hydrator usage",
+            "zendframework/zend-serializer": "Zend\\Serializer component",
+            "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
+        },
+        "time": "2015-04-01 18:09:29",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.3-dev",
+                "dev-develop": "2.4-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Zend\\Stdlib\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "homepage": "https://github.com/zendframework/zf2",
+        "keywords": [
+            "stdlib",
+            "zf2"
+        ]
+    },
+    {
+        "name": "zendframework/zend-escaper",
+        "version": "2.4.0",
+        "version_normalized": "2.4.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/zendframework/Component_ZendEscaper.git",
+            "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/65b3328627362b0be1d5e9067bc846511d1fbc96",
+            "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.23"
+        },
+        "time": "2015-04-01 18:02:07",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.3-dev",
+                "dev-develop": "2.4-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Zend\\Escaper\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "homepage": "https://github.com/zendframework/zf2",
+        "keywords": [
+            "escaper",
+            "zf2"
+        ]
+    },
+    {
+        "name": "zendframework/zend-feed",
+        "version": "2.4.0",
+        "version_normalized": "2.4.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/zendframework/Component_ZendFeed.git",
+            "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/zendframework/Component_ZendFeed/zipball/aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
+            "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
+            "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"
+        },
+        "time": "2015-04-01 18:09:25",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.3-dev",
+                "dev-develop": "2.4-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "Zend\\Feed\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "description": "provides functionality for consuming RSS and Atom feeds",
+        "homepage": "https://github.com/zendframework/zf2",
+        "keywords": [
+            "feed",
+            "zf2"
+        ]
+    },
+    {
+        "name": "twig/twig",
+        "version": "v1.18.1",
+        "version_normalized": "1.18.1.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/twigphp/Twig.git",
+            "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/twigphp/Twig/zipball/9f70492f44398e276d1b81c1b43adfe6751c7b7f",
+            "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.2.7"
+        },
+        "time": "2015-04-19 08:30:27",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.18-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Twig_": "lib/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": "http://fabien.potencier.org",
+                "role": "Lead Developer"
+            },
+            {
+                "name": "Armin Ronacher",
+                "email": "armin.ronacher@active-4.com",
+                "role": "Project Founder"
+            },
+            {
+                "name": "Twig Team",
+                "homepage": "http://twig.sensiolabs.org/contributors",
+                "role": "Contributors"
+            }
+        ],
+        "description": "Twig, the flexible, fast, and secure template language for PHP",
+        "homepage": "http://twig.sensiolabs.org",
+        "keywords": [
+            "templating"
+        ]
+    },
+    {
+        "name": "sebastian/version",
+        "version": "1.0.5",
+        "version_normalized": "1.0.5.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/sebastianbergmann/version.git",
+            "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ab931d46cd0d3204a91e1b9a40c4bc13032b58e4",
+            "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4",
+            "shasum": ""
+        },
+        "time": "2015-02-24 06:35:25",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "src/"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de",
+                "role": "lead"
+            }
+        ],
+        "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+        "homepage": "https://github.com/sebastianbergmann/version"
+    },
+    {
+        "name": "sebastian/recursion-context",
+        "version": "1.0.0",
+        "version_normalized": "1.0.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/sebastianbergmann/recursion-context.git",
+            "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
+            "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "phpunit/phpunit": "~4.4"
+        },
+        "time": "2015-01-24 09:48:32",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.0.x-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "src/"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "authors": [
+            {
+                "name": "Jeff Welch",
+                "email": "whatthejeff@gmail.com"
+            },
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de"
+            },
+            {
+                "name": "Adam Harvey",
+                "email": "aharvey@php.net"
+            }
+        ],
+        "description": "Provides functionality to recursively process PHP variables",
+        "homepage": "http://www.github.com/sebastianbergmann/recursion-context"
+    },
+    {
+        "name": "sebastian/exporter",
+        "version": "1.2.0",
+        "version_normalized": "1.2.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/sebastianbergmann/exporter.git",
+            "reference": "84839970d05254c73cde183a721c7af13aede943"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Serializer/zipball/bf30b882e15945fe8700edcd966eb3f5503820f3",
-            "reference": "bf30b882e15945fe8700edcd966eb3f5503820f3",
+            "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
+            "reference": "84839970d05254c73cde183a721c7af13aede943",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.3",
+            "sebastian/recursion-context": "~1.0"
         },
         "require-dev": {
-            "symfony/phpunit-bridge": "~2.7"
+            "phpunit/phpunit": "~4.4"
         },
-        "time": "2015-03-22 16:55:57",
+        "time": "2015-01-27 07:23:06",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "1.2.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Serializer\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Jeff Welch",
+                "email": "whatthejeff@gmail.com"
             },
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Volker Dusch",
+                "email": "github@wallbash.com"
+            },
+            {
+                "name": "Bernhard Schussek",
+                "email": "bschussek@2bepublished.at"
+            },
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de"
+            },
+            {
+                "name": "Adam Harvey",
+                "email": "aharvey@php.net"
             }
         ],
-        "description": "Symfony Serializer Component",
-        "homepage": "http://symfony.com"
+        "description": "Provides the functionality to export PHP variables for visualization",
+        "homepage": "http://www.github.com/sebastianbergmann/exporter",
+        "keywords": [
+            "export",
+            "exporter"
+        ]
     },
     {
-        "name": "symfony/translation",
-        "version": "v2.6.6",
-        "version_normalized": "2.6.6.0",
-        "target-dir": "Symfony/Component/Translation",
+        "name": "sebastian/environment",
+        "version": "1.2.2",
+        "version_normalized": "1.2.2.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Translation.git",
-            "reference": "bd939f05cdaca128f4ddbae1b447d6f0203b60af"
+            "url": "https://github.com/sebastianbergmann/environment.git",
+            "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Translation/zipball/bd939f05cdaca128f4ddbae1b447d6f0203b60af",
-            "reference": "bd939f05cdaca128f4ddbae1b447d6f0203b60af",
+            "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
+            "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
         "require-dev": {
-            "psr/log": "~1.0",
-            "symfony/config": "~2.3,>=2.3.12",
-            "symfony/intl": "~2.3",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/yaml": "~2.2"
-        },
-        "suggest": {
-            "psr/log": "To use logging capability in translator",
-            "symfony/config": "",
-            "symfony/yaml": ""
+            "phpunit/phpunit": "~4.4"
         },
-        "time": "2015-03-30 15:54:10",
+        "time": "2015-01-01 10:01:08",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "1.3.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Translation\\": ""
-            }
+            "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"
             }
         ],
-        "description": "Symfony Translation Component",
-        "homepage": "http://symfony.com"
+        "description": "Provides functionality to handle HHVM/PHP environments",
+        "homepage": "http://www.github.com/sebastianbergmann/environment",
+        "keywords": [
+            "Xdebug",
+            "environment",
+            "hhvm"
+        ]
     },
     {
-        "name": "symfony/validator",
-        "version": "v2.6.6",
-        "version_normalized": "2.6.6.0",
-        "target-dir": "Symfony/Component/Validator",
+        "name": "sebastian/diff",
+        "version": "1.3.0",
+        "version_normalized": "1.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Validator.git",
-            "reference": "85d9b42fe71bf88e7a1e5dec2094605dc9fbff28"
+            "url": "https://github.com/sebastianbergmann/diff.git",
+            "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Validator/zipball/85d9b42fe71bf88e7a1e5dec2094605dc9fbff28",
-            "reference": "85d9b42fe71bf88e7a1e5dec2094605dc9fbff28",
+            "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
+            "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "symfony/translation": "~2.0,>=2.0.5"
+            "php": ">=5.3.3"
         },
         "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/phpunit-bridge": "~2.7",
-            "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.",
-            "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": ""
+            "phpunit/phpunit": "~4.2"
         },
-        "time": "2015-03-30 15:54:10",
+        "time": "2015-02-22 15:13:53",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "1.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Validator\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Kore Nordmann",
+                "email": "mail@kore-nordmann.de"
             },
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de"
             }
         ],
-        "description": "Symfony Validator Component",
-        "homepage": "http://symfony.com"
+        "description": "Diff implementation",
+        "homepage": "http://www.github.com/sebastianbergmann/diff",
+        "keywords": [
+            "diff"
+        ]
     },
     {
-        "name": "symfony/process",
-        "version": "v2.6.6",
-        "version_normalized": "2.6.6.0",
-        "target-dir": "Symfony/Component/Process",
+        "name": "sebastian/comparator",
+        "version": "1.1.1",
+        "version_normalized": "1.1.1.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Process.git",
-            "reference": "a8bebaec1a9dc6cde53e0250e32917579b0be552"
+            "url": "https://github.com/sebastianbergmann/comparator.git",
+            "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Process/zipball/a8bebaec1a9dc6cde53e0250e32917579b0be552",
-            "reference": "a8bebaec1a9dc6cde53e0250e32917579b0be552",
+            "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
+            "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.3",
+            "sebastian/diff": "~1.2",
+            "sebastian/exporter": "~1.2"
         },
         "require-dev": {
-            "symfony/phpunit-bridge": "~2.7"
+            "phpunit/phpunit": "~4.4"
         },
-        "time": "2015-03-30 15:54:10",
+        "time": "2015-01-29 16:28:08",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "1.1.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Process\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Jeff Welch",
+                "email": "whatthejeff@gmail.com"
             },
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Volker Dusch",
+                "email": "github@wallbash.com"
+            },
+            {
+                "name": "Bernhard Schussek",
+                "email": "bschussek@2bepublished.at"
+            },
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de"
             }
         ],
-        "description": "Symfony Process Component",
-        "homepage": "http://symfony.com"
+        "description": "Provides the functionality to compare PHP values for equality",
+        "homepage": "http://www.github.com/sebastianbergmann/comparator",
+        "keywords": [
+            "comparator",
+            "compare",
+            "equality"
+        ]
     },
     {
-        "name": "symfony/yaml",
-        "version": "v2.6.6",
-        "version_normalized": "2.6.6.0",
-        "target-dir": "Symfony/Component/Yaml",
+        "name": "phpdocumentor/reflection-docblock",
+        "version": "2.0.4",
+        "version_normalized": "2.0.4.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Yaml.git",
-            "reference": "174f009ed36379a801109955fc5a71a49fe62dd4"
+            "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+            "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Yaml/zipball/174f009ed36379a801109955fc5a71a49fe62dd4",
-            "reference": "174f009ed36379a801109955fc5a71a49fe62dd4",
+            "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
+            "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
         "require-dev": {
-            "symfony/phpunit-bridge": "~2.7"
+            "phpunit/phpunit": "~4.0"
         },
-        "time": "2015-03-30 15:54:10",
+        "suggest": {
+            "dflydev/markdown": "~1.0",
+            "erusev/parsedown": "~1.0"
+        },
+        "time": "2015-02-03 12:10:50",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "2.0.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Yaml\\": ""
+                "phpDocumentor": [
+                    "src/"
+                ]
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2818,54 +2964,45 @@
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Mike van Riel",
+                "email": "mike.vanriel@naenius.com"
             }
-        ],
-        "description": "Symfony Yaml Component",
-        "homepage": "http://symfony.com"
+        ]
     },
     {
-        "name": "symfony/dom-crawler",
-        "version": "v2.6.6",
-        "version_normalized": "2.6.6.0",
-        "target-dir": "Symfony/Component/DomCrawler",
+        "name": "phpspec/prophecy",
+        "version": "1.4.0",
+        "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/DomCrawler.git",
-            "reference": "8897ebf39c7dfb752a5494fa301845a3fbb9e53d"
+            "url": "https://github.com/phpspec/prophecy.git",
+            "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/8897ebf39c7dfb752a5494fa301845a3fbb9e53d",
-            "reference": "8897ebf39c7dfb752a5494fa301845a3fbb9e53d",
+            "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5",
+            "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "doctrine/instantiator": "^1.0.2",
+            "phpdocumentor/reflection-docblock": "~2.0",
+            "sebastian/comparator": "~1.1"
         },
         "require-dev": {
-            "symfony/css-selector": "~2.3",
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "suggest": {
-            "symfony/css-selector": ""
+            "phpspec/phpspec": "~2.0"
         },
-        "time": "2015-03-30 15:54:10",
+        "time": "2015-03-27 19:31:25",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "1.4.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\DomCrawler\\": ""
+                "Prophecy\\": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2874,260 +3011,301 @@
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Konstantin Kudryashov",
+                "email": "ever.zet@gmail.com",
+                "homepage": "http://everzet.com"
             },
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Marcello Duarte",
+                "email": "marcello.duarte@gmail.com"
             }
         ],
-        "description": "Symfony DomCrawler Component",
-        "homepage": "http://symfony.com"
+        "description": "Highly opinionated mocking framework for PHP 5.3+",
+        "homepage": "https://github.com/phpspec/prophecy",
+        "keywords": [
+            "Double",
+            "Dummy",
+            "fake",
+            "mock",
+            "spy",
+            "stub"
+        ]
     },
     {
-        "name": "symfony/browser-kit",
-        "version": "v2.6.6",
-        "version_normalized": "2.6.6.0",
-        "target-dir": "Symfony/Component/BrowserKit",
+        "name": "phpunit/phpunit-mock-objects",
+        "version": "2.3.1",
+        "version_normalized": "2.3.1.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/BrowserKit.git",
-            "reference": "f21189b0eccbe56528515858ca1d5089a741692f"
+            "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+            "reference": "74ffb87f527f24616f72460e54b595f508dccb5c"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/f21189b0eccbe56528515858ca1d5089a741692f",
-            "reference": "f21189b0eccbe56528515858ca1d5089a741692f",
+            "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/74ffb87f527f24616f72460e54b595f508dccb5c",
+            "reference": "74ffb87f527f24616f72460e54b595f508dccb5c",
             "shasum": ""
         },
         "require": {
+            "doctrine/instantiator": "~1.0,>=1.0.2",
             "php": ">=5.3.3",
-            "symfony/dom-crawler": "~2.0,>=2.0.5"
+            "phpunit/php-text-template": "~1.2"
         },
         "require-dev": {
-            "symfony/css-selector": "~2.0,>=2.0.5",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/process": "~2.0,>=2.0.5"
+            "phpunit/phpunit": "~4.4"
         },
         "suggest": {
-            "symfony/process": ""
+            "ext-soap": "*"
         },
-        "time": "2015-03-30 15:54:10",
+        "time": "2015-04-02 05:36:41",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "2.3.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\BrowserKit\\": ""
-            }
+            "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 BrowserKit Component",
-        "homepage": "http://symfony.com"
+        "description": "Mock Object library for PHPUnit",
+        "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+        "keywords": [
+            "mock",
+            "xunit"
+        ]
     },
     {
-        "name": "zendframework/zend-stdlib",
-        "version": "2.4.0",
-        "version_normalized": "2.4.0.0",
+        "name": "phpunit/php-token-stream",
+        "version": "1.4.1",
+        "version_normalized": "1.4.1.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendStdlib.git",
-            "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030"
+            "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+            "reference": "eab81d02569310739373308137284e0158424330"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/eab586f4c18af3fa63c977611939f1f4a3cf1030",
-            "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030",
+            "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/eab81d02569310739373308137284e0158424330",
+            "reference": "eab81d02569310739373308137284e0158424330",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.23"
+            "ext-tokenizer": "*",
+            "php": ">=5.3.3"
         },
         "require-dev": {
-            "zendframework/zend-eventmanager": "self.version",
-            "zendframework/zend-filter": "self.version",
-            "zendframework/zend-serializer": "self.version",
-            "zendframework/zend-servicemanager": "self.version"
-        },
-        "suggest": {
-            "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
-            "zendframework/zend-filter": "To support naming strategy hydrator usage",
-            "zendframework/zend-serializer": "Zend\\Serializer component",
-            "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
+            "phpunit/phpunit": "~4.2"
         },
-        "time": "2015-04-01 18:09:29",
+        "time": "2015-04-08 04:46:07",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
+                "dev-master": "1.4-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-4": {
-                "Zend\\Stdlib\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
             "BSD-3-Clause"
         ],
-        "homepage": "https://github.com/zendframework/zf2",
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de"
+            }
+        ],
+        "description": "Wrapper around PHP's tokenizer extension.",
+        "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
         "keywords": [
-            "stdlib",
-            "zf2"
+            "tokenizer"
         ]
     },
     {
-        "name": "zendframework/zend-escaper",
-        "version": "2.4.0",
-        "version_normalized": "2.4.0.0",
+        "name": "phpunit/php-file-iterator",
+        "version": "1.4.0",
+        "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendEscaper.git",
-            "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96"
+            "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+            "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/65b3328627362b0be1d5e9067bc846511d1fbc96",
-            "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96",
+            "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
+            "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.23"
+            "php": ">=5.3.3"
         },
-        "time": "2015-04-01 18:02:07",
+        "time": "2015-04-02 05:19:05",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
+                "dev-master": "1.4.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-4": {
-                "Zend\\Escaper\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
             "BSD-3-Clause"
         ],
-        "homepage": "https://github.com/zendframework/zf2",
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
+            }
+        ],
+        "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+        "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
         "keywords": [
-            "escaper",
-            "zf2"
+            "filesystem",
+            "iterator"
         ]
     },
     {
-        "name": "zendframework/zend-feed",
-        "version": "2.4.0",
-        "version_normalized": "2.4.0.0",
+        "name": "phpunit/php-code-coverage",
+        "version": "2.0.16",
+        "version_normalized": "2.0.16.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendFeed.git",
-            "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5"
+            "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+            "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendFeed/zipball/aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
-            "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
+            "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/934fd03eb6840508231a7f73eb8940cf32c3b66c",
+            "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.23",
-            "zendframework/zend-escaper": "self.version",
-            "zendframework/zend-stdlib": "self.version"
+            "php": ">=5.3.3",
+            "phpunit/php-file-iterator": "~1.3",
+            "phpunit/php-text-template": "~1.2",
+            "phpunit/php-token-stream": "~1.3",
+            "sebastian/environment": "~1.0",
+            "sebastian/version": "~1.0"
         },
         "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"
+            "ext-xdebug": ">=2.1.4",
+            "phpunit/phpunit": "~4"
         },
         "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"
+            "ext-dom": "*",
+            "ext-xdebug": ">=2.2.1",
+            "ext-xmlwriter": "*"
         },
-        "time": "2015-04-01 18:09:25",
+        "time": "2015-04-11 04:35:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
+                "dev-master": "2.0.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-4": {
-                "Zend\\Feed\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
             "BSD-3-Clause"
         ],
-        "description": "provides functionality for consuming RSS and Atom feeds",
-        "homepage": "https://github.com/zendframework/zf2",
+        "authors": [
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
+            }
+        ],
+        "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+        "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
         "keywords": [
-            "feed",
-            "zf2"
+            "coverage",
+            "testing",
+            "xunit"
         ]
     },
     {
-        "name": "twig/twig",
-        "version": "v1.18.1",
-        "version_normalized": "1.18.1.0",
+        "name": "phpunit/phpunit",
+        "version": "4.6.4",
+        "version_normalized": "4.6.4.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/twigphp/Twig.git",
-            "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f"
+            "url": "https://github.com/sebastianbergmann/phpunit.git",
+            "reference": "163232991e652e6efed2f8470326fffa61e848e2"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/twigphp/Twig/zipball/9f70492f44398e276d1b81c1b43adfe6751c7b7f",
-            "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f",
+            "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/163232991e652e6efed2f8470326fffa61e848e2",
+            "reference": "163232991e652e6efed2f8470326fffa61e848e2",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.2.7"
+            "ext-dom": "*",
+            "ext-json": "*",
+            "ext-pcre": "*",
+            "ext-reflection": "*",
+            "ext-spl": "*",
+            "php": ">=5.3.3",
+            "phpspec/prophecy": "~1.3,>=1.3.1",
+            "phpunit/php-code-coverage": "~2.0,>=2.0.11",
+            "phpunit/php-file-iterator": "~1.4",
+            "phpunit/php-text-template": "~1.2",
+            "phpunit/php-timer": "~1.0",
+            "phpunit/phpunit-mock-objects": "~2.3",
+            "sebastian/comparator": "~1.1",
+            "sebastian/diff": "~1.2",
+            "sebastian/environment": "~1.2",
+            "sebastian/exporter": "~1.2",
+            "sebastian/global-state": "~1.0",
+            "sebastian/version": "~1.0",
+            "symfony/yaml": "~2.1|~3.0"
         },
-        "time": "2015-04-19 08:30:27",
+        "suggest": {
+            "phpunit/php-invoker": "~1.1"
+        },
+        "time": "2015-04-11 05:23:21",
+        "bin": [
+            "phpunit"
+        ],
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.18-dev"
+                "dev-master": "4.6.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Twig_": "lib/"
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
@@ -3135,26 +3313,17 @@
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com",
-                "homepage": "http://fabien.potencier.org",
-                "role": "Lead Developer"
-            },
-            {
-                "name": "Armin Ronacher",
-                "email": "armin.ronacher@active-4.com",
-                "role": "Project Founder"
-            },
-            {
-                "name": "Twig Team",
-                "homepage": "http://twig.sensiolabs.org/contributors",
-                "role": "Contributors"
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de",
+                "role": "lead"
             }
         ],
-        "description": "Twig, the flexible, fast, and secure template language for PHP",
-        "homepage": "http://twig.sensiolabs.org",
+        "description": "The PHP Unit Testing framework.",
+        "homepage": "https://phpunit.de/",
         "keywords": [
-            "templating"
+            "phpunit",
+            "testing",
+            "xunit"
         ]
     }
 ]
diff --git a/core/vendor/phpdocumentor/reflection-docblock/.gitignore b/core/vendor/phpdocumentor/reflection-docblock/.gitignore
new file mode 100644
index 000000000000..3ce5adbbde55
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/.gitignore
@@ -0,0 +1,2 @@
+.idea
+vendor
diff --git a/core/vendor/phpdocumentor/reflection-docblock/.travis.yml b/core/vendor/phpdocumentor/reflection-docblock/.travis.yml
new file mode 100644
index 000000000000..eef782c423cb
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/.travis.yml
@@ -0,0 +1,32 @@
+language: php
+php:
+  - 5.3.3
+  - 5.3
+  - 5.4
+  - 5.5
+  - 5.6
+  - hhvm
+  - hhvm-nightly
+
+matrix:
+    allow_failures:
+        - php: hhvm
+        - php: hhvm-nightly
+
+script:
+ - vendor/bin/phpunit
+
+before_script:
+ - sudo apt-get -qq update > /dev/null
+ - phpenv rehash > /dev/null
+ - composer selfupdate --quiet
+ - composer install --no-interaction --prefer-source --dev
+ - vendor/bin/phpunit
+ - composer update --no-interaction --prefer-source --dev
+
+notifications:
+  irc: "irc.freenode.org#phpdocumentor"
+  email:
+    - mike.vanriel@naenius.com
+    - ashnazg@php.net
+    - boen.robot@gmail.com
diff --git a/core/vendor/phpdocumentor/reflection-docblock/LICENSE b/core/vendor/phpdocumentor/reflection-docblock/LICENSE
new file mode 100644
index 000000000000..792e4040f26f
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2010 Mike van Riel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/core/vendor/phpdocumentor/reflection-docblock/README.md b/core/vendor/phpdocumentor/reflection-docblock/README.md
new file mode 100644
index 000000000000..6405d1a10c8b
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/README.md
@@ -0,0 +1,57 @@
+The ReflectionDocBlock Component [![Build Status](https://secure.travis-ci.org/phpDocumentor/ReflectionDocBlock.png)](https://travis-ci.org/phpDocumentor/ReflectionDocBlock)
+================================
+
+Introduction
+------------
+
+The ReflectionDocBlock component of phpDocumentor provides a DocBlock parser
+that is 100% compatible with the [PHPDoc standard](http://phpdoc.org/docs/latest).
+
+With this component, a library can provide support for annotations via DocBlocks
+or otherwise retrieve information that is embedded in a DocBlock.
+
+> **Note**: *this is a core component of phpDocumentor and is constantly being
+> optimized for performance.*
+
+Installation
+------------
+
+You can install the component in the following ways:
+
+* Use the official Github repository (https://github.com/phpDocumentor/ReflectionDocBlock)
+* Via Composer (http://packagist.org/packages/phpdocumentor/reflection-docblock)
+
+Usage
+-----
+
+The ReflectionDocBlock component is designed to work in an identical fashion to
+PHP's own Reflection extension (http://php.net/manual/en/book.reflection.php).
+
+Parsing can be initiated by instantiating the
+`\phpDocumentor\Reflection\DocBlock()` class and passing it a string containing
+a DocBlock (including asterisks) or by passing an object supporting the
+`getDocComment()` method.
+
+> *Examples of objects having the `getDocComment()` method are the
+> `ReflectionClass` and the `ReflectionMethod` classes of the PHP
+> Reflection extension*
+
+Example:
+
+    $class = new ReflectionClass('MyClass');
+    $phpdoc = new \phpDocumentor\Reflection\DocBlock($class);
+
+or
+
+    $docblock = <<<DOCBLOCK
+    /**
+     * This is a short description.
+     *
+     * This is a *long* description.
+     *
+     * @return void
+     */
+    DOCBLOCK;
+
+    $phpdoc = new \phpDocumentor\Reflection\DocBlock($docblock);
+
diff --git a/core/vendor/phpdocumentor/reflection-docblock/composer.json b/core/vendor/phpdocumentor/reflection-docblock/composer.json
new file mode 100644
index 000000000000..4dffa22d65ef
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/composer.json
@@ -0,0 +1,26 @@
+{
+    "name":    "phpdocumentor/reflection-docblock",
+    "type":    "library",
+    "license": "MIT",
+    "authors": [
+        {"name": "Mike van Riel", "email": "mike.vanriel@naenius.com"}
+    ],
+    "require": {
+        "php": ">=5.3.3"
+    },
+    "autoload": {
+        "psr-0": {"phpDocumentor": ["src/"]}
+    },
+    "require-dev": {
+        "phpunit/phpunit": "~4.0"
+    },
+    "suggest": {
+        "dflydev/markdown": "~1.0",
+        "erusev/parsedown": "~1.0"
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "2.0.x-dev"
+        }
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/composer.lock b/core/vendor/phpdocumentor/reflection-docblock/composer.lock
new file mode 100644
index 000000000000..4c6a8bb78b2c
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/composer.lock
@@ -0,0 +1,827 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+        "This file is @generated automatically"
+    ],
+    "hash": "ea1734d11b8c878445c2c6e58de8b85f",
+    "packages": [],
+    "packages-dev": [
+        {
+            "name": "ocramius/instantiator",
+            "version": "1.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Ocramius/Instantiator.git",
+                "reference": "a7abbb5fc9df6e7126af741dd6c140d1a7369435"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Ocramius/Instantiator/zipball/a7abbb5fc9df6e7126af741dd6c140d1a7369435",
+                "reference": "a7abbb5fc9df6e7126af741dd6c140d1a7369435",
+                "shasum": ""
+            },
+            "require": {
+                "ocramius/lazy-map": "1.0.*",
+                "php": "~5.3"
+            },
+            "require-dev": {
+                "athletic/athletic": "~0.1.8",
+                "ext-pdo": "*",
+                "ext-phar": "*",
+                "phpunit/phpunit": "~4.0",
+                "squizlabs/php_codesniffer": "2.0.*@ALPHA"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Instantiator\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Marco Pivetta",
+                    "email": "ocramius@gmail.com",
+                    "homepage": "http://ocramius.github.com/"
+                }
+            ],
+            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+            "homepage": "https://github.com/Ocramius/Instantiator",
+            "keywords": [
+                "constructor",
+                "instantiate"
+            ],
+            "time": "2014-08-14 15:10:55"
+        },
+        {
+            "name": "ocramius/lazy-map",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Ocramius/LazyMap.git",
+                "reference": "7fe3d347f5e618bcea7d39345ff83f3651d8b752"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Ocramius/LazyMap/zipball/7fe3d347f5e618bcea7d39345ff83f3651d8b752",
+                "reference": "7fe3d347f5e618bcea7d39345ff83f3651d8b752",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "athletic/athletic": "~0.1.6",
+                "phpmd/phpmd": "1.5.*",
+                "phpunit/phpunit": ">=3.7",
+                "satooshi/php-coveralls": "~0.6",
+                "squizlabs/php_codesniffer": "1.4.*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "LazyMap\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Marco Pivetta",
+                    "email": "ocramius@gmail.com",
+                    "homepage": "http://ocramius.github.com/",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A library that provides lazy instantiation logic for a map of objects",
+            "homepage": "https://github.com/Ocramius/LazyMap",
+            "keywords": [
+                "lazy",
+                "lazy instantiation",
+                "lazy loading",
+                "map",
+                "service location"
+            ],
+            "time": "2013-11-09 22:30:54"
+        },
+        {
+            "name": "phpunit/php-code-coverage",
+            "version": "2.0.10",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+                "reference": "6d196af48e8c100a3ae881940123e693da5a9217"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6d196af48e8c100a3ae881940123e693da5a9217",
+                "reference": "6d196af48e8c100a3ae881940123e693da5a9217",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "phpunit/php-file-iterator": "~1.3.1",
+                "phpunit/php-text-template": "~1.2.0",
+                "phpunit/php-token-stream": "~1.2.2",
+                "sebastian/environment": "~1.0.0",
+                "sebastian/version": "~1.0.3"
+            },
+            "require-dev": {
+                "ext-xdebug": ">=2.1.4",
+                "phpunit/phpunit": "~4.0.14"
+            },
+            "suggest": {
+                "ext-dom": "*",
+                "ext-xdebug": ">=2.2.1",
+                "ext-xmlwriter": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "include-path": [
+                ""
+            ],
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+            "keywords": [
+                "coverage",
+                "testing",
+                "xunit"
+            ],
+            "time": "2014-08-06 06:39:42"
+        },
+        {
+            "name": "phpunit/php-file-iterator",
+            "version": "1.3.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
+                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "File/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "include-path": [
+                ""
+            ],
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+            "keywords": [
+                "filesystem",
+                "iterator"
+            ],
+            "time": "2013-10-10 15:34:57"
+        },
+        {
+            "name": "phpunit/php-text-template",
+            "version": "1.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-text-template.git",
+                "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
+                "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "Text/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "include-path": [
+                ""
+            ],
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Simple template engine.",
+            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+            "keywords": [
+                "template"
+            ],
+            "time": "2014-01-30 17:20:04"
+        },
+        {
+            "name": "phpunit/php-timer",
+            "version": "1.0.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-timer.git",
+                "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
+                "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "PHP/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "include-path": [
+                ""
+            ],
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Utility class for timing",
+            "homepage": "https://github.com/sebastianbergmann/php-timer/",
+            "keywords": [
+                "timer"
+            ],
+            "time": "2013-08-02 07:42:54"
+        },
+        {
+            "name": "phpunit/php-token-stream",
+            "version": "1.2.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+                "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/ad4e1e23ae01b483c16f600ff1bebec184588e32",
+                "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32",
+                "shasum": ""
+            },
+            "require": {
+                "ext-tokenizer": "*",
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.2-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "PHP/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "include-path": [
+                ""
+            ],
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Wrapper around PHP's tokenizer extension.",
+            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+            "keywords": [
+                "tokenizer"
+            ],
+            "time": "2014-03-03 05:10:30"
+        },
+        {
+            "name": "phpunit/phpunit",
+            "version": "4.2.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit.git",
+                "reference": "a33fa68ece9f8c68589bfc2da8d2794e27b820bc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a33fa68ece9f8c68589bfc2da8d2794e27b820bc",
+                "reference": "a33fa68ece9f8c68589bfc2da8d2794e27b820bc",
+                "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.1",
+                "phpunit/php-text-template": "~1.2",
+                "phpunit/php-timer": "~1.0.2",
+                "phpunit/phpunit-mock-objects": "~2.2",
+                "sebastian/comparator": "~1.0",
+                "sebastian/diff": "~1.1",
+                "sebastian/environment": "~1.0",
+                "sebastian/exporter": "~1.0",
+                "sebastian/version": "~1.0",
+                "symfony/yaml": "~2.0"
+            },
+            "suggest": {
+                "phpunit/php-invoker": "~1.1"
+            },
+            "bin": [
+                "phpunit"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.2.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "include-path": [
+                "",
+                "../../symfony/yaml/"
+            ],
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "The PHP Unit Testing framework.",
+            "homepage": "http://www.phpunit.de/",
+            "keywords": [
+                "phpunit",
+                "testing",
+                "xunit"
+            ],
+            "time": "2014-08-18 05:12:30"
+        },
+        {
+            "name": "phpunit/phpunit-mock-objects",
+            "version": "2.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+                "reference": "42e589e08bc86e3e9bdf20d385e948347788505b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/42e589e08bc86e3e9bdf20d385e948347788505b",
+                "reference": "42e589e08bc86e3e9bdf20d385e948347788505b",
+                "shasum": ""
+            },
+            "require": {
+                "ocramius/instantiator": "~1.0",
+                "php": ">=5.3.3",
+                "phpunit/php-text-template": "~1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "4.2.*@dev"
+            },
+            "suggest": {
+                "ext-soap": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.2.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "include-path": [
+                ""
+            ],
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sb@sebastian-bergmann.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Mock Object library for PHPUnit",
+            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+            "keywords": [
+                "mock",
+                "xunit"
+            ],
+            "time": "2014-08-02 13:50:58"
+        },
+        {
+            "name": "sebastian/comparator",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/comparator.git",
+                "reference": "f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2",
+                "reference": "f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "sebastian/diff": "~1.1",
+                "sebastian/exporter": "~1.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@2bepublished.at"
+                }
+            ],
+            "description": "Provides the functionality to compare PHP values for equality",
+            "homepage": "http://www.github.com/sebastianbergmann/comparator",
+            "keywords": [
+                "comparator",
+                "compare",
+                "equality"
+            ],
+            "time": "2014-05-02 07:05:58"
+        },
+        {
+            "name": "sebastian/diff",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/diff.git",
+                "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d",
+                "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                },
+                {
+                    "name": "Kore Nordmann",
+                    "email": "mail@kore-nordmann.de"
+                }
+            ],
+            "description": "Diff implementation",
+            "homepage": "http://www.github.com/sebastianbergmann/diff",
+            "keywords": [
+                "diff"
+            ],
+            "time": "2013-08-03 16:46:33"
+        },
+        {
+            "name": "sebastian/environment",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/environment.git",
+                "reference": "79517609ec01139cd7e9fded0dd7ce08c952ef6a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/79517609ec01139cd7e9fded0dd7ce08c952ef6a",
+                "reference": "79517609ec01139cd7e9fded0dd7ce08c952ef6a",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "4.0.*@dev"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Provides functionality to handle HHVM/PHP environments",
+            "homepage": "http://www.github.com/sebastianbergmann/environment",
+            "keywords": [
+                "Xdebug",
+                "environment",
+                "hhvm"
+            ],
+            "time": "2014-02-18 16:17:19"
+        },
+        {
+            "name": "sebastian/exporter",
+            "version": "1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/exporter.git",
+                "reference": "1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529",
+                "reference": "1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "4.0.*@dev"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net",
+                    "role": "Lead"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@2bepublished.at"
+                }
+            ],
+            "description": "Provides the functionality to export PHP variables for visualization",
+            "homepage": "http://www.github.com/sebastianbergmann/exporter",
+            "keywords": [
+                "export",
+                "exporter"
+            ],
+            "time": "2014-02-16 08:26:31"
+        },
+        {
+            "name": "sebastian/version",
+            "version": "1.0.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/version.git",
+                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
+                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
+                "shasum": ""
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+            "homepage": "https://github.com/sebastianbergmann/version",
+            "time": "2014-03-07 15:35:33"
+        },
+        {
+            "name": "symfony/yaml",
+            "version": "v2.5.3",
+            "target-dir": "Symfony/Component/Yaml",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/Yaml.git",
+                "reference": "5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/Yaml/zipball/5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f",
+                "reference": "5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.5-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Symfony\\Component\\Yaml\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Symfony Community",
+                    "homepage": "http://symfony.com/contributors"
+                },
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                }
+            ],
+            "description": "Symfony Yaml Component",
+            "homepage": "http://symfony.com",
+            "time": "2014-08-05 09:00:40"
+        }
+    ],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "platform": {
+        "php": ">=5.3.3"
+    },
+    "platform-dev": []
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/phpunit.xml.dist b/core/vendor/phpdocumentor/reflection-docblock/phpunit.xml.dist
new file mode 100644
index 000000000000..f67ad2a20c7c
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/phpunit.xml.dist
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<phpunit colors="true" strict="true" bootstrap="vendor/autoload.php">
+  <testsuites>
+    <testsuite name="phpDocumentor\Reflection\DocBlock">
+      <directory>./tests/</directory>
+    </testsuite>
+  </testsuites>
+  <filter>
+    <whitelist>
+        <directory suffix=".php">./src/</directory>
+    </whitelist>
+  </filter>
+</phpunit>
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock.php
new file mode 100644
index 000000000000..02968b1637bc
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock.php
@@ -0,0 +1,468 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+use phpDocumentor\Reflection\DocBlock\Context;
+use phpDocumentor\Reflection\DocBlock\Location;
+
+/**
+ * Parses the DocBlock for any structure.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class DocBlock implements \Reflector
+{
+    /** @var string The opening line for this docblock. */
+    protected $short_description = '';
+
+    /**
+     * @var DocBlock\Description The actual
+     *     description for this docblock.
+     */
+    protected $long_description = null;
+
+    /**
+     * @var Tag[] An array containing all
+     *     the tags in this docblock; except inline.
+     */
+    protected $tags = array();
+
+    /** @var Context Information about the context of this DocBlock. */
+    protected $context = null;
+
+    /** @var Location Information about the location of this DocBlock. */
+    protected $location = null;
+
+    /** @var bool Is this DocBlock (the start of) a template? */
+    protected $isTemplateStart = false;
+
+    /** @var bool Does this DocBlock signify the end of a DocBlock template? */
+    protected $isTemplateEnd = false;
+
+    /**
+     * Parses the given docblock and populates the member fields.
+     *
+     * The constructor may also receive namespace information such as the
+     * current namespace and aliases. This information is used by some tags
+     * (e.g. @return, @param, etc.) to turn a relative Type into a FQCN.
+     *
+     * @param \Reflector|string $docblock A docblock comment (including
+     *     asterisks) or reflector supporting the getDocComment method.
+     * @param Context           $context  The context in which the DocBlock
+     *     occurs.
+     * @param Location          $location The location within the file that this
+     *     DocBlock occurs in.
+     *
+     * @throws \InvalidArgumentException if the given argument does not have the
+     *     getDocComment method.
+     */
+    public function __construct(
+        $docblock,
+        Context $context = null,
+        Location $location = null
+    ) {
+        if (is_object($docblock)) {
+            if (!method_exists($docblock, 'getDocComment')) {
+                throw new \InvalidArgumentException(
+                    'Invalid object passed; the given reflector must support '
+                    . 'the getDocComment method'
+                );
+            }
+
+            $docblock = $docblock->getDocComment();
+        }
+
+        $docblock = $this->cleanInput($docblock);
+
+        list($templateMarker, $short, $long, $tags) = $this->splitDocBlock($docblock);
+        $this->isTemplateStart = $templateMarker === '#@+';
+        $this->isTemplateEnd = $templateMarker === '#@-';
+        $this->short_description = $short;
+        $this->long_description = new DocBlock\Description($long, $this);
+        $this->parseTags($tags);
+
+        $this->context  = $context;
+        $this->location = $location;
+    }
+
+    /**
+     * Strips the asterisks from the DocBlock comment.
+     *
+     * @param string $comment String containing the comment text.
+     *
+     * @return string
+     */
+    protected function cleanInput($comment)
+    {
+        $comment = trim(
+            preg_replace(
+                '#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]{0,1}(.*)?#u',
+                '$1',
+                $comment
+            )
+        );
+
+        // reg ex above is not able to remove */ from a single line docblock
+        if (substr($comment, -2) == '*/') {
+            $comment = trim(substr($comment, 0, -2));
+        }
+
+        // normalize strings
+        $comment = str_replace(array("\r\n", "\r"), "\n", $comment);
+
+        return $comment;
+    }
+
+    /**
+     * Splits the DocBlock into a template marker, summary, description and block of tags.
+     *
+     * @param string $comment Comment to split into the sub-parts.
+     *
+     * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split.
+     * @author Mike van Riel <me@mikevanriel.com> for extending the regex with template marker support.
+     *
+     * @return string[] containing the template marker (if any), summary, description and a string containing the tags.
+     */
+    protected function splitDocBlock($comment)
+    {
+        // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This
+        // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the
+        // performance impact of running a regular expression
+        if (strpos($comment, '@') === 0) {
+            return array('', '', '', $comment);
+        }
+
+        // clears all extra horizontal whitespace from the line endings to prevent parsing issues
+        $comment = preg_replace('/\h*$/Sum', '', $comment);
+
+        /*
+         * Splits the docblock into a template marker, short description, long description and tags section
+         *
+         * - The template marker is empty, #@+ or #@- if the DocBlock starts with either of those (a newline may
+         *   occur after it and will be stripped).
+         * - The short description is started from the first character until a dot is encountered followed by a
+         *   newline OR two consecutive newlines (horizontal whitespace is taken into account to consider spacing
+         *   errors). This is optional.
+         * - The long description, any character until a new line is encountered followed by an @ and word
+         *   characters (a tag). This is optional.
+         * - Tags; the remaining characters
+         *
+         * Big thanks to RichardJ for contributing this Regular Expression
+         */
+        preg_match(
+            '/
+            \A
+            # 1. Extract the template marker
+            (?:(\#\@\+|\#\@\-)\n?)?
+
+            # 2. Extract the summary
+            (?:
+              (?! @\pL ) # The summary may not start with an @
+              (
+                [^\n.]+
+                (?:
+                  (?! \. \n | \n{2} )     # End summary upon a dot followed by newline or two newlines
+                  [\n.] (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line
+                  [^\n.]+                 # Include anything else
+                )*
+                \.?
+              )?
+            )
+
+            # 3. Extract the description
+            (?:
+              \s*        # Some form of whitespace _must_ precede a description because a summary must be there
+              (?! @\pL ) # The description may not start with an @
+              (
+                [^\n]+
+                (?: \n+
+                  (?! [ \t]* @\pL ) # End description when an @ is found as first character on a new line
+                  [^\n]+            # Include anything else
+                )*
+              )
+            )?
+
+            # 4. Extract the tags (anything that follows)
+            (\s+ [\s\S]*)? # everything that follows
+            /ux',
+            $comment,
+            $matches
+        );
+        array_shift($matches);
+
+        while (count($matches) < 4) {
+            $matches[] = '';
+        }
+
+        return $matches;
+    }
+
+    /**
+     * Creates the tag objects.
+     *
+     * @param string $tags Tag block to parse.
+     *
+     * @return void
+     */
+    protected function parseTags($tags)
+    {
+        $result = array();
+        $tags = trim($tags);
+        if ('' !== $tags) {
+            if ('@' !== $tags[0]) {
+                throw new \LogicException(
+                    'A tag block started with text instead of an actual tag,'
+                    . ' this makes the tag block invalid: ' . $tags
+                );
+            }
+            foreach (explode("\n", $tags) as $tag_line) {
+                if (isset($tag_line[0]) && ($tag_line[0] === '@')) {
+                    $result[] = $tag_line;
+                } else {
+                    $result[count($result) - 1] .= "\n" . $tag_line;
+                }
+            }
+
+            // create proper Tag objects
+            foreach ($result as $key => $tag_line) {
+                $result[$key] = Tag::createInstance(trim($tag_line), $this);
+            }
+        }
+
+        $this->tags = $result;
+    }
+
+    /**
+     * Gets the text portion of the doc block.
+     * 
+     * Gets the text portion (short and long description combined) of the doc
+     * block.
+     * 
+     * @return string The text portion of the doc block.
+     */
+    public function getText()
+    {
+        $short = $this->getShortDescription();
+        $long = $this->getLongDescription()->getContents();
+
+        if ($long) {
+            return "{$short}\n\n{$long}";
+        } else {
+            return $short;
+        }
+    }
+
+    /**
+     * Set the text portion of the doc block.
+     * 
+     * Sets the text portion (short and long description combined) of the doc
+     * block.
+     *
+     * @param string $docblock The new text portion of the doc block.
+     * 
+     * @return $this This doc block.
+     */
+    public function setText($comment)
+    {
+        list(,$short, $long) = $this->splitDocBlock($comment);
+        $this->short_description = $short;
+        $this->long_description = new DocBlock\Description($long, $this);
+        return $this;
+    }
+    /**
+     * Returns the opening line or also known as short description.
+     *
+     * @return string
+     */
+    public function getShortDescription()
+    {
+        return $this->short_description;
+    }
+
+    /**
+     * Returns the full description or also known as long description.
+     *
+     * @return DocBlock\Description
+     */
+    public function getLongDescription()
+    {
+        return $this->long_description;
+    }
+
+    /**
+     * Returns whether this DocBlock is the start of a Template section.
+     *
+     * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker
+     * (`#@+`) that is appended directly after the opening `/**` of a DocBlock.
+     *
+     * An example of such an opening is:
+     *
+     * ```
+     * /**#@+
+     *  * My DocBlock
+     *  * /
+     * ```
+     *
+     * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all
+     * elements that follow until another DocBlock is found that contains the closing marker (`#@-`).
+     *
+     * @see self::isTemplateEnd() for the check whether a closing marker was provided.
+     *
+     * @return boolean
+     */
+    public function isTemplateStart()
+    {
+        return $this->isTemplateStart;
+    }
+
+    /**
+     * Returns whether this DocBlock is the end of a Template section.
+     *
+     * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality.
+     *
+     * @return boolean
+     */
+    public function isTemplateEnd()
+    {
+        return $this->isTemplateEnd;
+    }
+
+    /**
+     * Returns the current context.
+     *
+     * @return Context
+     */
+    public function getContext()
+    {
+        return $this->context;
+    }
+
+    /**
+     * Returns the current location.
+     *
+     * @return Location
+     */
+    public function getLocation()
+    {
+        return $this->location;
+    }
+
+    /**
+     * Returns the tags for this DocBlock.
+     *
+     * @return Tag[]
+     */
+    public function getTags()
+    {
+        return $this->tags;
+    }
+
+    /**
+     * Returns an array of tags matching the given name. If no tags are found
+     * an empty array is returned.
+     *
+     * @param string $name String to search by.
+     *
+     * @return Tag[]
+     */
+    public function getTagsByName($name)
+    {
+        $result = array();
+
+        /** @var Tag $tag */
+        foreach ($this->getTags() as $tag) {
+            if ($tag->getName() != $name) {
+                continue;
+            }
+
+            $result[] = $tag;
+        }
+
+        return $result;
+    }
+
+    /**
+     * Checks if a tag of a certain type is present in this DocBlock.
+     *
+     * @param string $name Tag name to check for.
+     *
+     * @return bool
+     */
+    public function hasTag($name)
+    {
+        /** @var Tag $tag */
+        foreach ($this->getTags() as $tag) {
+            if ($tag->getName() == $name) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Appends a tag at the end of the list of tags.
+     *
+     * @param Tag $tag The tag to add.
+     *
+     * @return Tag The newly added tag.
+     *
+     * @throws \LogicException When the tag belongs to a different DocBlock.
+     */
+    public function appendTag(Tag $tag)
+    {
+        if (null === $tag->getDocBlock()) {
+            $tag->setDocBlock($this);
+        }
+
+        if ($tag->getDocBlock() === $this) {
+            $this->tags[] = $tag;
+        } else {
+            throw new \LogicException(
+                'This tag belongs to a different DocBlock object.'
+            );
+        }
+
+        return $tag;
+    }
+
+
+    /**
+     * Builds a string representation of this object.
+     *
+     * @todo determine the exact format as used by PHP Reflection and
+     *     implement it.
+     *
+     * @return string
+     * @codeCoverageIgnore Not yet implemented
+     */
+    public static function export()
+    {
+        throw new \Exception('Not yet implemented');
+    }
+
+    /**
+     * Returns the exported information (we should use the export static method
+     * BUT this throws an exception at this point).
+     *
+     * @return string
+     * @codeCoverageIgnore Not yet implemented
+     */
+    public function __toString()
+    {
+        return 'Not yet implemented';
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Context.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Context.php
new file mode 100644
index 000000000000..81aa83ce537d
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Context.php
@@ -0,0 +1,154 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock;
+
+/**
+ * The context in which a DocBlock occurs.
+ *
+ * @author  Vasil Rangelov <boen.robot@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class Context
+{
+    /** @var string The current namespace. */
+    protected $namespace = '';
+
+    /** @var array List of namespace aliases => Fully Qualified Namespace. */
+    protected $namespace_aliases = array();
+    
+    /** @var string Name of the structural element, within the namespace. */
+    protected $lsen = '';
+    
+    /**
+     * Cteates a new context.
+     * @param string $namespace         The namespace where this DocBlock
+     *     resides in.
+     * @param array  $namespace_aliases List of namespace aliases => Fully
+     *     Qualified Namespace.
+     * @param string $lsen              Name of the structural element, within
+     *     the namespace.
+     */
+    public function __construct(
+        $namespace = '',
+        array $namespace_aliases = array(),
+        $lsen = ''
+    ) {
+        if (!empty($namespace)) {
+            $this->setNamespace($namespace);
+        }
+        $this->setNamespaceAliases($namespace_aliases);
+        $this->setLSEN($lsen);
+    }
+
+    /**
+     * @return string The namespace where this DocBlock resides in.
+     */
+    public function getNamespace()
+    {
+        return $this->namespace;
+    }
+
+    /**
+     * @return array List of namespace aliases => Fully Qualified Namespace.
+     */
+    public function getNamespaceAliases()
+    {
+        return $this->namespace_aliases;
+    }
+    
+    /**
+     * Returns the Local Structural Element Name.
+     * 
+     * @return string Name of the structural element, within the namespace.
+     */
+    public function getLSEN()
+    {
+        return $this->lsen;
+    }
+    
+    /**
+     * Sets a new namespace.
+     * 
+     * Sets a new namespace for the context. Leading and trailing slashes are
+     * trimmed, and the keywords "global" and "default" are treated as aliases
+     * to no namespace.
+     * 
+     * @param string $namespace The new namespace to set.
+     * 
+     * @return $this
+     */
+    public function setNamespace($namespace)
+    {
+        if ('global' !== $namespace
+            && 'default' !== $namespace
+        ) {
+            // Srip leading and trailing slash
+            $this->namespace = trim((string)$namespace, '\\');
+        } else {
+            $this->namespace = '';
+        }
+        return $this;
+    }
+    
+    /**
+     * Sets the namespace aliases, replacing all previous ones.
+     * 
+     * @param array $namespace_aliases List of namespace aliases => Fully
+     *     Qualified Namespace.
+     * 
+     * @return $this
+     */
+    public function setNamespaceAliases(array $namespace_aliases)
+    {
+        $this->namespace_aliases = array();
+        foreach ($namespace_aliases as $alias => $fqnn) {
+            $this->setNamespaceAlias($alias, $fqnn);
+        }
+        return $this;
+    }
+    
+    /**
+     * Adds a namespace alias to the context.
+     * 
+     * @param string $alias The alias name (the part after "as", or the last
+     *     part of the Fully Qualified Namespace Name) to add.
+     * @param string $fqnn  The Fully Qualified Namespace Name for this alias.
+     *     Any form of leading/trailing slashes are accepted, but what will be
+     *     stored is a name, prefixed with a slash, and no trailing slash.
+     * 
+     * @return $this
+     */
+    public function setNamespaceAlias($alias, $fqnn)
+    {
+        $this->namespace_aliases[$alias] = '\\' . trim((string)$fqnn, '\\');
+        return $this;
+    }
+    
+    /**
+     * Sets a new Local Structural Element Name.
+     * 
+     * Sets a new Local Structural Element Name. A local name also contains
+     * punctuation determining the kind of structural element (e.g. trailing "("
+     * and ")" for functions and methods).
+     * 
+     * @param string $lsen The new local name of a structural element.
+     * 
+     * @return $this
+     */
+    public function setLSEN($lsen)
+    {
+        $this->lsen = (string)$lsen;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Description.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Description.php
new file mode 100644
index 000000000000..d41142e28ded
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Description.php
@@ -0,0 +1,223 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock;
+
+use phpDocumentor\Reflection\DocBlock;
+
+/**
+ * Parses a Description of a DocBlock or tag.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class Description implements \Reflector
+{
+    /** @var string */
+    protected $contents = '';
+
+    /** @var array The contents, as an array of strings and Tag objects. */
+    protected $parsedContents = null;
+
+    /** @var DocBlock The DocBlock which this description belongs to. */
+    protected $docblock = null;
+
+    /**
+     * Populates the fields of a description.
+     *
+     * @param string   $content  The description's conetnts.
+     * @param DocBlock $docblock The DocBlock which this description belongs to.
+     */
+    public function __construct($content, DocBlock $docblock = null)
+    {
+        $this->setContent($content)->setDocBlock($docblock);
+    }
+
+    /**
+     * Gets the text of this description.
+     *
+     * @return string
+     */
+    public function getContents()
+    {
+        return $this->contents;
+    }
+
+    /**
+     * Sets the text of this description.
+     *
+     * @param string $content The new text of this description.
+     *
+     * @return $this
+     */
+    public function setContent($content)
+    {
+        $this->contents = trim($content);
+
+        $this->parsedContents = null;
+        return $this;
+    }
+
+    /**
+     * Returns the parsed text of this description.
+     *
+     * @return array An array of strings and tag objects, in the order they
+     *     occur within the description.
+     */
+    public function getParsedContents()
+    {
+        if (null === $this->parsedContents) {
+            $this->parsedContents = preg_split(
+                '/\{
+                    # "{@}" is not a valid inline tag. This ensures that
+                    # we do not treat it as one, but treat it literally.
+                    (?!@\})
+                    # We want to capture the whole tag line, but without the
+                    # inline tag delimiters.
+                    (\@
+                        # Match everything up to the next delimiter.
+                        [^{}]*
+                        # Nested inline tag content should not be captured, or
+                        # it will appear in the result separately.
+                        (?:
+                            # Match nested inline tags.
+                            (?:
+                                # Because we did not catch the tag delimiters
+                                # earlier, we must be explicit with them here.
+                                # Notice that this also matches "{}", as a way
+                                # to later introduce it as an escape sequence.
+                                \{(?1)?\}
+                                |
+                                # Make sure we match hanging "{".
+                                \{
+                            )
+                            # Match content after the nested inline tag.
+                            [^{}]*
+                        )* # If there are more inline tags, match them as well.
+                           # We use "*" since there may not be any nested inline
+                           # tags.
+                    )
+                \}/Sux',
+                $this->contents,
+                null,
+                PREG_SPLIT_DELIM_CAPTURE
+            );
+
+            $count = count($this->parsedContents);
+            for ($i=1; $i<$count; $i += 2) {
+                $this->parsedContents[$i] = Tag::createInstance(
+                    $this->parsedContents[$i],
+                    $this->docblock
+                );
+            }
+
+            //In order to allow "literal" inline tags, the otherwise invalid
+            //sequence "{@}" is changed to "@", and "{}" is changed to "}".
+            //See unit tests for examples.
+            for ($i=0; $i<$count; $i += 2) {
+                $this->parsedContents[$i] = str_replace(
+                    array('{@}', '{}'),
+                    array('@', '}'),
+                    $this->parsedContents[$i]
+                );
+            }
+        }
+        return $this->parsedContents;
+    }
+
+    /**
+     * Return a formatted variant of the Long Description using MarkDown.
+     *
+     * @todo this should become a more intelligent piece of code where the
+     *     configuration contains a setting what format long descriptions are.
+     *
+     * @codeCoverageIgnore Will be removed soon, in favor of adapters at
+     *     PhpDocumentor itself that will process text in various formats.
+     *
+     * @return string
+     */
+    public function getFormattedContents()
+    {
+        $result = $this->contents;
+
+        // if the long description contains a plain HTML <code> element, surround
+        // it with a pre element. Please note that we explicitly used str_replace
+        // and not preg_replace to gain performance
+        if (strpos($result, '<code>') !== false) {
+            $result = str_replace(
+                array('<code>', "<code>\r\n", "<code>\n", "<code>\r", '</code>'),
+                array('<pre><code>', '<code>', '<code>', '<code>', '</code></pre>'),
+                $result
+            );
+        }
+
+        if (class_exists('Parsedown')) {
+            $markdown = \Parsedown::instance();
+            $result = $markdown->parse($result);
+        } elseif (class_exists('dflydev\markdown\MarkdownExtraParser')) {
+            $markdown = new \dflydev\markdown\MarkdownExtraParser();
+            $result = $markdown->transformMarkdown($result);
+        }
+
+        return trim($result);
+    }
+
+    /**
+     * Gets the docblock this tag belongs to.
+     *
+     * @return DocBlock The docblock this description belongs to.
+     */
+    public function getDocBlock()
+    {
+        return $this->docblock;
+    }
+
+    /**
+     * Sets the docblock this tag belongs to.
+     *
+     * @param DocBlock $docblock The new docblock this description belongs to.
+     *     Setting NULL removes any association.
+     *
+     * @return $this
+     */
+    public function setDocBlock(DocBlock $docblock = null)
+    {
+        $this->docblock = $docblock;
+
+        return $this;
+    }
+
+    /**
+     * Builds a string representation of this object.
+     *
+     * @todo determine the exact format as used by PHP Reflection
+     *     and implement it.
+     *
+     * @return void
+     * @codeCoverageIgnore Not yet implemented
+     */
+    public static function export()
+    {
+        throw new \Exception('Not yet implemented');
+    }
+
+    /**
+     * Returns the long description as a string.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->getContents();
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Location.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Location.php
new file mode 100644
index 000000000000..966ed44d72d0
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Location.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock;
+
+/**
+ * The location a DocBlock occurs within a file.
+ *
+ * @author  Vasil Rangelov <boen.robot@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class Location
+{
+    /** @var int Line where the DocBlock text starts. */
+    protected $lineNumber = 0;
+
+    /** @var int Column where the DocBlock text starts. */
+    protected $columnNumber = 0;
+    
+    public function __construct(
+        $lineNumber = 0,
+        $columnNumber = 0
+    ) {
+        $this->setLineNumber($lineNumber)->setColumnNumber($columnNumber);
+    }
+
+    /**
+     * @return int Line where the DocBlock text starts.
+     */
+    public function getLineNumber()
+    {
+        return $this->lineNumber;
+    }
+
+    /**
+     * 
+     * @param type $lineNumber
+     * @return $this
+     */
+    public function setLineNumber($lineNumber)
+    {
+        $this->lineNumber = (int)$lineNumber;
+
+        return $this;
+    }
+
+    /**
+     * @return int Column where the DocBlock text starts.
+     */
+    public function getColumnNumber()
+    {
+        return $this->columnNumber;
+    }
+
+    /**
+     * 
+     * @param int $columnNumber
+     * @return $this
+     */
+    public function setColumnNumber($columnNumber)
+    {
+        $this->columnNumber = (int)$columnNumber;
+
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Serializer.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Serializer.php
new file mode 100644
index 000000000000..c1617850e2bc
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Serializer.php
@@ -0,0 +1,198 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Barry vd. Heuvel <barryvdh@gmail.com>
+ * @copyright 2013 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock;
+
+use phpDocumentor\Reflection\DocBlock;
+
+/**
+ * Serializes a DocBlock instance.
+ *
+ * @author  Barry vd. Heuvel <barryvdh@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class Serializer
+{
+
+    /** @var string The string to indent the comment with. */
+    protected $indentString = ' ';
+
+    /** @var int The number of times the indent string is repeated. */
+    protected $indent = 0;
+
+    /** @var bool Whether to indent the first line. */
+    protected $isFirstLineIndented = true;
+
+    /** @var int|null The max length of a line. */
+    protected $lineLength = null;
+
+    /**
+     * Create a Serializer instance.
+     *
+     * @param int      $indent          The number of times the indent string is
+     *     repeated.
+     * @param string   $indentString    The string to indent the comment with.
+     * @param bool     $indentFirstLine Whether to indent the first line.
+     * @param int|null $lineLength      The max length of a line or NULL to
+     *     disable line wrapping.
+     */
+    public function __construct(
+        $indent = 0,
+        $indentString = ' ',
+        $indentFirstLine = true,
+        $lineLength = null
+    ) {
+        $this->setIndentationString($indentString);
+        $this->setIndent($indent);
+        $this->setIsFirstLineIndented($indentFirstLine);
+        $this->setLineLength($lineLength);
+    }
+
+    /**
+     * Sets the string to indent comments with.
+     * 
+     * @param string $indentationString The string to indent comments with.
+     * 
+     * @return $this This serializer object.
+     */
+    public function setIndentationString($indentString)
+    {
+        $this->indentString = (string)$indentString;
+        return $this;
+    }
+
+    /**
+     * Gets the string to indent comments with.
+     * 
+     * @return string The indent string.
+     */
+    public function getIndentationString()
+    {
+        return $this->indentString;
+    }
+
+    /**
+     * Sets the number of indents.
+     * 
+     * @param int $indent The number of times the indent string is repeated.
+     * 
+     * @return $this This serializer object.
+     */
+    public function setIndent($indent)
+    {
+        $this->indent = (int)$indent;
+        return $this;
+    }
+
+    /**
+     * Gets the number of indents.
+     * 
+     * @return int The number of times the indent string is repeated.
+     */
+    public function getIndent()
+    {
+        return $this->indent;
+    }
+
+    /**
+     * Sets whether or not the first line should be indented.
+     * 
+     * Sets whether or not the first line (the one with the "/**") should be
+     * indented.
+     * 
+     * @param bool $indentFirstLine The new value for this setting.
+     * 
+     * @return $this This serializer object.
+     */
+    public function setIsFirstLineIndented($indentFirstLine)
+    {
+        $this->isFirstLineIndented = (bool)$indentFirstLine;
+        return $this;
+    }
+
+    /**
+     * Gets whether or not the first line should be indented.
+     * 
+     * @return bool Whether or not the first line should be indented.
+     */
+    public function isFirstLineIndented()
+    {
+        return $this->isFirstLineIndented;
+    }
+
+    /**
+     * Sets the line length.
+     * 
+     * Sets the length of each line in the serialization. Content will be
+     * wrapped within this limit.
+     * 
+     * @param int|null $lineLength The length of each line. NULL to disable line
+     *     wrapping altogether.
+     * 
+     * @return $this This serializer object.
+     */
+    public function setLineLength($lineLength)
+    {
+        $this->lineLength = null === $lineLength ? null : (int)$lineLength;
+        return $this;
+    }
+
+    /**
+     * Gets the line length.
+     * 
+     * @return int|null The length of each line or NULL if line wrapping is
+     *     disabled.
+     */
+    public function getLineLength()
+    {
+        return $this->lineLength;
+    }
+
+    /**
+     * Generate a DocBlock comment.
+     *
+     * @param DocBlock The DocBlock to serialize.
+     * 
+     * @return string The serialized doc block.
+     */
+    public function getDocComment(DocBlock $docblock)
+    {
+        $indent = str_repeat($this->indentString, $this->indent);
+        $firstIndent = $this->isFirstLineIndented ? $indent : '';
+
+        $text = $docblock->getText();
+        if ($this->lineLength) {
+            //3 === strlen(' * ')
+            $wrapLength = $this->lineLength - strlen($indent) - 3;
+            $text = wordwrap($text, $wrapLength);
+        }
+        $text = str_replace("\n", "\n{$indent} * ", $text);
+
+        $comment = "{$firstIndent}/**\n{$indent} * {$text}\n{$indent} *\n";
+
+        /** @var Tag $tag */
+        foreach ($docblock->getTags() as $tag) {
+            $tagText = (string) $tag;
+            if ($this->lineLength) {
+                $tagText = wordwrap($tagText, $wrapLength);
+            }
+            $tagText = str_replace("\n", "\n{$indent} * ", $tagText);
+
+            $comment .= "{$indent} * {$tagText}\n";
+        }
+
+        $comment .= $indent . ' */';
+
+        return $comment;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag.php
new file mode 100644
index 000000000000..a96db09521d5
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag.php
@@ -0,0 +1,377 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock;
+
+use phpDocumentor\Reflection\DocBlock;
+
+/**
+ * Parses a tag definition for a DocBlock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class Tag implements \Reflector
+{
+    /**
+     * PCRE regular expression matching a tag name.
+     */
+    const REGEX_TAGNAME = '[\w\-\_\\\\]+';
+
+    /** @var string Name of the tag */
+    protected $tag = '';
+
+    /**
+     * @var string|null Content of the tag.
+     *     When set to NULL, it means it needs to be regenerated.
+     */
+    protected $content = '';
+
+    /** @var string Description of the content of this tag */
+    protected $description = '';
+
+    /**
+     * @var array|null The description, as an array of strings and Tag objects.
+     *     When set to NULL, it means it needs to be regenerated.
+     */
+    protected $parsedDescription = null;
+
+    /** @var Location Location of the tag. */
+    protected $location = null;
+
+    /** @var DocBlock The DocBlock which this tag belongs to. */
+    protected $docblock = null;
+    
+    /**
+     * @var array An array with a tag as a key, and an FQCN to a class that
+     *     handles it as an array value. The class is expected to inherit this
+     *     class.
+     */
+    private static $tagHandlerMappings = array(
+        'author'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\AuthorTag',
+        'covers'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\CoversTag',
+        'deprecated'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\DeprecatedTag',
+        'example'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\ExampleTag',
+        'link'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\LinkTag',
+        'method'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\MethodTag',
+        'param'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\ParamTag',
+        'property-read'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\PropertyReadTag',
+        'property'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\PropertyTag',
+        'property-write'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\PropertyWriteTag',
+        'return'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\ReturnTag',
+        'see'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\SeeTag',
+        'since'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\SinceTag',
+        'source'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\SourceTag',
+        'throw'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag',
+        'throws'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag',
+        'uses'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\UsesTag',
+        'var'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\VarTag',
+        'version'
+            => '\phpDocumentor\Reflection\DocBlock\Tag\VersionTag'
+    );
+
+    /**
+     * Factory method responsible for instantiating the correct sub type.
+     *
+     * @param string   $tag_line The text for this tag, including description.
+     * @param DocBlock $docblock The DocBlock which this tag belongs to.
+     * @param Location $location Location of the tag.
+     *
+     * @throws \InvalidArgumentException if an invalid tag line was presented.
+     *
+     * @return static A new tag object.
+     */
+    final public static function createInstance(
+        $tag_line,
+        DocBlock $docblock = null,
+        Location $location = null
+    ) {
+        if (!preg_match(
+            '/^@(' . self::REGEX_TAGNAME . ')(?:\s*([^\s].*)|$)?/us',
+            $tag_line,
+            $matches
+        )) {
+            throw new \InvalidArgumentException(
+                'Invalid tag_line detected: ' . $tag_line
+            );
+        }
+
+        $handler = __CLASS__;
+        if (isset(self::$tagHandlerMappings[$matches[1]])) {
+            $handler = self::$tagHandlerMappings[$matches[1]];
+        } elseif (isset($docblock)) {
+            $tagName = (string)new Type\Collection(
+                array($matches[1]),
+                $docblock->getContext()
+            );
+
+            if (isset(self::$tagHandlerMappings[$tagName])) {
+                $handler = self::$tagHandlerMappings[$tagName];
+            }
+        }
+
+        return new $handler(
+            $matches[1],
+            isset($matches[2]) ? $matches[2] : '',
+            $docblock,
+            $location
+        );
+    }
+
+    /**
+     * Registers a handler for tags.
+     * 
+     * Registers a handler for tags. The class specified is autoloaded if it's
+     * not available. It must inherit from this class.
+     * 
+     * @param string      $tag     Name of tag to regiser a handler for. When
+     *     registering a namespaced tag, the full name, along with a prefixing
+     *     slash MUST be provided.
+     * @param string|null $handler FQCN of handler. Specifing NULL removes the
+     *     handler for the specified tag, if any.
+     * 
+     * @return bool TRUE on success, FALSE on failure.
+     */
+    final public static function registerTagHandler($tag, $handler)
+    {
+        $tag = trim((string)$tag);
+
+        if (null === $handler) {
+            unset(self::$tagHandlerMappings[$tag]);
+            return true;
+        }
+
+        if ('' !== $tag
+            && class_exists($handler, true)
+            && is_subclass_of($handler, __CLASS__)
+            && !strpos($tag, '\\') //Accept no slash, and 1st slash at offset 0.
+        ) {
+            self::$tagHandlerMappings[$tag] = $handler;
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Parses a tag and populates the member variables.
+     *
+     * @param string   $name     Name of the tag.
+     * @param string   $content  The contents of the given tag.
+     * @param DocBlock $docblock The DocBlock which this tag belongs to.
+     * @param Location $location Location of the tag.
+     */
+    public function __construct(
+        $name,
+        $content,
+        DocBlock $docblock = null,
+        Location $location = null
+    ) {
+        $this
+            ->setName($name)
+            ->setContent($content)
+            ->setDocBlock($docblock)
+            ->setLocation($location);
+    }
+
+    /**
+     * Gets the name of this tag.
+     *
+     * @return string The name of this tag.
+     */
+    public function getName()
+    {
+        return $this->tag;
+    }
+
+    /**
+     * Sets the name of this tag.
+     * 
+     * @param string $name The new name of this tag.
+     * 
+     * @return $this
+     * @throws \InvalidArgumentException When an invalid tag name is provided.
+     */
+    public function setName($name)
+    {
+        if (!preg_match('/^' . self::REGEX_TAGNAME . '$/u', $name)) {
+            throw new \InvalidArgumentException(
+                'Invalid tag name supplied: ' . $name
+            );
+        }
+
+        $this->tag = $name;
+
+        return $this;
+    }
+
+    /**
+     * Gets the content of this tag.
+     *
+     * @return string
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = $this->description;
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * Sets the content of this tag.
+     * 
+     * @param string $content The new content of this tag.
+     * 
+     * @return $this
+     */
+    public function setContent($content)
+    {
+        $this->setDescription($content);
+        $this->content = $content;
+
+        return $this;
+    }
+
+    /**
+     * Gets the description component of this tag.
+     *
+     * @return string
+     */
+    public function getDescription()
+    {
+        return $this->description;
+    }
+
+    /**
+     * Sets the description component of this tag.
+     * 
+     * @param string $description The new description component of this tag.
+     * 
+     * @return $this
+     */
+    public function setDescription($description)
+    {
+        $this->content = null;
+        $this->parsedDescription = null;
+        $this->description = trim($description);
+
+        return $this;
+    }
+
+    /**
+     * Gets the parsed text of this description.
+     * 
+     * @return array An array of strings and tag objects, in the order they
+     *     occur within the description.
+     */
+    public function getParsedDescription()
+    {
+        if (null === $this->parsedDescription) {
+            $description = new Description($this->description, $this->docblock);
+            $this->parsedDescription = $description->getParsedContents();
+        }
+        return $this->parsedDescription;
+    }
+
+    /**
+     * Gets the docblock this tag belongs to.
+     * 
+     * @return DocBlock The docblock this tag belongs to.
+     */
+    public function getDocBlock()
+    {
+        return $this->docblock;
+    }
+
+    /**
+     * Sets the docblock this tag belongs to.
+     * 
+     * @param DocBlock $docblock The new docblock this tag belongs to. Setting
+     *     NULL removes any association.
+     * 
+     * @return $this
+     */
+    public function setDocBlock(DocBlock $docblock = null)
+    {
+        $this->docblock = $docblock;
+
+        return $this;
+    }
+
+    /**
+     * Gets the location of the tag.
+     *
+     * @return Location The tag's location.
+     */
+    public function getLocation()
+    {
+        return $this->location;
+    }
+    
+    /**
+     * Sets the location of the tag.
+     * 
+     * @param Location $location The new location of the tag.
+     * 
+     * @return $this
+     */
+    public function setLocation(Location $location = null)
+    {
+        $this->location = $location;
+
+        return $this;
+    }
+
+    /**
+     * Builds a string representation of this object.
+     *
+     * @todo determine the exact format as used by PHP Reflection and implement it.
+     *
+     * @return void
+     * @codeCoverageIgnore Not yet implemented
+     */
+    public static function export()
+    {
+        throw new \Exception('Not yet implemented');
+    }
+
+    /**
+     * Returns the tag as a serialized string
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return "@{$this->getName()} {$this->getContent()}";
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/AuthorTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/AuthorTag.php
new file mode 100644
index 000000000000..bacf52ebe78c
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/AuthorTag.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for an @author tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class AuthorTag extends Tag
+{
+    /**
+     * PCRE regular expression matching any valid value for the name component.
+     */
+    const REGEX_AUTHOR_NAME = '[^\<]*';
+
+    /**
+     * PCRE regular expression matching any valid value for the email component.
+     */
+    const REGEX_AUTHOR_EMAIL = '[^\>]*';
+
+    /** @var string The name of the author */
+    protected $authorName = '';
+
+    /** @var string The email of the author */
+    protected $authorEmail = '';
+    
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = $this->authorName;
+            if ('' != $this->authorEmail) {
+                $this->content .= "<{$this->authorEmail}>";
+            }
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        parent::setContent($content);
+        if (preg_match(
+            '/^(' . self::REGEX_AUTHOR_NAME .
+            ')(\<(' . self::REGEX_AUTHOR_EMAIL .
+            ')\>)?$/u',
+            $this->description,
+            $matches
+        )) {
+            $this->authorName = trim($matches[1]);
+            if (isset($matches[3])) {
+                $this->authorEmail = trim($matches[3]);
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Gets the author's name.
+     * 
+     * @return string The author's name.
+     */
+    public function getAuthorName()
+    {
+        return $this->authorName;
+    }
+    
+    /**
+     * Sets the author's name.
+     * 
+     * @param string $authorName The new author name.
+     *     An invalid value will set an empty string.
+     * 
+     * @return $this
+     */
+    public function setAuthorName($authorName)
+    {
+        $this->content = null;
+        $this->authorName
+            = preg_match('/^' . self::REGEX_AUTHOR_NAME . '$/u', $authorName)
+            ? $authorName : '';
+
+        return $this;
+    }
+
+    /**
+     * Gets the author's email.
+     * 
+     * @return string The author's email.
+     */
+    public function getAuthorEmail()
+    {
+        return $this->authorEmail;
+    }
+    
+    /**
+     * Sets the author's email.
+     * 
+     * @param string $authorEmail The new author email.
+     *     An invalid value will set an empty string.
+     * 
+     * @return $this
+     */
+    public function setAuthorEmail($authorEmail)
+    {
+        $this->authorEmail
+            = preg_match('/^' . self::REGEX_AUTHOR_EMAIL . '$/u', $authorEmail)
+            ? $authorEmail : '';
+
+        $this->content = null;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/CoversTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/CoversTag.php
new file mode 100644
index 000000000000..bd31b56bfc8c
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/CoversTag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @covers tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class CoversTag extends SeeTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTag.php
new file mode 100644
index 000000000000..7226316b7d92
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTag.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag\VersionTag;
+
+/**
+ * Reflection class for a @deprecated tag in a Docblock.
+ *
+ * @author  Vasil Rangelov <boen.robot@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class DeprecatedTag extends VersionTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ExampleTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ExampleTag.php
new file mode 100644
index 000000000000..0e163ea01b99
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ExampleTag.php
@@ -0,0 +1,156 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @example tag in a Docblock.
+ *
+ * @author  Vasil Rangelov <boen.robot@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class ExampleTag extends SourceTag
+{
+    /** 
+     * @var string Path to a file to use as an example.
+     *     May also be an absolute URI.
+     */
+    protected $filePath = '';
+
+    /**
+     * @var bool Whether the file path component represents an URI.
+     *     This determines how the file portion appears at {@link getContent()}.
+     */
+    protected $isURI = false;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $filePath = '';
+            if ($this->isURI) {
+                if (false === strpos($this->filePath, ':')) {
+                    $filePath = str_replace(
+                        '%2F',
+                        '/',
+                        rawurlencode($this->filePath)
+                    );
+                } else {
+                    $filePath = $this->filePath;
+                }
+            } else {
+                $filePath = '"' . $this->filePath . '"';
+            }
+
+            $this->content = $filePath . ' ' . parent::getContent();
+        }
+
+        return $this->content;
+    }
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        Tag::setContent($content);
+        if (preg_match(
+            '/^
+                # File component
+                (?:
+                    # File path in quotes
+                    \"([^\"]+)\"
+                    |
+                    # File URI
+                    (\S+)
+                )
+                # Remaining content (parsed by SourceTag)
+                (?:\s+(.*))?
+            $/sux',
+            $this->description,
+            $matches
+        )) {
+            if ('' !== $matches[1]) {
+                $this->setFilePath($matches[1]);
+            } else {
+                $this->setFileURI($matches[2]);
+            }
+
+            if (isset($matches[3])) {
+                parent::setContent($matches[3]);
+            } else {
+                $this->setDescription('');
+            }
+            $this->content = $content;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Returns the file path.
+     *
+     * @return string Path to a file to use as an example.
+     *     May also be an absolute URI.
+     */
+    public function getFilePath()
+    {
+        return $this->filePath;
+    }
+    
+    /**
+     * Sets the file path.
+     * 
+     * @param string $filePath The new file path to use for the example.
+     * 
+     * @return $this
+     */
+    public function setFilePath($filePath)
+    {
+        $this->isURI = false;
+        $this->filePath = trim($filePath);
+
+        $this->content = null;
+        return $this;
+    }
+    
+    /**
+     * Sets the file path as an URI.
+     * 
+     * This function is equivalent to {@link setFilePath()}, except that it
+     * convers an URI to a file path before that.
+     * 
+     * There is no getFileURI(), as {@link getFilePath()} is compatible.
+     * 
+     * @param type $uri The new file URI to use as an example.
+     */
+    public function setFileURI($uri)
+    {
+        $this->isURI = true;
+        if (false === strpos($uri, ':')) {
+            //Relative URL
+            $this->filePath = rawurldecode(
+                str_replace(array('/', '\\'), '%2F', $uri)
+            );
+        } else {
+            //Absolute URL or URI.
+            $this->filePath = $uri;
+        }
+
+        $this->content = null;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/LinkTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/LinkTag.php
new file mode 100644
index 000000000000..f79f25dd8b2a
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/LinkTag.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Ben Selby <benmatselby@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @link tag in a Docblock.
+ *
+ * @author  Ben Selby <benmatselby@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class LinkTag extends Tag
+{
+    /** @var string */
+    protected $link = '';
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = "{$this->link} {$this->description}";
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        parent::setContent($content);
+        $parts = preg_split('/\s+/Su', $this->description, 2);
+
+        $this->link = $parts[0];
+
+        $this->setDescription(isset($parts[1]) ? $parts[1] : $parts[0]);
+
+        $this->content = $content;
+        return $this;
+    }
+
+    /**
+    * Gets the link
+    *
+    * @return string
+    */
+    public function getLink()
+    {
+        return $this->link;
+    }
+
+    /**
+    * Sets the link
+    *
+    * @param string $link The link
+    *
+    * @return $this
+    */
+    public function setLink($link)
+    {
+        $this->link = $link;
+
+        $this->content = null;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/MethodTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/MethodTag.php
new file mode 100644
index 000000000000..7a5ce7908214
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/MethodTag.php
@@ -0,0 +1,209 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @method in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class MethodTag extends ReturnTag
+{
+
+    /** @var string */
+    protected $method_name = '';
+
+    /** @var string */
+    protected $arguments = '';
+    
+    /** @var bool */
+    protected $isStatic = false;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = '';
+            if ($this->isStatic) {
+                $this->content .= 'static ';
+            }
+            $this->content .= $this->type .
+                " {$this->method_name}({$this->arguments}) " .
+                $this->description;
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        Tag::setContent($content);
+        // 1. none or more whitespace
+        // 2. optionally the keyword "static" followed by whitespace
+        // 3. optionally a word with underscores followed by whitespace : as
+        //    type for the return value
+        // 4. then optionally a word with underscores followed by () and
+        //    whitespace : as method name as used by phpDocumentor
+        // 5. then a word with underscores, followed by ( and any character
+        //    until a ) and whitespace : as method name with signature
+        // 6. any remaining text : as description
+        if (preg_match(
+            '/^
+                # Static keyword
+                # Declates a static method ONLY if type is also present
+                (?:
+                    (static)
+                    \s+
+                )?
+                # Return type
+                (?:
+                    ([\w\|_\\\\]+)
+                    \s+
+                )?
+                # Legacy method name (not captured)
+                (?:
+                    [\w_]+\(\)\s+
+                )?
+                # Method name
+                ([\w\|_\\\\]+)
+                # Arguments
+                \(([^\)]*)\)
+                \s*
+                # Description
+                (.*)
+            $/sux',
+            $this->description,
+            $matches
+        )) {
+            list(
+                ,
+                $static,
+                $this->type,
+                $this->method_name,
+                $this->arguments,
+                $this->description
+            ) = $matches;
+            if ($static) {
+                if (!$this->type) {
+                    $this->type = 'static';
+                } else {
+                    $this->isStatic = true;
+                }
+            } else {
+                if (!$this->type) {
+                    $this->type = 'void';
+                }
+            }
+            $this->parsedDescription = null;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Sets the name of this method.
+     *
+     * @param string $method_name The name of the method.
+     *
+     * @return $this
+     */
+    public function setMethodName($method_name)
+    {
+        $this->method_name = $method_name;
+
+        $this->content = null;
+        return $this;
+    }
+
+    /**
+     * Retrieves the method name.
+     *
+     * @return string
+     */
+    public function getMethodName()
+    {
+        return $this->method_name;
+    }
+
+    /**
+     * Sets the arguments for this method.
+     *
+     * @param string $arguments A comma-separated arguments line.
+     *
+     * @return void
+     */
+    public function setArguments($arguments)
+    {
+        $this->arguments = $arguments;
+
+        $this->content = null;
+        return $this;
+    }
+
+    /**
+     * Returns an array containing each argument as array of type and name.
+     *
+     * Please note that the argument sub-array may only contain 1 element if no
+     * type was specified.
+     *
+     * @return string[]
+     */
+    public function getArguments()
+    {
+        if (empty($this->arguments)) {
+            return array();
+        }
+
+        $arguments = explode(',', $this->arguments);
+        foreach ($arguments as $key => $value) {
+            $arguments[$key] = explode(' ', trim($value));
+        }
+
+        return $arguments;
+    }
+    
+    /**
+     * Checks whether the method tag describes a static method or not.
+     * 
+     * @return bool TRUE if the method declaration is for a static method, FALSE
+     *     otherwise.
+     */
+    public function isStatic()
+    {
+        return $this->isStatic;
+    }
+    
+    /**
+     * Sets a new value for whether the method is static or not.
+     * 
+     * @param bool $isStatic The new value to set.
+     * 
+     * @return $this
+     */
+    public function setIsStatic($isStatic)
+    {
+        $this->isStatic = $isStatic;
+
+        $this->content = null;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ParamTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ParamTag.php
new file mode 100644
index 000000000000..9bc0270dd9a7
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ParamTag.php
@@ -0,0 +1,119 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @param tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class ParamTag extends ReturnTag
+{
+    /** @var string */
+    protected $variableName = '';
+
+    /** @var bool determines whether this is a variadic argument */
+    protected $isVariadic = false;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content
+                = "{$this->type} {$this->variableName} {$this->description}";
+        }
+        return $this->content;
+    }
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        Tag::setContent($content);
+        $parts = preg_split(
+            '/(\s+)/Su',
+            $this->description,
+            3,
+            PREG_SPLIT_DELIM_CAPTURE
+        );
+
+        // if the first item that is encountered is not a variable; it is a type
+        if (isset($parts[0])
+            && (strlen($parts[0]) > 0)
+            && ($parts[0][0] !== '$')
+        ) {
+            $this->type = array_shift($parts);
+            array_shift($parts);
+        }
+
+        // if the next item starts with a $ or ...$ it must be the variable name
+        if (isset($parts[0])
+            && (strlen($parts[0]) > 0)
+            && ($parts[0][0] == '$' || substr($parts[0], 0, 4) === '...$')
+        ) {
+            $this->variableName = array_shift($parts);
+            array_shift($parts);
+
+            if (substr($this->variableName, 0, 3) === '...') {
+                $this->isVariadic = true;
+                $this->variableName = substr($this->variableName, 3);
+            }
+        }
+
+        $this->setDescription(implode('', $parts));
+
+        $this->content = $content;
+        return $this;
+    }
+
+    /**
+     * Returns the variable's name.
+     *
+     * @return string
+     */
+    public function getVariableName()
+    {
+        return $this->variableName;
+    }
+
+    /**
+     * Sets the variable's name.
+     *
+     * @param string $name The new name for this variable.
+     *
+     * @return $this
+     */
+    public function setVariableName($name)
+    {
+        $this->variableName = $name;
+
+        $this->content = null;
+        return $this;
+    }
+
+    /**
+     * Returns whether this tag is variadic.
+     *
+     * @return boolean
+     */
+    public function isVariadic()
+    {
+        return $this->isVariadic;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyReadTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyReadTag.php
new file mode 100644
index 000000000000..33406026a115
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyReadTag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @property-read tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class PropertyReadTag extends PropertyTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyTag.php
new file mode 100644
index 000000000000..288ecff872ca
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyTag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @property tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class PropertyTag extends ParamTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyWriteTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyWriteTag.php
new file mode 100644
index 000000000000..ec4e866d4385
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyWriteTag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @property-write tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class PropertyWriteTag extends PropertyTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php
new file mode 100644
index 000000000000..9293db9246b6
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+use phpDocumentor\Reflection\DocBlock\Type\Collection;
+
+/**
+ * Reflection class for a @return tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class ReturnTag extends Tag
+{
+    /** @var string The raw type component. */
+    protected $type = '';
+    
+    /** @var Collection The parsed type component. */
+    protected $types = null;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = "{$this->type} {$this->description}";
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        parent::setContent($content);
+
+        $parts = preg_split('/\s+/Su', $this->description, 2);
+
+        // any output is considered a type
+        $this->type = $parts[0];
+        $this->types = null;
+
+        $this->setDescription(isset($parts[1]) ? $parts[1] : '');
+
+        $this->content = $content;
+        return $this;
+    }
+
+    /**
+     * Returns the unique types of the variable.
+     *
+     * @return string[]
+     */
+    public function getTypes()
+    {
+        return $this->getTypesCollection()->getArrayCopy();
+    }
+
+    /**
+     * Returns the type section of the variable.
+     *
+     * @return string
+     */
+    public function getType()
+    {
+        return (string) $this->getTypesCollection();
+    }
+
+    /**
+     * Returns the type collection.
+     * 
+     * @return void
+     */
+    protected function getTypesCollection()
+    {
+        if (null === $this->types) {
+            $this->types = new Collection(
+                array($this->type),
+                $this->docblock ? $this->docblock->getContext() : null
+            );
+        }
+        return $this->types;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SeeTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SeeTag.php
new file mode 100644
index 000000000000..4f5f22ce17d9
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SeeTag.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @see tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class SeeTag extends Tag
+{
+    /** @var string */
+    protected $refers = null;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = "{$this->refers} {$this->description}";
+        }
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        parent::setContent($content);
+        $parts = preg_split('/\s+/Su', $this->description, 2);
+
+        // any output is considered a type
+        $this->refers = $parts[0];
+
+        $this->setDescription(isset($parts[1]) ? $parts[1] : '');
+
+        $this->content = $content;
+        return $this;
+    }
+
+    /**
+     * Gets the structural element this tag refers to.
+     *
+     * @return string
+     */
+    public function getReference()
+    {
+        return $this->refers;
+    }
+
+    /**
+     * Sets the structural element this tag refers to.
+     * 
+     * @param string $refers The new type this tag refers to.
+     * 
+     * @return $this
+     */
+    public function setReference($refers)
+    {
+        $this->refers = $refers;
+
+        $this->content = null;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SinceTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SinceTag.php
new file mode 100644
index 000000000000..ba009c447333
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SinceTag.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag\VersionTag;
+
+/**
+ * Reflection class for a @since tag in a Docblock.
+ *
+ * @author  Vasil Rangelov <boen.robot@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class SinceTag extends VersionTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SourceTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SourceTag.php
new file mode 100644
index 000000000000..3400220ea7c7
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SourceTag.php
@@ -0,0 +1,137 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @source tag in a Docblock.
+ *
+ * @author  Vasil Rangelov <boen.robot@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class SourceTag extends Tag
+{
+    /**
+     * @var int The starting line, relative to the structural element's
+     *     location.
+     */
+    protected $startingLine = 1;
+
+    /** 
+     * @var int|null The number of lines, relative to the starting line. NULL
+     *     means "to the end".
+     */
+    protected $lineCount = null;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content
+                = "{$this->startingLine} {$this->lineCount} {$this->description}";
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        parent::setContent($content);
+        if (preg_match(
+            '/^
+                # Starting line
+                ([1-9]\d*)
+                \s*
+                # Number of lines
+                (?:
+                    ((?1))
+                    \s+
+                )?
+                # Description
+                (.*)
+            $/sux',
+            $this->description,
+            $matches
+        )) {
+            $this->startingLine = (int)$matches[1];
+            if (isset($matches[2]) && '' !== $matches[2]) {
+                $this->lineCount = (int)$matches[2];
+            }
+            $this->setDescription($matches[3]);
+            $this->content = $content;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Gets the starting line.
+     *
+     * @return int The starting line, relative to the structural element's
+     *     location.
+     */
+    public function getStartingLine()
+    {
+        return $this->startingLine;
+    }
+
+    /**
+     * Sets the starting line.
+     * 
+     * @param int $startingLine The new starting line, relative to the
+     *     structural element's location.
+     * 
+     * @return $this
+     */
+    public function setStartingLine($startingLine)
+    {
+        $this->startingLine = $startingLine;
+
+        $this->content = null;
+        return $this;
+    }
+
+    /**
+     * Returns the number of lines.
+     *
+     * @return int|null The number of lines, relative to the starting line. NULL
+     *     means "to the end".
+     */
+    public function getLineCount()
+    {
+        return $this->lineCount;
+    }
+
+    /**
+     * Sets the number of lines.
+     * 
+     * @param int|null $lineCount The new number of lines, relative to the
+     *     starting line. NULL means "to the end".
+     * 
+     * @return $this
+     */
+    public function setLineCount($lineCount)
+    {
+        $this->lineCount = $lineCount;
+
+        $this->content = null;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTag.php
new file mode 100644
index 000000000000..58ee44a42d29
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @throws tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class ThrowsTag extends ReturnTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/UsesTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/UsesTag.php
new file mode 100644
index 000000000000..da0d66381ece
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/UsesTag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @uses tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class UsesTag extends SeeTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VarTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VarTag.php
new file mode 100644
index 000000000000..236b2c8b01ea
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VarTag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @var tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class VarTag extends ParamTag
+{
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VersionTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VersionTag.php
new file mode 100644
index 000000000000..260f6984f4d7
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VersionTag.php
@@ -0,0 +1,108 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Reflection class for a @version tag in a Docblock.
+ *
+ * @author  Vasil Rangelov <boen.robot@gmail.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class VersionTag extends Tag
+{
+    /**
+     * PCRE regular expression matching a version vector.
+     * Assumes the "x" modifier.
+     */
+    const REGEX_VECTOR = '(?:
+        # Normal release vectors.
+        \d\S*
+        |
+        # VCS version vectors. Per PHPCS, they are expected to
+        # follow the form of the VCS name, followed by ":", followed
+        # by the version vector itself.
+        # By convention, popular VCSes like CVS, SVN and GIT use "$"
+        # around the actual version vector.
+        [^\s\:]+\:\s*\$[^\$]+\$
+    )';
+
+    /** @var string The version vector. */
+    protected $version = '';
+    
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = "{$this->version} {$this->description}";
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        parent::setContent($content);
+
+        if (preg_match(
+            '/^
+                # The version vector
+                (' . self::REGEX_VECTOR . ')
+                \s*
+                # The description
+                (.+)?
+            $/sux',
+            $this->description,
+            $matches
+        )) {
+            $this->version = $matches[1];
+            $this->setDescription(isset($matches[2]) ? $matches[2] : '');
+            $this->content = $content;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Gets the version section of the tag.
+     *
+     * @return string The version section of the tag.
+     */
+    public function getVersion()
+    {
+        return $this->version;
+    }
+    
+    /**
+     * Sets the version section of the tag.
+     * 
+     * @param string $version The new version section of the tag.
+     *     An invalid value will set an empty string.
+     * 
+     * @return $this
+     */
+    public function setVersion($version)
+    {
+        $this->version
+            = preg_match('/^' . self::REGEX_VECTOR . '$/ux', $version)
+            ? $version
+            : '';
+
+        $this->content = null;
+        return $this;
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Type/Collection.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Type/Collection.php
new file mode 100644
index 000000000000..90ead3ff4e86
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Type/Collection.php
@@ -0,0 +1,221 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Type;
+
+use phpDocumentor\Reflection\DocBlock\Context;
+
+/**
+ * Collection
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class Collection extends \ArrayObject
+{
+    /** @var string Definition of the OR operator for types */
+    const OPERATOR_OR = '|';
+
+    /** @var string Definition of the ARRAY operator for types */
+    const OPERATOR_ARRAY = '[]';
+
+    /** @var string Definition of the NAMESPACE operator in PHP */
+    const OPERATOR_NAMESPACE = '\\';
+
+    /** @var string[] List of recognized keywords */
+    protected static $keywords = array(
+        'string', 'int', 'integer', 'bool', 'boolean', 'float', 'double',
+        'object', 'mixed', 'array', 'resource', 'void', 'null', 'scalar',
+        'callback', 'callable', 'false', 'true', 'self', '$this', 'static'
+    );
+
+    /**
+     * Current invoking location.
+     *
+     * This is used to prepend to type with a relative location.
+     * May also be 'default' or 'global', in which case they are ignored.
+     *
+     * @var Context
+     */
+    protected $context = null;
+
+    /**
+     * Registers the namespace and aliases; uses that to add and expand the
+     * given types.
+     *
+     * @param string[] $types    Array containing a list of types to add to this
+     *     container.
+     * @param Context  $location The current invoking location.
+     */
+    public function __construct(
+        array $types = array(),
+        Context $context = null
+    ) {
+        $this->context = null === $context ? new Context() : $context;
+
+        foreach ($types as $type) {
+            $this->add($type);
+        }
+    }
+
+    /**
+     * Returns the current invoking location.
+     *
+     * @return Context
+     */
+    public function getContext()
+    {
+        return $this->context;
+    }
+
+    /**
+     * Adds a new type to the collection and expands it if it contains a
+     * relative namespace.
+     *
+     * If a class in the type contains a relative namespace than this collection
+     * will try to expand that into a FQCN.
+     *
+     * @param string $type A 'Type' as defined in the phpDocumentor
+     *     documentation.
+     *
+     * @throws \InvalidArgumentException if a non-string argument is passed.
+     *
+     * @see http://phpdoc.org/docs/latest/for-users/types.html for the
+     *     definition of a type.
+     *
+     * @return void
+     */
+    public function add($type)
+    {
+        if (!is_string($type)) {
+            throw new \InvalidArgumentException(
+                'A type should be represented by a string, received: '
+                .var_export($type, true)
+            );
+        }
+
+        // separate the type by the OR operator
+        $type_parts = explode(self::OPERATOR_OR, $type);
+        foreach ($type_parts as $part) {
+            $expanded_type = $this->expand($part);
+            if ($expanded_type) {
+                $this[] = $expanded_type;
+            }
+        }
+    }
+    
+    /**
+     * Returns a string representation of the collection.
+     * 
+     * @return string The resolved types across the collection, separated with
+     *     {@link self::OPERATOR_OR}.
+     */
+    public function __toString()
+    {
+        return implode(self::OPERATOR_OR, $this->getArrayCopy());
+    }
+
+    /**
+     * Analyzes the given type and returns the FQCN variant.
+     *
+     * When a type is provided this method checks whether it is not a keyword or
+     * Fully Qualified Class Name. If so it will use the given namespace and
+     * aliases to expand the type to a FQCN representation.
+     *
+     * This method only works as expected if the namespace and aliases are set;
+     * no dynamic reflection is being performed here.
+     *
+     * @param string $type The relative or absolute type.
+     *
+     * @uses getNamespace to determine with what to prefix the type name.
+     * @uses getNamespaceAliases to check whether the first part of the relative
+     *     type name should not be replaced with another namespace.
+     *
+     * @return string
+     */
+    protected function expand($type)
+    {
+        $type = trim($type);
+        if (!$type) {
+            return '';
+        }
+
+        if ($this->isTypeAnArray($type)) {
+            return $this->expand(substr($type, 0, -2)) . self::OPERATOR_ARRAY;
+        }
+
+        if ($this->isRelativeType($type) && !$this->isTypeAKeyword($type)) {
+            $type_parts = explode(self::OPERATOR_NAMESPACE, $type, 2);
+
+            $namespace_aliases = $this->context->getNamespaceAliases();
+            // if the first segment is not an alias; prepend namespace name and
+            // return
+            if (!isset($namespace_aliases[$type_parts[0]])) {
+                $namespace = $this->context->getNamespace();
+                if ('' !== $namespace) {
+                    $namespace .= self::OPERATOR_NAMESPACE;
+                }
+                return self::OPERATOR_NAMESPACE . $namespace . $type;
+            }
+
+            $type_parts[0] = $namespace_aliases[$type_parts[0]];
+            $type = implode(self::OPERATOR_NAMESPACE, $type_parts);
+        }
+
+        return $type;
+    }
+
+    /**
+     * Detects whether the given type represents an array.
+     *
+     * @param string $type A relative or absolute type as defined in the
+     *     phpDocumentor documentation.
+     *
+     * @return bool
+     */
+    protected function isTypeAnArray($type)
+    {
+        return substr($type, -2) === self::OPERATOR_ARRAY;
+    }
+
+    /**
+     * Detects whether the given type represents a PHPDoc keyword.
+     *
+     * @param string $type A relative or absolute type as defined in the
+     *     phpDocumentor documentation.
+     *
+     * @return bool
+     */
+    protected function isTypeAKeyword($type)
+    {
+        return in_array(strtolower($type), static::$keywords, true);
+    }
+
+    /**
+     * Detects whether the given type represents a relative or absolute path.
+     *
+     * This method will detect keywords as being absolute; even though they are
+     * not preceeded by a namespace separator.
+     *
+     * @param string $type A relative or absolute type as defined in the
+     *     phpDocumentor documentation.
+     *
+     * @return bool
+     */
+    protected function isRelativeType($type)
+    {
+        return ($type[0] !== self::OPERATOR_NAMESPACE)
+            || $this->isTypeAKeyword($type);
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/DescriptionTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/DescriptionTest.php
new file mode 100644
index 000000000000..a6ca7b37e409
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/DescriptionTest.php
@@ -0,0 +1,245 @@
+<?php
+/**
+ * phpDocumentor Description Test
+ *
+ * PHP Version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Description
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class DescriptionTest extends \PHPUnit_Framework_TestCase
+{
+    public function testConstruct()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(1, $parsedContents);
+        $this->assertSame($fixture, $parsedContents[0]);
+    }
+
+    public function testInlineTagParsing()
+    {
+        $fixture = <<<LONGDESC
+This is text for a {@link http://phpdoc.org/ description} that uses inline
+tags.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(3, $parsedContents);
+        $this->assertSame('This is text for a ', $parsedContents[0]);
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag\LinkTag',
+            $parsedContents[1]
+        );
+        $this->assertSame(
+            ' that uses inline
+tags.',
+            $parsedContents[2]
+        );
+    }
+
+    public function testInlineTagAtStartParsing()
+    {
+        $fixture = <<<LONGDESC
+{@link http://phpdoc.org/ This} is text for a description that uses inline
+tags.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(3, $parsedContents);
+
+        $this->assertSame('', $parsedContents[0]);
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag\LinkTag',
+            $parsedContents[1]
+        );
+        $this->assertSame(
+            ' is text for a description that uses inline
+tags.',
+            $parsedContents[2]
+        );
+    }
+
+    public function testNestedInlineTagParsing()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description with {@internal inline tag with
+{@link http://phpdoc.org another inline tag} in it}.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(3, $parsedContents);
+
+        $this->assertSame(
+            'This is text for a description with ',
+            $parsedContents[0]
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $parsedContents[1]
+        );
+        $this->assertSame('.', $parsedContents[2]);
+
+        $parsedDescription = $parsedContents[1]->getParsedDescription();
+        $this->assertCount(3, $parsedDescription);
+        $this->assertSame("inline tag with\n", $parsedDescription[0]);
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag\LinkTag',
+            $parsedDescription[1]
+        );
+        $this->assertSame(' in it', $parsedDescription[2]);
+    }
+
+    public function testLiteralOpeningDelimiter()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description containing { that is literal.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(1, $parsedContents);
+        $this->assertSame($fixture, $parsedContents[0]);
+    }
+
+    public function testNestedLiteralOpeningDelimiter()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description containing {@internal inline tag that has { that
+is literal}.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(3, $parsedContents);
+        $this->assertSame(
+            'This is text for a description containing ',
+            $parsedContents[0]
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $parsedContents[1]
+        );
+        $this->assertSame('.', $parsedContents[2]);
+
+        $this->assertSame(
+            array('inline tag that has { that
+is literal'),
+            $parsedContents[1]->getParsedDescription()
+        );
+    }
+
+    public function testLiteralClosingDelimiter()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description with {} that is not a tag.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(1, $parsedContents);
+        $this->assertSame(
+            'This is text for a description with } that is not a tag.',
+            $parsedContents[0]
+        );
+    }
+
+    public function testNestedLiteralClosingDelimiter()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description with {@internal inline tag with {} that is not an
+inline tag}.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(3, $parsedContents);
+        $this->assertSame(
+            'This is text for a description with ',
+            $parsedContents[0]
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $parsedContents[1]
+        );
+        $this->assertSame('.', $parsedContents[2]);
+
+        $this->assertSame(
+            array('inline tag with } that is not an
+inline tag'),
+            $parsedContents[1]->getParsedDescription()
+        );
+    }
+
+    public function testInlineTagEscapingSequence()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description with literal {{@}link}.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(1, $parsedContents);
+        $this->assertSame(
+            'This is text for a description with literal {@link}.',
+            $parsedContents[0]
+        );
+    }
+
+    public function testNestedInlineTagEscapingSequence()
+    {
+        $fixture = <<<LONGDESC
+This is text for a description with an {@internal inline tag with literal
+{{@}link{} in it}.
+LONGDESC;
+        $object = new Description($fixture);
+        $this->assertSame($fixture, $object->getContents());
+
+        $parsedContents = $object->getParsedContents();
+        $this->assertCount(3, $parsedContents);
+        $this->assertSame(
+            'This is text for a description with an ',
+            $parsedContents[0]
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $parsedContents[1]
+        );
+        $this->assertSame('.', $parsedContents[2]);
+
+        $this->assertSame(
+            array('inline tag with literal
+{@link} in it'),
+            $parsedContents[1]->getParsedDescription()
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/CoversTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/CoversTagTest.php
new file mode 100644
index 000000000000..ff257aa197ce
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/CoversTagTest.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * phpDocumentor Covers Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\CoversTag
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class CoversTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\CoversTag can create
+     * a link for the covers doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exReference
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\CoversTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exReference
+    ) {
+        $tag = new CoversTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exReference, $tag->getReference());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exReference
+        return array(
+            array(
+                'covers',
+                'Foo::bar()',
+                'Foo::bar()',
+                '',
+                'Foo::bar()'
+            ),
+            array(
+                'covers',
+                'Foo::bar() Testing',
+                'Foo::bar() Testing',
+                'Testing',
+                'Foo::bar()',
+            ),
+            array(
+                'covers',
+                'Foo::bar() Testing comments',
+                'Foo::bar() Testing comments',
+                'Testing comments',
+                'Foo::bar()',
+            ),
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTagTest.php
new file mode 100644
index 000000000000..7a75e79ce55f
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTagTest.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * phpDocumentor Deprecated Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\DeprecatedTag
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class DeprecatedTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
+     * a link for the @deprecated doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exDescription
+     * @param string $exVersion
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\DeprecatedTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exVersion
+    ) {
+        $tag = new DeprecatedTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exVersion, $tag->getVersion());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exVersion
+        return array(
+            array(
+                'deprecated',
+                '1.0 First release.',
+                '1.0 First release.',
+                'First release.',
+                '1.0'
+            ),
+            array(
+                'deprecated',
+                "1.0\nFirst release.",
+                "1.0\nFirst release.",
+                'First release.',
+                '1.0'
+            ),
+            array(
+                'deprecated',
+                "1.0\nFirst\nrelease.",
+                "1.0\nFirst\nrelease.",
+                "First\nrelease.",
+                '1.0'
+            ),
+            array(
+                'deprecated',
+                'Unfinished release',
+                'Unfinished release',
+                'Unfinished release',
+                ''
+            ),
+            array(
+                'deprecated',
+                '1.0',
+                '1.0',
+                '',
+                '1.0'
+            ),
+            array(
+                'deprecated',
+                'GIT: $Id$',
+                'GIT: $Id$',
+                '',
+                'GIT: $Id$'
+            ),
+            array(
+                'deprecated',
+                'GIT: $Id$ Dev build',
+                'GIT: $Id$ Dev build',
+                'Dev build',
+                'GIT: $Id$'
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ExampleTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ExampleTagTest.php
new file mode 100644
index 000000000000..519a61b3a9f1
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ExampleTagTest.php
@@ -0,0 +1,203 @@
+<?php
+/**
+ * phpDocumentor Example Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\ExampleTag
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class ExampleTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\SourceTag can
+     * understand the @source DocBlock.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exStartingLine
+     * @param string $exLineCount
+     * @param string $exFilepath
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ExampleTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exStartingLine,
+        $exLineCount,
+        $exFilePath
+    ) {
+        $tag = new ExampleTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exStartingLine, $tag->getStartingLine());
+        $this->assertEquals($exLineCount, $tag->getLineCount());
+        $this->assertEquals($exFilePath, $tag->getFilePath());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type,
+        // $content,
+        // $exContent,
+        // $exDescription,
+        // $exStartingLine,
+        // $exLineCount,
+        // $exFilePath
+        return array(
+            array(
+                'example',
+                'file.php',
+                'file.php',
+                '',
+                1,
+                null,
+                'file.php'
+            ),
+            array(
+                'example',
+                'Testing comments',
+                'Testing comments',
+                'comments',
+                1,
+                null,
+                'Testing'
+            ),
+            array(
+                'example',
+                'file.php 2 Testing',
+                'file.php 2 Testing',
+                'Testing',
+                2,
+                null,
+                'file.php'
+            ),
+            array(
+                'example',
+                'file.php 2 3 Testing comments',
+                'file.php 2 3 Testing comments',
+                'Testing comments',
+                2,
+                3,
+                'file.php'
+            ),
+            array(
+                'example',
+                'file.php 2 -1 Testing comments',
+                'file.php 2 -1 Testing comments',
+                '-1 Testing comments',
+                2,
+                null,
+                'file.php'
+            ),
+            array(
+                'example',
+                'file.php -1 1 Testing comments',
+                'file.php -1 1 Testing comments',
+                '-1 1 Testing comments',
+                1,
+                null,
+                'file.php'
+            ),
+            array(
+                'example',
+                '"file with spaces.php" Testing comments',
+                '"file with spaces.php" Testing comments',
+                'Testing comments',
+                1,
+                null,
+                'file with spaces.php'
+            ),
+            array(
+                'example',
+                '"file with spaces.php" 2 Testing comments',
+                '"file with spaces.php" 2 Testing comments',
+                'Testing comments',
+                2,
+                null,
+                'file with spaces.php'
+            ),
+            array(
+                'example',
+                '"file with spaces.php" 2 3 Testing comments',
+                '"file with spaces.php" 2 3 Testing comments',
+                'Testing comments',
+                2,
+                3,
+                'file with spaces.php'
+            ),
+            array(
+                'example',
+                '"file with spaces.php" 2 -3 Testing comments',
+                '"file with spaces.php" 2 -3 Testing comments',
+                '-3 Testing comments',
+                2,
+                null,
+                'file with spaces.php'
+            ),
+            array(
+                'example',
+                '"file with spaces.php" -2 3 Testing comments',
+                '"file with spaces.php" -2 3 Testing comments',
+                '-2 3 Testing comments',
+                1,
+                null,
+                'file with spaces.php'
+            ),
+            array(
+                'example',
+                'file%20with%20spaces.php Testing comments',
+                'file%20with%20spaces.php Testing comments',
+                'Testing comments',
+                1,
+                null,
+                'file with spaces.php'
+            ),
+            array(
+                'example',
+                'folder/file%20with%20spaces.php Testing comments',
+                'folder/file%20with%20spaces.php Testing comments',
+                'Testing comments',
+                1,
+                null,
+                'folder/file with spaces.php'
+            ),
+            array(
+                'example',
+                'http://example.com/file%20with%20spaces.php Testing comments',
+                'http://example.com/file%20with%20spaces.php Testing comments',
+                'Testing comments',
+                1,
+                null,
+                'http://example.com/file%20with%20spaces.php'
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/LinkTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/LinkTagTest.php
new file mode 100644
index 000000000000..0c64ed086eec
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/LinkTagTest.php
@@ -0,0 +1,87 @@
+<?php
+/**
+ * phpDocumentor Link Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Ben Selby <benmatselby@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\LinkTag
+ *
+ * @author    Ben Selby <benmatselby@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class LinkTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
+     * a link for the @link doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exDescription
+     * @param string $exLink
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\LinkTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exLink
+    ) {
+        $tag = new LinkTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exLink, $tag->getLink());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exLink
+        return array(
+            array(
+                'link',
+                'http://www.phpdoc.org/',
+                'http://www.phpdoc.org/',
+                'http://www.phpdoc.org/',
+                'http://www.phpdoc.org/'
+            ),
+            array(
+                'link',
+                'http://www.phpdoc.org/ Testing',
+                'http://www.phpdoc.org/ Testing',
+                'Testing',
+                'http://www.phpdoc.org/'
+            ),
+            array(
+                'link',
+                'http://www.phpdoc.org/ Testing comments',
+                'http://www.phpdoc.org/ Testing comments',
+                'Testing comments',
+                'http://www.phpdoc.org/'
+            ),
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/MethodTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/MethodTagTest.php
new file mode 100644
index 000000000000..efc3a15b5386
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/MethodTagTest.php
@@ -0,0 +1,146 @@
+<?php
+/**
+ * phpDocumentor Method Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\MethodTag
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class MethodTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @param string $signature       The signature to test.
+     * @param bool   $valid           Whether the given signature is expected to
+     *     be valid.
+     * @param string $expected_name   The method name that is expected from this
+     *     signature.
+     * @param string $expected_return The return type that is expected from this
+     *     signature.
+     * @param bool   $paramCount      Number of parameters in the signature.
+     * @param string $description     The short description mentioned in the
+     *     signature.
+     * 
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\MethodTag
+     * @dataProvider getTestSignatures
+     *
+     * @return void
+     */
+    public function testConstruct(
+        $signature,
+        $valid,
+        $expected_name,
+        $expected_return,
+        $expected_isStatic,
+        $paramCount,
+        $description
+    ) {
+        ob_start();
+        $tag = new MethodTag('method', $signature);
+        $stdout = ob_get_clean();
+
+        $this->assertSame(
+            $valid,
+            empty($stdout),
+            'No error should have been output if the signature is valid'
+        );
+
+        if (!$valid) {
+            return;
+        }
+
+        $this->assertEquals($expected_name, $tag->getMethodName());
+        $this->assertEquals($expected_return, $tag->getType());
+        $this->assertEquals($description, $tag->getDescription());
+        $this->assertEquals($expected_isStatic, $tag->isStatic());
+        $this->assertCount($paramCount, $tag->getArguments());
+    }
+
+    public function getTestSignatures()
+    {
+        return array(
+            // TODO: Verify this case
+//            array(
+//                'foo',
+//                false, 'foo', '', false, 0, ''
+//            ),
+            array(
+                'foo()',
+                true, 'foo', 'void', false, 0, ''
+            ),
+            array(
+                'foo() description',
+                true, 'foo', 'void', false, 0, 'description'
+            ),
+            array(
+                'int foo()',
+                true, 'foo', 'int', false, 0, ''
+            ),
+            array(
+                'int foo() description',
+                true, 'foo', 'int', false, 0, 'description'
+            ),
+            array(
+                'int foo($a, $b)',
+                true, 'foo', 'int', false, 2, ''
+            ),
+            array(
+                'int foo() foo(int $a, int $b)',
+                true, 'foo', 'int', false, 2, ''
+            ),
+            array(
+                'int foo(int $a, int $b)',
+                true, 'foo', 'int', false, 2, ''
+            ),
+            array(
+                'null|int foo(int $a, int $b)',
+                true, 'foo', 'null|int', false, 2, ''
+            ),
+            array(
+                'int foo(null|int $a, int $b)',
+                true, 'foo', 'int', false, 2, ''
+            ),
+            array(
+                '\Exception foo() foo(Exception $a, Exception $b)',
+                true, 'foo', '\Exception', false, 2, ''
+            ),
+            array(
+                'int foo() foo(Exception $a, Exception $b) description',
+                true, 'foo', 'int', false, 2, 'description'
+            ),
+            array(
+                'int foo() foo(\Exception $a, \Exception $b) description',
+                true, 'foo', 'int', false, 2, 'description'
+            ),
+            array(
+                'void()',
+                true, 'void', 'void', false, 0, ''
+            ),
+            array(
+                'static foo()',
+                true, 'foo', 'static', false, 0, ''
+            ),
+            array(
+                'static void foo()',
+                true, 'foo', 'void', true, 0, ''
+            ),
+            array(
+                'static static foo()',
+                true, 'foo', 'static', true, 0, ''
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ParamTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ParamTagTest.php
new file mode 100644
index 000000000000..0e05382fabe9
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ParamTagTest.php
@@ -0,0 +1,118 @@
+<?php
+/**
+ * phpDocumentor Param tag test.
+ * 
+ * PHP version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\ParamTag
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class ParamTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\ParamTag can
+     * understand the @param DocBlock.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $extractedType
+     * @param string $extractedTypes
+     * @param string $extractedVarName
+     * @param string $extractedDescription
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ParamTag
+     * @dataProvider provideDataForConstructor
+     *
+     * @return void
+     */
+    public function testConstructorParsesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $extractedType,
+        $extractedTypes,
+        $extractedVarName,
+        $extractedDescription
+    ) {
+        $tag = new ParamTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($extractedType, $tag->getType());
+        $this->assertEquals($extractedTypes, $tag->getTypes());
+        $this->assertEquals($extractedVarName, $tag->getVariableName());
+        $this->assertEquals($extractedDescription, $tag->getDescription());
+    }
+
+    /**
+     * Data provider for testConstructorParsesInputsIntoCorrectFields()
+     *
+     * @return array
+     */
+    public function provideDataForConstructor()
+    {
+        return array(
+            array('param', 'int', 'int', array('int'), '', ''),
+            array('param', '$bob', '', array(), '$bob', ''),
+            array(
+                'param',
+                'int Number of bobs',
+                'int',
+                array('int'),
+                '',
+                'Number of bobs'
+            ),
+            array(
+                'param',
+                'int $bob',
+                'int',
+                array('int'),
+                '$bob',
+                ''
+            ),
+            array(
+                'param',
+                'int $bob Number of bobs',
+                'int',
+                array('int'),
+                '$bob',
+                'Number of bobs'
+            ),
+            array(
+                'param',
+                "int Description \n on multiple lines",
+                'int',
+                array('int'),
+                '',
+                "Description \n on multiple lines"
+            ),
+            array(
+                'param',
+                "int \n\$bob Variable name on a new line",
+                'int',
+                array('int'),
+                '$bob',
+                "Variable name on a new line"
+            ),
+            array(
+                'param',
+                "\nint \$bob Type on a new line",
+                'int',
+                array('int'),
+                '$bob',
+                "Type on a new line"
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ReturnTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ReturnTagTest.php
new file mode 100644
index 000000000000..9e2aec0d190d
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ReturnTagTest.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * phpDocumentor Return tag test.
+ * 
+ * PHP version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\ReturnTag
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class ReturnTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\ReturnTag can
+     * understand the @return DocBlock.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $extractedType
+     * @param string $extractedTypes
+     * @param string $extractedDescription
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ReturnTag
+     * @dataProvider provideDataForConstructor
+     *
+     * @return void
+     */
+    public function testConstructorParsesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $extractedType,
+        $extractedTypes,
+        $extractedDescription
+    ) {
+        $tag = new ReturnTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($extractedType, $tag->getType());
+        $this->assertEquals($extractedTypes, $tag->getTypes());
+        $this->assertEquals($extractedDescription, $tag->getDescription());
+    }
+
+    /**
+     * Data provider for testConstructorParsesInputsIntoCorrectFields()
+     *
+     * @return array
+     */
+    public function provideDataForConstructor()
+    {
+        return array(
+            array('return', '', '', array(), ''),
+            array('return', 'int', 'int', array('int'), ''),
+            array(
+                'return',
+                'int Number of Bobs',
+                'int',
+                array('int'),
+                'Number of Bobs'
+            ),
+            array(
+                'return',
+                'int|double Number of Bobs',
+                'int|double',
+                array('int', 'double'),
+                'Number of Bobs'
+            ),
+            array(
+                'return',
+                "int Number of \n Bobs",
+                'int',
+                array('int'),
+                "Number of \n Bobs"
+            ),
+            array(
+                'return',
+                " int Number of Bobs",
+                'int',
+                array('int'),
+                "Number of Bobs"
+            ),
+            array(
+                'return',
+                "int\nNumber of Bobs",
+                'int',
+                array('int'),
+                "Number of Bobs"
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SeeTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SeeTagTest.php
new file mode 100644
index 000000000000..6829b04605bb
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SeeTagTest.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * phpDocumentor See Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\SeeTag
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class SeeTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the phpDocumentor_Reflection_DocBlock_Tag_See can create a link
+     * for the @see doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exReference
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\SeeTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exReference
+    ) {
+        $tag = new SeeTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exReference, $tag->getReference());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exReference
+        return array(
+            array(
+                'see',
+                'Foo::bar()',
+                'Foo::bar()',
+                '',
+                'Foo::bar()'
+            ),
+            array(
+                'see',
+                'Foo::bar() Testing',
+                'Foo::bar() Testing',
+                'Testing',
+                'Foo::bar()',
+            ),
+            array(
+                'see',
+                'Foo::bar() Testing comments',
+                'Foo::bar() Testing comments',
+                'Testing comments',
+                'Foo::bar()',
+            ),
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SinceTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SinceTagTest.php
new file mode 100644
index 000000000000..8caf25d1cf03
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SinceTagTest.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * phpDocumentor Since Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\SinceTag
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class SinceTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
+     * a link for the @since doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exDescription
+     * @param string $exVersion
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\SinceTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exVersion
+    ) {
+        $tag = new SinceTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exVersion, $tag->getVersion());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exVersion
+        return array(
+            array(
+                'since',
+                '1.0 First release.',
+                '1.0 First release.',
+                'First release.',
+                '1.0'
+            ),
+            array(
+                'since',
+                "1.0\nFirst release.",
+                "1.0\nFirst release.",
+                'First release.',
+                '1.0'
+            ),
+            array(
+                'since',
+                "1.0\nFirst\nrelease.",
+                "1.0\nFirst\nrelease.",
+                "First\nrelease.",
+                '1.0'
+            ),
+            array(
+                'since',
+                'Unfinished release',
+                'Unfinished release',
+                'Unfinished release',
+                ''
+            ),
+            array(
+                'since',
+                '1.0',
+                '1.0',
+                '',
+                '1.0'
+            ),
+            array(
+                'since',
+                'GIT: $Id$',
+                'GIT: $Id$',
+                '',
+                'GIT: $Id$'
+            ),
+            array(
+                'since',
+                'GIT: $Id$ Dev build',
+                'GIT: $Id$ Dev build',
+                'Dev build',
+                'GIT: $Id$'
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SourceTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SourceTagTest.php
new file mode 100644
index 000000000000..2a40e0aa3bfc
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SourceTagTest.php
@@ -0,0 +1,116 @@
+<?php
+/**
+ * phpDocumentor Source Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\SourceTag
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class SourceTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\SourceTag can
+     * understand the @source DocBlock.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exStartingLine
+     * @param string $exLineCount
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\SourceTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exStartingLine,
+        $exLineCount
+    ) {
+        $tag = new SourceTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exStartingLine, $tag->getStartingLine());
+        $this->assertEquals($exLineCount, $tag->getLineCount());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exStartingLine, $exLineCount
+        return array(
+            array(
+                'source',
+                '2',
+                '2',
+                '',
+                2,
+                null
+            ),
+            array(
+                'source',
+                'Testing',
+                'Testing',
+                'Testing',
+                1,
+                null
+            ),
+            array(
+                'source',
+                '2 Testing',
+                '2 Testing',
+                'Testing',
+                2,
+                null
+            ),
+            array(
+                'source',
+                '2 3 Testing comments',
+                '2 3 Testing comments',
+                'Testing comments',
+                2,
+                3
+            ),
+            array(
+                'source',
+                '2 -1 Testing comments',
+                '2 -1 Testing comments',
+                '-1 Testing comments',
+                2,
+                null
+            ),
+            array(
+                'source',
+                '-1 1 Testing comments',
+                '-1 1 Testing comments',
+                '-1 1 Testing comments',
+                1,
+                null
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTagTest.php
new file mode 100644
index 000000000000..3c669d5583c2
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTagTest.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * phpDocumentor Throws tag test.
+ * 
+ * PHP version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\ThrowsTag
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class ThrowsTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag can
+     * understand the @throws DocBlock.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $extractedType
+     * @param string $extractedTypes
+     * @param string $extractedDescription
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag
+     * @dataProvider provideDataForConstructor
+     *
+     * @return void
+     */
+    public function testConstructorParsesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $extractedType,
+        $extractedTypes,
+        $extractedDescription
+    ) {
+        $tag = new ThrowsTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($extractedType, $tag->getType());
+        $this->assertEquals($extractedTypes, $tag->getTypes());
+        $this->assertEquals($extractedDescription, $tag->getDescription());
+    }
+
+    /**
+     * Data provider for testConstructorParsesInputsIntoCorrectFields()
+     *
+     * @return array
+     */
+    public function provideDataForConstructor()
+    {
+        return array(
+            array('throws', '', '', array(), ''),
+            array('throws', 'int', 'int', array('int'), ''),
+            array(
+                'throws',
+                'int Number of Bobs',
+                'int',
+                array('int'),
+                'Number of Bobs'
+            ),
+            array(
+                'throws',
+                'int|double Number of Bobs',
+                'int|double',
+                array('int', 'double'),
+                'Number of Bobs'
+            ),
+            array(
+                'throws',
+                "int Number of \n Bobs",
+                'int',
+                array('int'),
+                "Number of \n Bobs"
+            ),
+            array(
+                'throws',
+                " int Number of Bobs",
+                'int',
+                array('int'),
+                "Number of Bobs"
+            ),
+            array(
+                'throws',
+                "int\nNumber of Bobs",
+                'int',
+                array('int'),
+                "Number of Bobs"
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/UsesTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/UsesTagTest.php
new file mode 100644
index 000000000000..45868d73e938
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/UsesTagTest.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * phpDocumentor Uses Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\UsesTag
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class UsesTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\UsesTag can create
+     * a link for the @uses doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exReference
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\UsesTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exReference
+    ) {
+        $tag = new UsesTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exReference, $tag->getReference());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exReference
+        return array(
+            array(
+                'uses',
+                'Foo::bar()',
+                'Foo::bar()',
+                '',
+                'Foo::bar()'
+            ),
+            array(
+                'uses',
+                'Foo::bar() Testing',
+                'Foo::bar() Testing',
+                'Testing',
+                'Foo::bar()',
+            ),
+            array(
+                'uses',
+                'Foo::bar() Testing comments',
+                'Foo::bar() Testing comments',
+                'Testing comments',
+                'Foo::bar()',
+            ),
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VarTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VarTagTest.php
new file mode 100644
index 000000000000..9ae2aa5f7fa2
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VarTagTest.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * phpDocumentor Var Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\VarTag
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class VarTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\VarTag can
+     * understand the @var doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exType
+     * @param string $exVariable
+     * @param string $exDescription
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\VarTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exType,
+        $exVariable,
+        $exDescription
+    ) {
+        $tag = new VarTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exType, $tag->getType());
+        $this->assertEquals($exVariable, $tag->getVariableName());
+        $this->assertEquals($exDescription, $tag->getDescription());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exType, $exVariable, $exDescription
+        return array(
+            array(
+                'var',
+                'int',
+                'int',
+                '',
+                ''
+            ),
+            array(
+                'var',
+                'int $bob',
+                'int',
+                '$bob',
+                ''
+            ),
+            array(
+                'var',
+                'int $bob Number of bobs',
+                'int',
+                '$bob',
+                'Number of bobs'
+            ),
+            array(
+                'var',
+                '',
+                '',
+                '',
+                ''
+            ),
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VersionTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VersionTagTest.php
new file mode 100644
index 000000000000..e145386d4577
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VersionTagTest.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * phpDocumentor Version Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\VersionTag
+ *
+ * @author    Vasil Rangelov <boen.robot@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class VersionTagTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
+     * a link for the @version doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exContent
+     * @param string $exDescription
+     * @param string $exVersion
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag\VersionTag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exContent,
+        $exDescription,
+        $exVersion
+    ) {
+        $tag = new VersionTag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($exContent, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+        $this->assertEquals($exVersion, $tag->getVersion());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exContent, $exDescription, $exVersion
+        return array(
+            array(
+                'version',
+                '1.0 First release.',
+                '1.0 First release.',
+                'First release.',
+                '1.0'
+            ),
+            array(
+                'version',
+                "1.0\nFirst release.",
+                "1.0\nFirst release.",
+                'First release.',
+                '1.0'
+            ),
+            array(
+                'version',
+                "1.0\nFirst\nrelease.",
+                "1.0\nFirst\nrelease.",
+                "First\nrelease.",
+                '1.0'
+            ),
+            array(
+                'version',
+                'Unfinished release',
+                'Unfinished release',
+                'Unfinished release',
+                ''
+            ),
+            array(
+                'version',
+                '1.0',
+                '1.0',
+                '',
+                '1.0'
+            ),
+            array(
+                'version',
+                'GIT: $Id$',
+                'GIT: $Id$',
+                '',
+                'GIT: $Id$'
+            ),
+            array(
+                'version',
+                'GIT: $Id$ Dev build',
+                'GIT: $Id$ Dev build',
+                'Dev build',
+                'GIT: $Id$'
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php
new file mode 100644
index 000000000000..9e873ecb5d71
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php
@@ -0,0 +1,313 @@
+<?php
+/**
+ * phpDocumentor Var Tag Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock;
+
+use phpDocumentor\Reflection\DocBlock;
+use phpDocumentor\Reflection\DocBlock\Context;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Tag\VarTag
+ *
+ * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class TagTest extends \PHPUnit_Framework_TestCase
+{
+    
+    /**
+     * @expectedException \InvalidArgumentException
+     * 
+     * @return void
+     */
+    public function testInvalidTagLine()
+    {
+        Tag::createInstance('Invalid tag line');
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
+     * 
+     * @return void
+     */
+    public function testTagHandlerUnregistration()
+    {
+        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
+        $tagPreUnreg = Tag::createInstance('@var mixed');
+        $this->assertInstanceOf(
+            $currentHandler,
+            $tagPreUnreg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPreUnreg
+        );
+
+        Tag::registerTagHandler('var', null);
+
+        $tagPostUnreg = Tag::createInstance('@var mixed');
+        $this->assertNotInstanceOf(
+            $currentHandler,
+            $tagPostUnreg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPostUnreg
+        );
+
+        Tag::registerTagHandler('var', $currentHandler);
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
+     * 
+     * @return void
+     */
+    public function testTagHandlerCorrectRegistration()
+    {
+        if (0 == ini_get('allow_url_include')) {
+            $this->markTestSkipped('"data" URIs for includes are required.');
+        }
+        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
+        $tagPreReg = Tag::createInstance('@var mixed');
+        $this->assertInstanceOf(
+            $currentHandler,
+            $tagPreReg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPreReg
+        );
+
+        include 'data:text/plain;base64,'. base64_encode(
+<<<TAG_HANDLER
+<?php
+    class MyTagHandler extends \phpDocumentor\Reflection\DocBlock\Tag {}
+TAG_HANDLER
+        );
+
+        $this->assertTrue(Tag::registerTagHandler('var', '\MyTagHandler'));
+
+        $tagPostReg = Tag::createInstance('@var mixed');
+        $this->assertNotInstanceOf(
+            $currentHandler,
+            $tagPostReg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPostReg
+        );
+        $this->assertInstanceOf(
+            '\MyTagHandler',
+            $tagPostReg
+        );
+
+        $this->assertTrue(Tag::registerTagHandler('var', $currentHandler));
+    }
+    
+    /**
+     * @depends testTagHandlerCorrectRegistration
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::createInstance
+     * 
+     * @return void
+     */
+    public function testNamespacedTagHandlerCorrectRegistration()
+    {
+        $tagPreReg = Tag::createInstance('@T something');
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPreReg
+        );
+        $this->assertNotInstanceOf(
+            '\MyTagHandler',
+            $tagPreReg
+        );
+
+        $this->assertTrue(
+            Tag::registerTagHandler('\MyNamespace\MyTag', '\MyTagHandler')
+        );
+
+        $tagPostReg = Tag::createInstance(
+            '@T something',
+            new DocBlock(
+                '',
+                new Context('', array('T' => '\MyNamespace\MyTag'))
+            )
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPostReg
+        );
+        $this->assertInstanceOf(
+            '\MyTagHandler',
+            $tagPostReg
+        );
+
+        $this->assertTrue(
+            Tag::registerTagHandler('\MyNamespace\MyTag', null)
+        );
+    }
+    
+    /**
+     * @depends testTagHandlerCorrectRegistration
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::createInstance
+     * 
+     * @return void
+     */
+    public function testNamespacedTagHandlerIncorrectRegistration()
+    {
+        $tagPreReg = Tag::createInstance('@T something');
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPreReg
+        );
+        $this->assertNotInstanceOf(
+            '\MyTagHandler',
+            $tagPreReg
+        );
+
+        $this->assertFalse(
+            Tag::registerTagHandler('MyNamespace\MyTag', '\MyTagHandler')
+        );
+
+        $tagPostReg = Tag::createInstance(
+            '@T something',
+            new DocBlock(
+                '',
+                new Context('', array('T' => '\MyNamespace\MyTag'))
+            )
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPostReg
+        );
+        $this->assertNotInstanceOf(
+            '\MyTagHandler',
+            $tagPostReg
+        );
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
+     * 
+     * @return void
+     */
+    public function testNonExistentTagHandlerRegistration()
+    {
+        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
+        $tagPreReg = Tag::createInstance('@var mixed');
+        $this->assertInstanceOf(
+            $currentHandler,
+            $tagPreReg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPreReg
+        );
+
+        $this->assertFalse(Tag::registerTagHandler('var', 'Non existent'));
+
+        $tagPostReg = Tag::createInstance('@var mixed');
+        $this->assertInstanceOf(
+            $currentHandler,
+            $tagPostReg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPostReg
+        );
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
+     * 
+     * @return void
+     */
+    public function testIncompatibleTagHandlerRegistration()
+    {
+        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
+        $tagPreReg = Tag::createInstance('@var mixed');
+        $this->assertInstanceOf(
+            $currentHandler,
+            $tagPreReg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPreReg
+        );
+
+        $this->assertFalse(
+            Tag::registerTagHandler('var', __NAMESPACE__ . '\TagTest')
+        );
+
+        $tagPostReg = Tag::createInstance('@var mixed');
+        $this->assertInstanceOf(
+            $currentHandler,
+            $tagPostReg
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\Tag',
+            $tagPostReg
+        );
+    }
+
+    /**
+     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\VarTag can
+     * understand the @var doc block.
+     *
+     * @param string $type
+     * @param string $content
+     * @param string $exDescription
+     *
+     * @covers \phpDocumentor\Reflection\DocBlock\Tag
+     * @dataProvider provideDataForConstuctor
+     *
+     * @return void
+     */
+    public function testConstructorParesInputsIntoCorrectFields(
+        $type,
+        $content,
+        $exDescription
+    ) {
+        $tag = new Tag($type, $content);
+
+        $this->assertEquals($type, $tag->getName());
+        $this->assertEquals($content, $tag->getContent());
+        $this->assertEquals($exDescription, $tag->getDescription());
+    }
+
+    /**
+     * Data provider for testConstructorParesInputsIntoCorrectFields
+     *
+     * @return array
+     */
+    public function provideDataForConstuctor()
+    {
+        // $type, $content, $exDescription
+        return array(
+            array(
+                'unknown',
+                'some content',
+                'some content',
+            ),
+            array(
+                'unknown',
+                '',
+                '',
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Type/CollectionTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Type/CollectionTest.php
new file mode 100644
index 000000000000..78c7306d607a
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Type/CollectionTest.php
@@ -0,0 +1,195 @@
+<?php
+/**
+ * phpDocumentor Collection Test
+ * 
+ * PHP version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Type;
+
+use phpDocumentor\Reflection\DocBlock\Context;
+
+/**
+ * Test class for \phpDocumentor\Reflection\DocBlock\Type\Collection
+ * 
+ * @covers phpDocumentor\Reflection\DocBlock\Type\Collection
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class CollectionTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::getContext
+     * 
+     * @return void
+     */
+    public function testConstruct()
+    {
+        $collection = new Collection();
+        $this->assertCount(0, $collection);
+        $this->assertEquals('', $collection->getContext()->getNamespace());
+        $this->assertCount(0, $collection->getContext()->getNamespaceAliases());
+    }
+
+    /**
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
+     * 
+     * @return void
+     */
+    public function testConstructWithTypes()
+    {
+        $collection = new Collection(array('integer', 'string'));
+        $this->assertCount(2, $collection);
+    }
+
+    /**
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
+     * 
+     * @return void
+     */
+    public function testConstructWithNamespace()
+    {
+        $collection = new Collection(array(), new Context('\My\Space'));
+        $this->assertEquals('My\Space', $collection->getContext()->getNamespace());
+
+        $collection = new Collection(array(), new Context('My\Space'));
+        $this->assertEquals('My\Space', $collection->getContext()->getNamespace());
+
+        $collection = new Collection(array(), null);
+        $this->assertEquals('', $collection->getContext()->getNamespace());
+    }
+
+    /**
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
+     * 
+     * @return void
+     */
+    public function testConstructWithNamespaceAliases()
+    {
+        $fixture = array('a' => 'b');
+        $collection = new Collection(array(), new Context(null, $fixture));
+        $this->assertEquals(
+            array('a' => '\b'),
+            $collection->getContext()->getNamespaceAliases()
+        );
+    }
+
+    /**
+     * @param string $fixture
+     * @param array  $expected
+     *
+     * @dataProvider provideTypesToExpand
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::add
+     * 
+     * @return void
+     */
+    public function testAdd($fixture, $expected)
+    {
+        $collection = new Collection(
+            array(),
+            new Context('\My\Space', array('Alias' => '\My\Space\Aliasing'))
+        );
+        $collection->add($fixture);
+
+        $this->assertSame($expected, $collection->getArrayCopy());
+    }
+
+    /**
+     * @param string $fixture
+     * @param array  $expected
+     *
+     * @dataProvider provideTypesToExpandWithoutNamespace
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::add
+     * 
+     * @return void
+     */
+    public function testAddWithoutNamespace($fixture, $expected)
+    {
+        $collection = new Collection(
+            array(),
+            new Context(null, array('Alias' => '\My\Space\Aliasing'))
+        );
+        $collection->add($fixture);
+
+        $this->assertSame($expected, $collection->getArrayCopy());
+    }
+
+    /**
+     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::add
+     * @expectedException InvalidArgumentException
+     * 
+     * @return void
+     */
+    public function testAddWithInvalidArgument()
+    {
+        $collection = new Collection();
+        $collection->add(array());
+    }
+
+    /**
+     * Returns the types and their expected values to test the retrieval of
+     * types.
+     *
+     * @param string $method    Name of the method consuming this data provider.
+     * @param string $namespace Name of the namespace to user as basis.
+     *
+     * @return string[]
+     */
+    public function provideTypesToExpand($method, $namespace = '\My\Space\\')
+    {
+        return array(
+            array('', array()),
+            array(' ', array()),
+            array('int', array('int')),
+            array('int ', array('int')),
+            array('string', array('string')),
+            array('DocBlock', array($namespace.'DocBlock')),
+            array('DocBlock[]', array($namespace.'DocBlock[]')),
+            array(' DocBlock ', array($namespace.'DocBlock')),
+            array('\My\Space\DocBlock', array('\My\Space\DocBlock')),
+            array('Alias\DocBlock', array('\My\Space\Aliasing\DocBlock')),
+            array(
+                'DocBlock|Tag',
+                array($namespace .'DocBlock', $namespace .'Tag')
+            ),
+            array(
+                'DocBlock|null',
+                array($namespace.'DocBlock', 'null')
+            ),
+            array(
+                '\My\Space\DocBlock|Tag',
+                array('\My\Space\DocBlock', $namespace.'Tag')
+            ),
+            array(
+                'DocBlock[]|null',
+                array($namespace.'DocBlock[]', 'null')
+            ),
+            array(
+                'DocBlock[]|int[]',
+                array($namespace.'DocBlock[]', 'int[]')
+            ),
+        );
+    }
+
+    /**
+     * Returns the types and their expected values to test the retrieval of
+     * types when no namespace is available.
+     *
+     * @param string $method Name of the method consuming this data provider.
+     *
+     * @return string[]
+     */
+    public function provideTypesToExpandWithoutNamespace($method)
+    {
+        return $this->provideTypesToExpand($method, '\\');
+    }
+}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlockTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlockTest.php
new file mode 100644
index 000000000000..30eedfc58199
--- /dev/null
+++ b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlockTest.php
@@ -0,0 +1,337 @@
+<?php
+/**
+ * phpDocumentor DocBlock Test
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection;
+
+use phpDocumentor\Reflection\DocBlock\Context;
+use phpDocumentor\Reflection\DocBlock\Location;
+use phpDocumentor\Reflection\DocBlock\Tag\ReturnTag;
+
+/**
+ * Test class for phpDocumentor\Reflection\DocBlock
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+class DocBlockTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock
+     * 
+     * @return void
+     */
+    public function testConstruct()
+    {
+        $fixture = <<<DOCBLOCK
+/**
+ * This is a short description
+ *
+ * This is a long description
+ *
+ * @see \MyClass
+ * @return void
+ */
+DOCBLOCK;
+        $object = new DocBlock(
+            $fixture,
+            new Context('\MyNamespace', array('PHPDoc' => '\phpDocumentor')),
+            new Location(2)
+        );
+        $this->assertEquals(
+            'This is a short description',
+            $object->getShortDescription()
+        );
+        $this->assertEquals(
+            'This is a long description',
+            $object->getLongDescription()->getContents()
+        );
+        $this->assertCount(2, $object->getTags());
+        $this->assertTrue($object->hasTag('see'));
+        $this->assertTrue($object->hasTag('return'));
+        $this->assertFalse($object->hasTag('category'));
+        
+        $this->assertSame('MyNamespace', $object->getContext()->getNamespace());
+        $this->assertSame(
+            array('PHPDoc' => '\phpDocumentor'),
+            $object->getContext()->getNamespaceAliases()
+        );
+        $this->assertSame(2, $object->getLocation()->getLineNumber());
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock::splitDocBlock
+     *
+     * @return void
+     */
+    public function testConstructWithTagsOnly()
+    {
+        $fixture = <<<DOCBLOCK
+/**
+ * @see \MyClass
+ * @return void
+ */
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertEquals('', $object->getShortDescription());
+        $this->assertEquals('', $object->getLongDescription()->getContents());
+        $this->assertCount(2, $object->getTags());
+        $this->assertTrue($object->hasTag('see'));
+        $this->assertTrue($object->hasTag('return'));
+        $this->assertFalse($object->hasTag('category'));
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock::isTemplateStart
+     */
+    public function testIfStartOfTemplateIsDiscovered()
+    {
+        $fixture = <<<DOCBLOCK
+/**#@+
+ * @see \MyClass
+ * @return void
+ */
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertEquals('', $object->getShortDescription());
+        $this->assertEquals('', $object->getLongDescription()->getContents());
+        $this->assertCount(2, $object->getTags());
+        $this->assertTrue($object->hasTag('see'));
+        $this->assertTrue($object->hasTag('return'));
+        $this->assertFalse($object->hasTag('category'));
+        $this->assertTrue($object->isTemplateStart());
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock::isTemplateEnd
+     */
+    public function testIfEndOfTemplateIsDiscovered()
+    {
+        $fixture = <<<DOCBLOCK
+/**#@-*/
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertEquals('', $object->getShortDescription());
+        $this->assertEquals('', $object->getLongDescription()->getContents());
+        $this->assertTrue($object->isTemplateEnd());
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock::cleanInput
+     * 
+     * @return void
+     */
+    public function testConstructOneLiner()
+    {
+        $fixture = '/** Short description and nothing more. */';
+        $object = new DocBlock($fixture);
+        $this->assertEquals(
+            'Short description and nothing more.',
+            $object->getShortDescription()
+        );
+        $this->assertEquals('', $object->getLongDescription()->getContents());
+        $this->assertCount(0, $object->getTags());
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock::__construct
+     * 
+     * @return void
+     */
+    public function testConstructFromReflector()
+    {
+        $object = new DocBlock(new \ReflectionClass($this));
+        $this->assertEquals(
+            'Test class for phpDocumentor\Reflection\DocBlock',
+            $object->getShortDescription()
+        );
+        $this->assertEquals('', $object->getLongDescription()->getContents());
+        $this->assertCount(4, $object->getTags());
+        $this->assertTrue($object->hasTag('author'));
+        $this->assertTrue($object->hasTag('copyright'));
+        $this->assertTrue($object->hasTag('license'));
+        $this->assertTrue($object->hasTag('link'));
+        $this->assertFalse($object->hasTag('category'));
+    }
+
+    /**
+     * @expectedException \InvalidArgumentException
+     * 
+     * @return void
+     */
+    public function testExceptionOnInvalidObject()
+    {
+        new DocBlock($this);
+    }
+
+    public function testDotSeperation()
+    {
+        $fixture = <<<DOCBLOCK
+/**
+ * This is a short description.
+ * This is a long description.
+ * This is a continuation of the long description.
+ */
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertEquals(
+            'This is a short description.',
+            $object->getShortDescription()
+        );
+        $this->assertEquals(
+            "This is a long description.\nThis is a continuation of the long "
+            ."description.",
+            $object->getLongDescription()->getContents()
+        );
+    }
+
+    /**
+     * @covers \phpDocumentor\Reflection\DocBlock::parseTags
+     * @expectedException \LogicException
+     * 
+     * @return void
+     */
+    public function testInvalidTagBlock()
+    {
+        if (0 == ini_get('allow_url_include')) {
+            $this->markTestSkipped('"data" URIs for includes are required.');
+        }
+
+        include 'data:text/plain;base64,'. base64_encode(
+            <<<DOCBLOCK_EXTENSION
+<?php
+class MyReflectionDocBlock extends \phpDocumentor\Reflection\DocBlock {
+    protected function splitDocBlock(\$comment) {
+        return array('', '', 'Invalid tag block');
+    }
+}
+DOCBLOCK_EXTENSION
+        );
+        new \MyReflectionDocBlock('');
+        
+    }
+
+    public function testTagCaseSensitivity()
+    {
+        $fixture = <<<DOCBLOCK
+/**
+ * This is a short description.
+ *
+ * This is a long description.
+ *
+ * @method null something()
+ * @Method({"GET", "POST"})
+ */
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertEquals(
+            'This is a short description.',
+            $object->getShortDescription()
+        );
+        $this->assertEquals(
+            'This is a long description.',
+            $object->getLongDescription()->getContents()
+        );
+        $tags = $object->getTags();
+        $this->assertCount(2, $tags);
+        $this->assertTrue($object->hasTag('method'));
+        $this->assertTrue($object->hasTag('Method'));
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\DocBlock\Tag\MethodTag',
+            $tags[0]
+        );
+        $this->assertInstanceOf(
+            __NAMESPACE__ . '\DocBlock\Tag',
+            $tags[1]
+        );
+        $this->assertNotInstanceOf(
+            __NAMESPACE__ . '\DocBlock\Tag\MethodTag',
+            $tags[1]
+        );
+    }
+
+    /**
+     * @depends testConstructFromReflector
+     * @covers \phpDocumentor\Reflection\DocBlock::getTagsByName
+     * 
+     * @return void
+     */
+    public function testGetTagsByNameZeroAndOneMatch()
+    {
+        $object = new DocBlock(new \ReflectionClass($this));
+        $this->assertEmpty($object->getTagsByName('category'));
+        $this->assertCount(1, $object->getTagsByName('author'));
+    }
+
+    /**
+     * @depends testConstructWithTagsOnly
+     * @covers \phpDocumentor\Reflection\DocBlock::parseTags
+     * 
+     * @return void
+     */
+    public function testParseMultilineTag()
+    {
+        $fixture = <<<DOCBLOCK
+/**
+ * @return void Content on
+ *     multiple lines.
+ */
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertCount(1, $object->getTags());
+    }
+
+    /**
+     * @depends testConstructWithTagsOnly
+     * @covers \phpDocumentor\Reflection\DocBlock::parseTags
+     * 
+     * @return void
+     */
+    public function testParseMultilineTagWithLineBreaks()
+    {
+        $fixture = <<<DOCBLOCK
+/**
+ * @return void Content on
+ *     multiple lines.
+ *
+ *     One more, after the break.
+ */
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertCount(1, $tags = $object->getTags());
+	    /** @var ReturnTag $tag */
+	    $tag = reset($tags);
+	    $this->assertEquals("Content on\n    multiple lines.\n\n    One more, after the break.", $tag->getDescription());
+    }
+
+    /**
+     * @depends testConstructWithTagsOnly
+     * @covers \phpDocumentor\Reflection\DocBlock::getTagsByName
+     * 
+     * @return void
+     */
+    public function testGetTagsByNameMultipleMatch()
+    {
+        $fixture = <<<DOCBLOCK
+/**
+ * @param string
+ * @param int
+ * @return void
+ */
+DOCBLOCK;
+        $object = new DocBlock($fixture);
+        $this->assertEmpty($object->getTagsByName('category'));
+        $this->assertCount(1, $object->getTagsByName('return'));
+        $this->assertCount(2, $object->getTagsByName('param'));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/.gitignore b/core/vendor/phpspec/prophecy/.gitignore
new file mode 100644
index 000000000000..0c39a17ed8b7
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/.gitignore
@@ -0,0 +1,5 @@
+*.tgz
+*.phar
+bin
+vendor
+composer.lock
diff --git a/core/vendor/phpspec/prophecy/.travis.yml b/core/vendor/phpspec/prophecy/.travis.yml
new file mode 100644
index 000000000000..4a6930988d97
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/.travis.yml
@@ -0,0 +1,9 @@
+language: php
+
+php: [5.3, 5.4, 5.5, hhvm, hhvm-nightly]
+
+sudo: false
+
+before_script: travis_retry composer install --no-interaction --prefer-source
+
+script: vendor/bin/phpspec run -fpretty -v
diff --git a/core/vendor/phpspec/prophecy/CHANGES.md b/core/vendor/phpspec/prophecy/CHANGES.md
new file mode 100644
index 000000000000..fe761da91097
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/CHANGES.md
@@ -0,0 +1,110 @@
+1.4.0 / 2015-03-27
+==================
+
+  * Fixed errors in return type phpdocs (thanks @sobit)
+  * Fixed stringifying of hash containing one value (thanks @avant1)
+  * Improved clarity of method call expectation exception (thanks @dantleech)
+  * Add ability to specify which argument is returned in willReturnArgument (thanks @coderbyheart)
+  * Add more information to MethodNotFound exceptions (thanks @ciaranmcnulty)
+  * Support for mocking classes with methods that return references (thanks @edsonmedina)
+  * Improved object comparison (thanks @whatthejeff)
+  * Adopted '^' in composer dependencies (thanks @GrahamCampbell)
+  * Fixed non-typehinted arguments being treated as optional (thanks @whatthejeff)
+  * Magic methods are now filtered for keywords (thanks @seagoj)
+  * More readable errors for failure when expecting single calls (thanks @dantleech)
+
+1.3.1 / 2014-11-17
+==================
+
+  * Fix the edge case when failed predictions weren't recorded for `getCheckedPredictions()`
+
+1.3.0 / 2014-11-14
+==================
+
+  * Add a way to get checked predictions with `MethodProphecy::getCheckedPredictions()`
+  * Fix HHVM compatibility
+  * Remove dead code (thanks @stof)
+  * Add support for DirectoryIterators (thanks @shanethehat)
+
+1.2.0 / 2014-07-18
+==================
+
+  * Added support for doubling magic methods documented in the class phpdoc (thanks @armetiz)
+  * Fixed a segfault appearing in some cases (thanks @dmoreaulf)
+  * Fixed the doubling of methods with typehints on non-existent classes (thanks @gquemener)
+  * Added support for internal classes using keywords as method names (thanks @milan)
+  * Added IdenticalValueToken and Argument::is (thanks @florianv)
+  * Removed the usage of scalar typehints in HHVM as HHVM 3 does not support them anymore in PHP code (thanks @whatthejeff)
+
+1.1.2 / 2014-01-24
+==================
+
+  * Spy automatically promotes spied method call to an expected one
+
+1.1.1 / 2014-01-15
+==================
+
+  * Added support for HHVM
+
+1.1.0 / 2014-01-01
+==================
+
+  * Changed the generated class names to use a static counter instead of a random number
+  * Added a clss patch for ReflectionClass::newInstance to make its argument optional consistently (thanks @docteurklein)
+  * Fixed mirroring of classes with typehints on non-existent classes (thanks @docteurklein)
+  * Fixed the support of array callables in CallbackPromise and CallbackPrediction (thanks @ciaranmcnulty)
+  * Added support for properties in ObjectStateToken (thanks @adrienbrault)
+  * Added support for mocking classes with a final constructor (thanks @ciaranmcnulty)
+  * Added ArrayEveryEntryToken and Argument::withEveryEntry() (thanks @adrienbrault)
+  * Added an exception when trying to prophesize on a final method instead of ignoring silently (thanks @docteurklein)
+  * Added StringContainToken and Argument::containingString() (thanks @peterjmit)
+  * Added ``shouldNotHaveBeenCalled`` on the MethodProphecy (thanks @ciaranmcnulty)
+  * Fixed the comparison of objects in ExactValuetoken (thanks @sstok)
+  * Deprecated ``shouldNotBeenCalled`` in favor of ``shouldNotHaveBeenCalled``
+
+1.0.4 / 2013-08-10
+==================
+
+  * Better randomness for generated class names (thanks @sstok)
+  * Add support for interfaces into TypeToken and Argument::type() (thanks @sstok)
+  * Add support for old-style (method name === class name) constructors (thanks @l310 for report)
+
+1.0.3 / 2013-07-04
+==================
+
+  * Support callable typehints (thanks @stof)
+  * Do not attempt to autoload arrays when generating code (thanks @MarcoDeBortoli)
+  * New ArrayEntryToken (thanks @kagux)
+
+1.0.2 / 2013-05-19
+==================
+
+  * Logical `AND` token added (thanks @kagux)
+  * Logical `NOT` token added (thanks @kagux)
+  * Add support for setting custom constructor arguments
+  * Properly stringify hashes
+  * Record calls that throw exceptions
+  * Migrate spec suite to PhpSpec 2.0
+
+1.0.1 / 2013-04-30
+==================
+
+  * Fix broken UnexpectedCallException message
+  * Trim AggregateException message
+
+1.0.0 / 2013-04-29
+==================
+
+  * Improve exception messages
+
+1.0.0-BETA2 / 2013-04-03
+========================
+
+  * Add more debug information to CallTimes and Call prediction exception messages
+  * Fix MethodNotFoundException wrong namespace (thanks @gunnarlium)
+  * Fix some typos in the exception messages (thanks @pborreli)
+
+1.0.0-BETA1 / 2013-03-25
+========================
+
+  * Initial release
diff --git a/core/vendor/phpspec/prophecy/CONTRIBUTING.md b/core/vendor/phpspec/prophecy/CONTRIBUTING.md
new file mode 100644
index 000000000000..6ea0589f497f
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/CONTRIBUTING.md
@@ -0,0 +1,21 @@
+Contributing
+------------
+
+Prophecy is an open source, community-driven project. If you'd like to contribute,
+feel free to do this, but remember to follow this few simple rules:
+
+- Make your feature addition or bug fix,
+- Add either specs or examples for any changes you're making (bugfixes or additions)
+  (please look into `spec/` folder for some examples). This is important so we don't break
+  it in a future version unintentionally,
+- Commit your code, but do not mess with `CHANGES.md`,
+
+Running tests
+-------------
+
+Make sure that you don't break anything with your changes by running:
+
+```bash
+$> composer install --dev --prefer-dist
+$> vendor/bin/phpspec
+```
diff --git a/core/vendor/phpspec/prophecy/LICENSE b/core/vendor/phpspec/prophecy/LICENSE
new file mode 100644
index 000000000000..c8b364711a50
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2013 Konstantin Kudryashov <ever.zet@gmail.com>
+                   Marcello Duarte <marcello.duarte@gmail.com>
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/core/vendor/phpspec/prophecy/README.md b/core/vendor/phpspec/prophecy/README.md
new file mode 100644
index 000000000000..639ffd067829
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/README.md
@@ -0,0 +1,389 @@
+# Prophecy
+
+[![Build Status](https://travis-ci.org/phpspec/prophecy.svg?branch=master)](https://travis-ci.org/phpspec/prophecy)
+
+Prophecy is a highly opinionated yet very powerful and flexible PHP object mocking
+framework. Though initially it was created to fulfil phpspec2 needs, it is flexible
+enough to be used inside any testing framework out there with minimal effort.
+
+## A simple example
+
+```php
+<?php
+
+class UserTest extends PHPUnit_Framework_TestCase
+{
+    private $prophet;
+
+    public function testPasswordHashing()
+    {
+        $hasher = $this->prophet->prophesize('App\Security\Hasher');
+        $user   = new App\Entity\User($hasher->reveal());
+
+        $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass');
+
+        $user->setPassword('qwerty');
+
+        $this->assertEquals('hashed_pass', $user->getPassword());
+    }
+
+    protected function setup()
+    {
+        $this->prophet = new \Prophecy\Prophet;
+    }
+
+    protected function tearDown()
+    {
+        $this->prophet->checkPredictions();
+    }
+}
+```
+
+## Installation
+
+### Prerequisites
+
+Prophecy requires PHP 5.3.3 or greater.
+
+### Setup through composer
+
+First, add Prophecy to the list of dependencies inside your `composer.json`:
+
+```json
+{
+    "require-dev": {
+        "phpspec/prophecy": "~1.0"
+    }
+}
+```
+
+Then simply install it with composer:
+
+```bash
+$> composer install --prefer-dist
+```
+
+You can read more about Composer on its [official webpage](http://getcomposer.org).
+
+## How to use it
+
+First of all, in Prophecy every word has a logical meaning, even the name of the library
+itself (Prophecy). When you start feeling that, you'll become very fluid with this
+tool.
+
+For example, Prophecy has been named that way because it concentrates on describing the future
+behavior of objects with very limited knowledge about them. But as with any other prophecy,
+those object prophecies can't create themselves - there should be a Prophet:
+
+```php
+$prophet = new Prophecy\Prophet;
+```
+
+The Prophet creates prophecies by *prophesizing* them:
+
+```php
+$prophecy = $prophet->prophesize();
+```
+
+The result of the `prophesize()` method call is a new object of class `ObjectProphecy`. Yes,
+that's your specific object prophecy, which describes how your object would behave
+in the near future. But first, you need to specify which object you're talking about,
+right?
+
+```php
+$prophecy->willExtend('stdClass');
+$prophecy->willImplement('SessionHandlerInterface');
+```
+
+There are 2 interesting calls - `willExtend` and `willImplement`. The first one tells
+object prophecy that our object should extend specific class, the second one says that
+it should implement some interface. Obviously, objects in PHP can implement multiple
+interfaces, but extend only one parent class.
+
+### Dummies
+
+Ok, now we have our object prophecy. What can we do with it? First of all, we can get
+our object *dummy* by revealing its prophecy:
+
+```php
+$dummy = $prophecy->reveal();
+```
+
+The `$dummy` variable now holds a special dummy object. Dummy objects are objects that extend
+and/or implement preset classes/interfaces by overriding all their public methods. The key
+point about dummies is that they do not hold any logic - they just do nothing. Any method
+of the dummy will always return `null` and the dummy will never throw any exceptions.
+Dummy is your friend if you don't care about the actual behavior of this double and just need
+a token object to satisfy a method typehint.
+
+You need to understand one thing - a dummy is not a prophecy. Your object prophecy is still
+assigned to `$prophecy` variable and in order to manipulate with your expectations, you
+should work with it. `$dummy` is a dummy - a simple php object that tries to fulfil your
+prophecy.
+
+### Stubs
+
+Ok, now we know how to create basic prophecies and reveal dummies from them. That's
+awesome if we don't care about our _doubles_ (objects that reflect originals)
+interactions. If we do, we need to use *stubs* or *mocks*.
+
+A stub is an object double, which doesn't have any expectations about the object behavior,
+but when put in specific environment, behaves in specific way. Ok, I know, it's cryptic,
+but bear with me for a minute. Simply put, a stub is a dummy, which depending on the called
+method signature does different things (has logic). To create stubs in Prophecy:
+
+```php
+$prophecy->read('123')->willReturn('value');
+```
+
+Oh wow. We've just made an arbitrary call on the object prophecy? Yes, we did. And this
+call returned us a new object instance of class `MethodProphecy`. Yep, that's a specific
+method with arguments prophecy. Method prophecies give you the ability to create method
+promises or predictions. We'll talk about method predictions later in the _Mocks_ section.
+
+#### Promises
+
+Promises are logical blocks, that represent your fictional methods in prophecy terms
+and they are handled by the `MethodProphecy::will(PromiseInterface $promise)` method.
+As a matter of fact, the call that we made earlier (`willReturn('value')`) is a simple
+shortcut to:
+
+```php
+$prophecy->read('123')->will(new Prophecy\Promise\ReturnPromise(array('value')));
+```
+
+This promise will cause any call to our double's `read()` method with exactly one
+argument - `'123'` to always return `'value'`. But that's only for this
+promise, there's plenty others you can use:
+
+- `ReturnPromise` or `->willReturn(1)` - returns a value from a method call
+- `ReturnArgumentPromise` or `->willReturnArgument($index)` - returns the nth method argument from call
+- `ThrowPromise` or `->willThrow` - causes the method to throw specific exception
+- `CallbackPromise` or `->will($callback)` - gives you a quick way to define your own custom logic
+
+Keep in mind, that you can always add even more promises by implementing
+`Prophecy\Promise\PromiseInterface`.
+
+#### Method prophecies idempotency
+
+Prophecy enforces same method prophecies and, as a consequence, same promises and
+predictions for the same method calls with the same arguments. This means:
+
+```php
+$methodProphecy1 = $prophecy->read('123');
+$methodProphecy2 = $prophecy->read('123');
+$methodProphecy3 = $prophecy->read('321');
+
+$methodProphecy1 === $methodProphecy2;
+$methodProphecy1 !== $methodProphecy3;
+```
+
+That's interesting, right? Now you might ask me how would you define more complex
+behaviors where some method call changes behavior of others. In PHPUnit or Mockery
+you do that by predicting how many times your method will be called. In Prophecy,
+you'll use promises for that:
+
+```php
+$user->getName()->willReturn(null);
+
+// For PHP 5.4
+$user->setName('everzet')->will(function () {
+    $this->getName()->willReturn('everzet');
+});
+
+// For PHP 5.3
+$user->setName('everzet')->will(function ($args, $user) {
+    $user->getName()->willReturn('everzet');
+});
+
+// Or
+$user->setName('everzet')->will(function ($args) use ($user) {
+    $user->getName()->willReturn('everzet');
+});
+```
+
+And now it doesn't matter how many times or in which order your methods are called.
+What matters is their behaviors and how well you faked it.
+
+#### Arguments wildcarding
+
+The previous example is awesome (at least I hope it is for you), but that's not
+optimal enough. We hardcoded `'everzet'` in our expectation. Isn't there a better
+way? In fact there is, but it involves understanding what this `'everzet'`
+actually is.
+
+You see, even if method arguments used during method prophecy creation look
+like simple method arguments, in reality they are not. They are argument token
+wildcards.  As a matter of fact, `->setName('everzet')` looks like a simple call just
+because Prophecy automatically transforms it under the hood into:
+
+```php
+$user->setName(new Prophecy\Argument\Token\ExactValueToken('everzet'));
+```
+
+Those argument tokens are simple PHP classes, that implement
+`Prophecy\Argument\Token\TokenInterface` and tell Prophecy how to compare real arguments
+with your expectations. And yes, those classnames are damn big. That's why there's a
+shortcut class `Prophecy\Argument`, which you can use to create tokens like that:
+
+```php
+use Prophecy\Argument;
+
+$user->setName(Argument::exact('everzet'));
+```
+
+`ExactValueToken` is not very useful in our case as it forced us to hardcode the username.
+That's why Prophecy comes bundled with a bunch of other tokens:
+
+- `IdenticalValueToken` or `Argument::is($value)` - checks that the argument is identical to a specific value
+- `ExactValueToken` or `Argument::exact($value)` - checks that the argument matches a specific value
+- `TypeToken` or `Argument::type($typeOrClass)` - checks that the argument matches a specific type or
+  classname
+- `ObjectStateToken` or `Argument::which($method, $value)` - checks that the argument method returns
+  a specific value
+- `CallbackToken` or `Argument::that(callback)` - checks that the argument matches a custom callback
+- `AnyValueToken` or `Argument::any()` - matches any argument
+- `AnyValuesToken` or `Argument::cetera()` - matches any arguments to the rest of the signature
+
+And you can add even more by implementing `TokenInterface` with your own custom classes.
+
+So, let's refactor our initial `{set,get}Name()` logic with argument tokens:
+
+```php
+use Prophecy\Argument;
+
+$user->getName()->willReturn(null);
+
+// For PHP 5.4
+$user->setName(Argument::type('string'))->will(function ($args) {
+    $this->getName()->willReturn($args[0]);
+});
+
+// For PHP 5.3
+$user->setName(Argument::type('string'))->will(function ($args, $user) {
+    $user->getName()->willReturn($args[0]);
+});
+
+// Or
+$user->setName(Argument::type('string'))->will(function ($args) use ($user) {
+    $user->getName()->willReturn($args[0]);
+});
+```
+
+That's it. Now our `{set,get}Name()` prophecy will work with any string argument provided to it.
+We've just described how our stub object should behave, even though the original object could have
+no behavior whatsoever.
+
+One last bit about arguments now. You might ask, what happens in case of:
+
+```php
+use Prophecy\Argument;
+
+$user->getName()->willReturn(null);
+
+// For PHP 5.4
+$user->setName(Argument::type('string'))->will(function ($args) {
+    $this->getName()->willReturn($args[0]);
+});
+
+// For PHP 5.3
+$user->setName(Argument::type('string'))->will(function ($args, $user) {
+    $user->getName()->willReturn($args[0]);
+});
+
+// Or
+$user->setName(Argument::type('string'))->will(function ($args) use ($user) {
+    $user->getName()->willReturn($args[0]);
+});
+
+$user->setName(Argument::any())->will(function () {
+});
+```
+
+Nothing. Your stub will continue behaving the way it did before. That's because of how
+arguments wildcarding works. Every argument token type has a different score level, which
+wildcard then uses to calculate the final arguments match score and use the method prophecy
+promise that has the highest score. In this case, `Argument::type()` in case of success
+scores `5` and `Argument::any()` scores `3`. So the type token wins, as does the first
+`setName()` method prophecy and its promise. The simple rule of thumb - more precise token
+always wins.
+
+#### Getting stub objects
+
+Ok, now we know how to define our prophecy method promises, let's get our stub from
+it:
+
+```php
+$stub = $prophecy->reveal();
+```
+
+As you might see, the only difference between how we get dummies and stubs is that with
+stubs we describe every object conversation instead of just agreeing with `null` returns
+(object being *dummy*). As a matter of fact, after you define your first promise
+(method call), Prophecy will force you to define all the communications - it throws
+the `UnexpectedCallException` for any call you didn't describe with object prophecy before
+calling it on a stub.
+
+### Mocks
+
+Now we know how to define doubles without behavior (dummies) and doubles with behavior, but
+no expectations (stubs). What's left is doubles for which we have some expectations. These
+are called mocks and in Prophecy they look almost exactly the same as stubs, except that
+they define *predictions* instead of *promises* on method prophecies:
+
+```php
+$entityManager->flush()->shouldBeCalled();
+```
+
+#### Predictions
+
+The `shouldBeCalled()` method here assigns `CallPrediction` to our method prophecy.
+Predictions are a delayed behavior check for your prophecies. You see, during the entire lifetime
+of your doubles, Prophecy records every single call you're making against it inside your
+code. After that, Prophecy can use this collected information to check if it matches defined
+predictions. You can assign predictions to method prophecies using the
+`MethodProphecy::should(PredictionInterface $prediction)` method. As a matter of fact,
+the `shouldBeCalled()` method we used earlier is just a shortcut to:
+
+```php
+$entityManager->flush()->should(new Prophecy\Prediction\CallPrediction());
+```
+
+It checks if your method of interest (that matches both the method name and the arguments wildcard)
+was called 1 or more times. If the prediction failed then it throws an exception. When does this
+check happen? Whenever you call `checkPredictions()` on the main Prophet object:
+
+```php
+$prophet->checkPredictions();
+```
+
+In PHPUnit, you would want to put this call into the `tearDown()` method. If no predictions
+are defined, it would do nothing. So it won't harm to call it after every test.
+
+There are plenty more predictions you can play with:
+
+- `CallPrediction` or `shouldBeCalled()` - checks that the method has been called 1 or more times
+- `NoCallsPrediction` or `shouldNotBeCalled()` - checks that the method has not been called
+- `CallTimesPrediction` or `shouldBeCalledTimes($count)` - checks that the method has been called
+  `$count` times
+- `CallbackPrediction` or `should($callback)` - checks the method against your own custom callback
+
+Of course, you can always create your own custom prediction any time by implementing
+`PredictionInterface`.
+
+### Spies
+
+The last bit of awesomeness in Prophecy is out-of-the-box spies support. As I said in the previous
+section, Prophecy records every call made during the double's entire lifetime. This means
+you don't need to record predictions in order to check them. You can also do it
+manually by using the `MethodProphecy::shouldHave(PredictionInterface $prediction)` method:
+
+```php
+$em = $prophet->prophesize('Doctrine\ORM\EntityManager');
+
+$controller->createUser($em->reveal());
+
+$em->flush()->shouldHaveBeenCalled();
+```
+
+Such manipulation with doubles is called spying. And with Prophecy it just works.
diff --git a/core/vendor/phpspec/prophecy/composer.json b/core/vendor/phpspec/prophecy/composer.json
new file mode 100644
index 000000000000..654aaadc583d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/composer.json
@@ -0,0 +1,40 @@
+{
+    "name":         "phpspec/prophecy",
+    "description":  "Highly opinionated mocking framework for PHP 5.3+",
+    "keywords":     ["Mock", "Stub", "Dummy", "Double", "Fake", "Spy"],
+    "homepage":     "https://github.com/phpspec/prophecy",
+    "type":         "library",
+    "license":      "MIT",
+    "authors":      [
+        {
+            "name":      "Konstantin Kudryashov",
+            "email":     "ever.zet@gmail.com",
+            "homepage":  "http://everzet.com"
+        },
+        {
+            "name":      "Marcello Duarte",
+            "email":     "marcello.duarte@gmail.com"
+        }
+    ],
+    "require": {
+        "phpdocumentor/reflection-docblock": "~2.0",
+        "sebastian/comparator":              "~1.1",
+        "doctrine/instantiator":             "^1.0.2"
+    },
+
+    "require-dev": {
+        "phpspec/phpspec": "~2.0"
+    },
+
+    "autoload": {
+        "psr-0": {
+            "Prophecy\\": "src/"
+        }
+    },
+
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.4.x-dev"
+        }
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/ArgumentsWildcardSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/ArgumentsWildcardSpec.php
new file mode 100644
index 000000000000..d96318e36186
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/ArgumentsWildcardSpec.php
@@ -0,0 +1,143 @@
+<?php
+
+namespace spec\Prophecy\Argument;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument\Token\TokenInterface;
+
+class ArgumentsWildcardSpec extends ObjectBehavior
+{
+    /**
+     * @param \stdClass $object
+     */
+    function it_wraps_non_token_arguments_into_ExactValueToken($object)
+    {
+        $this->beConstructedWith(array(42, 'zet', $object));
+
+        $class = get_class($object->getWrappedObject());
+        $hash  = spl_object_hash($object->getWrappedObject());
+
+        $this->__toString()->shouldReturn("exact(42), exact(\"zet\"), exact($class:$hash Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n))");
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     * @param \Prophecy\Argument\Token\TokenInterface $token3
+     */
+    function it_generates_string_representation_from_all_tokens_imploded($token1, $token2, $token3)
+    {
+        $token1->__toString()->willReturn('token_1');
+        $token2->__toString()->willReturn('token_2');
+        $token3->__toString()->willReturn('token_3');
+
+        $this->beConstructedWith(array($token1, $token2, $token3));
+        $this->__toString()->shouldReturn('token_1, token_2, token_3');
+    }
+
+    function it_exposes_list_of_tokens(TokenInterface $token)
+    {
+        $this->beConstructedWith(array($token));
+
+        $this->getTokens()->shouldReturn(array($token));
+    }
+
+    function it_returns_score_of_1_if_there_are_no_tokens_and_arguments()
+    {
+        $this->beConstructedWith(array());
+
+        $this->scoreArguments(array())->shouldReturn(1);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     * @param \Prophecy\Argument\Token\TokenInterface $token3
+     */
+    function it_should_return_match_score_based_on_all_tokens_score($token1, $token2, $token3)
+    {
+        $token1->scoreArgument('one')->willReturn(3);
+        $token1->isLast()->willReturn(false);
+        $token2->scoreArgument(2)->willReturn(5);
+        $token2->isLast()->willReturn(false);
+        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
+        $token3->isLast()->willReturn(false);
+
+        $this->beConstructedWith(array($token1, $token2, $token3));
+        $this->scoreArguments(array('one', 2, $obj))->shouldReturn(18);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     * @param \Prophecy\Argument\Token\TokenInterface $token3
+     */
+    function it_returns_false_if_there_is_less_arguments_than_tokens($token1, $token2, $token3)
+    {
+        $token1->scoreArgument('one')->willReturn(3);
+        $token1->isLast()->willReturn(false);
+        $token2->scoreArgument(2)->willReturn(5);
+        $token2->isLast()->willReturn(false);
+        $token3->scoreArgument(null)->willReturn(false);
+        $token3->isLast()->willReturn(false);
+
+        $this->beConstructedWith(array($token1, $token2, $token3));
+        $this->scoreArguments(array('one', 2))->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     * @param \Prophecy\Argument\Token\TokenInterface $token3
+     */
+    function it_returns_false_if_there_is_less_tokens_than_arguments($token1, $token2, $token3)
+    {
+        $token1->scoreArgument('one')->willReturn(3);
+        $token1->isLast()->willReturn(false);
+        $token2->scoreArgument(2)->willReturn(5);
+        $token2->isLast()->willReturn(false);
+        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
+        $token3->isLast()->willReturn(false);
+
+        $this->beConstructedWith(array($token1, $token2, $token3));
+        $this->scoreArguments(array('one', 2, $obj, 4))->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     * @param \Prophecy\Argument\Token\TokenInterface $token3
+     */
+    function it_should_return_false_if_one_of_the_tokens_returns_false($token1, $token2, $token3)
+    {
+        $token1->scoreArgument('one')->willReturn(3);
+        $token1->isLast()->willReturn(false);
+        $token2->scoreArgument(2)->willReturn(false);
+        $token2->isLast()->willReturn(false);
+        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
+        $token3->isLast()->willReturn(false);
+
+        $this->beConstructedWith(array($token1, $token2, $token3));
+        $this->scoreArguments(array('one', 2, $obj))->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     * @param \Prophecy\Argument\Token\TokenInterface $token3
+     */
+    function it_should_calculate_score_until_last_token($token1, $token2, $token3)
+    {
+        $token1->scoreArgument('one')->willReturn(3);
+        $token1->isLast()->willReturn(false);
+
+        $token2->scoreArgument(2)->willReturn(7);
+        $token2->isLast()->willReturn(true);
+
+        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
+        $token3->isLast()->willReturn(false);
+
+        $this->beConstructedWith(array($token1, $token2, $token3));
+        $this->scoreArguments(array('one', 2, $obj))->shouldReturn(10);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValueTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValueTokenSpec.php
new file mode 100644
index 000000000000..a43e923cf37f
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValueTokenSpec.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class AnyValueTokenSpec extends ObjectBehavior
+{
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function its_string_representation_is_star()
+    {
+        $this->__toString()->shouldReturn('*');
+    }
+
+    function it_scores_any_argument_as_3()
+    {
+        $this->scoreArgument(42)->shouldReturn(3);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValuesTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValuesTokenSpec.php
new file mode 100644
index 000000000000..c29076f59359
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValuesTokenSpec.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class AnyValuesTokenSpec extends ObjectBehavior
+{
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_last()
+    {
+        $this->shouldBeLast();
+    }
+
+    function its_string_representation_is_star_with_followup()
+    {
+        $this->__toString()->shouldReturn('* [, ...]');
+    }
+
+    function it_scores_any_argument_as_2()
+    {
+        $this->scoreArgument(42)->shouldReturn(2);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayCountTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayCountTokenSpec.php
new file mode 100644
index 000000000000..5d040d59c4e3
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayCountTokenSpec.php
@@ -0,0 +1,64 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class ArrayCountTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith(2);
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_scores_6_if_argument_array_has_proper_count()
+    {
+        $this->scoreArgument(array(1,2))->shouldReturn(6);
+    }
+
+    /**
+     * @param \Countable $countable
+     */
+    function it_scores_6_if_argument_countable_object_has_proper_count($countable)
+    {
+        $countable->count()->willReturn(2);
+        $this->scoreArgument($countable)->shouldReturn(6);
+    }
+
+    function it_does_not_score_if_argument_is_neither_array_nor_countable_object()
+    {
+        $this->scoreArgument('string')->shouldBe(false);
+        $this->scoreArgument(5)->shouldBe(false);
+        $this->scoreArgument(new \stdClass)->shouldBe(false);
+    }
+
+    function it_does_not_score_if_argument_array_has_wrong_count()
+    {
+        $this->scoreArgument(array(1))->shouldReturn(false);
+    }
+
+    /**
+     * @param \Countable $countable
+     */
+    function it_does_not_score_if_argument_countable_object_has_wrong_count($countable)
+    {
+        $countable->count()->willReturn(3);
+        $this->scoreArgument($countable)->shouldReturn(false);
+    }
+
+    function it_has_simple_string_representation()
+    {
+        $this->__toString()->shouldBe('count(2)');
+    }
+
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEntryTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEntryTokenSpec.php
new file mode 100644
index 000000000000..8ff0f158490d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEntryTokenSpec.php
@@ -0,0 +1,229 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+use Prophecy\Exception\InvalidArgumentException;
+
+class ArrayEntryTokenSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $key
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     */
+    function let($key, $value)
+    {
+        $this->beConstructedWith($key, $value);
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_holds_key_and_value($key, $value)
+    {
+        $this->getKey()->shouldBe($key);
+        $this->getValue()->shouldBe($value);
+    }
+
+    function its_string_representation_tells_that_its_an_array_containing_the_key_value_pair($key, $value)
+    {
+        $key->__toString()->willReturn('key');
+        $value->__toString()->willReturn('value');
+        $this->__toString()->shouldBe('[..., key => value, ...]');
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $key
+     * @param \stdClass                               $object
+     */
+    function it_wraps_non_token_value_into_ExactValueToken($key, $object)
+    {
+        $this->beConstructedWith($key, $object);
+        $this->getValue()->shouldHaveType('\Prophecy\Argument\Token\ExactValueToken');
+    }
+
+    /**
+     * @param \stdClass                               $object
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     */
+    function it_wraps_non_token_key_into_ExactValueToken($object, $value)
+    {
+        $this->beConstructedWith($object, $value);
+        $this->getKey()->shouldHaveType('\Prophecy\Argument\Token\ExactValueToken');
+    }
+
+    function it_scores_array_half_of_combined_scores_from_key_and_value_tokens($key, $value)
+    {
+        $key->scoreArgument('key')->willReturn(4);
+        $value->scoreArgument('value')->willReturn(6);
+        $this->scoreArgument(array('key'=>'value'))->shouldBe(5);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $key
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     * @param \Iterator                               $object
+     */
+    function it_scores_traversable_object_half_of_combined_scores_from_key_and_value_tokens($key, $value, $object)
+    {
+        $object->current()->will(function () use ($object) {
+            $object->valid()->willReturn(false);
+
+            return 'value';
+        });
+        $object->key()->willReturn('key');
+        $object->rewind()->willReturn(null);
+        $object->next()->willReturn(null);
+        $object->valid()->willReturn(true);
+        $key->scoreArgument('key')->willReturn(6);
+        $value->scoreArgument('value')->willReturn(2);
+        $this->scoreArgument($object)->shouldBe(4);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\AnyValuesToken $key
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     * @param \ArrayAccess                            $object
+     */
+    function it_throws_exception_during_scoring_of_array_accessible_object_if_key_is_not_ExactValueToken($key, $value, $object)
+    {
+        $key->__toString()->willReturn('any_token');
+        $this->beConstructedWith($key,$value);
+        $errorMessage = 'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL.
+                        'But you used `any_token`.';
+        $this->shouldThrow(new InvalidArgumentException($errorMessage))->duringScoreArgument($object);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\ExactValueToken $key
+     * @param \Prophecy\Argument\Token\TokenInterface  $value
+     * @param \ArrayAccess                             $object
+     */
+    function it_scores_array_accessible_object_half_of_combined_scores_from_key_and_value_tokens($key, $value, $object)
+    {
+        $object->offsetExists('key')->willReturn(true);
+        $object->offsetGet('key')->willReturn('value');
+        $key->getValue()->willReturn('key');
+        $key->scoreArgument('key')->willReturn(3);
+        $value->scoreArgument('value')->willReturn(1);
+        $this->scoreArgument($object)->shouldBe(2);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\AnyValuesToken $key
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     * @param \ArrayIterator                          $object
+     */
+    function it_accepts_any_key_token_type_to_score_object_that_is_both_traversable_and_array_accessible($key, $value, $object)
+    {
+        $this->beConstructedWith($key, $value);
+        $object->current()->will(function () use ($object) {
+            $object->valid()->willReturn(false);
+
+            return 'value';
+        });
+        $object->key()->willReturn('key');
+        $object->rewind()->willReturn(null);
+        $object->next()->willReturn(null);
+        $object->valid()->willReturn(true);
+        $this->shouldNotThrow(new InvalidArgumentException)->duringScoreArgument($object);
+    }
+
+    function it_does_not_score_if_argument_is_neither_array_nor_traversable_nor_array_accessible()
+    {
+        $this->scoreArgument('string')->shouldBe(false);
+        $this->scoreArgument(new \stdClass)->shouldBe(false);
+    }
+
+    function it_does_not_score_empty_array()
+    {
+        $this->scoreArgument(array())->shouldBe(false);
+    }
+
+    function it_does_not_score_array_if_key_and_value_tokens_do_not_score_same_entry($key, $value)
+    {
+        $argument = array(1 => 'foo', 2 => 'bar');
+        $key->scoreArgument(1)->willReturn(true);
+        $key->scoreArgument(2)->willReturn(false);
+        $value->scoreArgument('foo')->willReturn(false);
+        $value->scoreArgument('bar')->willReturn(true);
+        $this->scoreArgument($argument)->shouldBe(false);
+    }
+
+    /**
+     * @param \Iterator $object
+     */
+    function it_does_not_score_traversable_object_without_entries($object)
+    {
+        $object->rewind()->willReturn(null);
+        $object->next()->willReturn(null);
+        $object->valid()->willReturn(false);
+        $this->scoreArgument($object)->shouldBe(false);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $key
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     * @param \Iterator                               $object
+     */
+    function it_does_not_score_traversable_object_if_key_and_value_tokens_do_not_score_same_entry($key, $value, $object)
+    {
+        $object->current()->willReturn('foo');
+        $object->current()->will(function () use ($object) {
+            $object->valid()->willReturn(false);
+
+            return 'bar';
+        });
+        $object->key()->willReturn(1);
+        $object->key()->willReturn(2);
+        $object->rewind()->willReturn(null);
+        $object->next()->willReturn(null);
+        $object->valid()->willReturn(true);
+        $key->scoreArgument(1)->willReturn(true);
+        $key->scoreArgument(2)->willReturn(false);
+        $value->scoreArgument('foo')->willReturn(false);
+        $value->scoreArgument('bar')->willReturn(true);
+        $this->scoreArgument($object)->shouldBe(false);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\ExactValueToken $key
+     * @param \ArrayAccess                             $object
+     */
+    function it_does_not_score_array_accessible_object_if_it_has_no_offset_with_key_token_value($key, $object)
+    {
+        $object->offsetExists('key')->willReturn(false);
+        $key->getValue()->willReturn('key');
+        $this->scoreArgument($object)->shouldBe(false);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\ExactValueToken $key
+     * @param \Prophecy\Argument\Token\TokenInterface  $value
+     * @param \ArrayAccess                             $object
+     */
+    function it_does_not_score_array_accessible_object_if_key_and_value_tokens_do_not_score_same_entry($key, $value, $object)
+    {
+        $object->offsetExists('key')->willReturn(true);
+        $object->offsetGet('key')->willReturn('value');
+        $key->getValue()->willReturn('key');
+        $value->scoreArgument('value')->willReturn(false);
+        $key->scoreArgument('key')->willReturn(true);
+        $this->scoreArgument($object)->shouldBe(false);
+    }
+
+    function its_score_is_capped_at_8($key, $value)
+    {
+        $key->scoreArgument('key')->willReturn(10);
+        $value->scoreArgument('value')->willReturn(10);
+        $this->scoreArgument(array('key'=>'value'))->shouldBe(8);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEveryEntryTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEveryEntryTokenSpec.php
new file mode 100644
index 000000000000..8662e7d19597
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEveryEntryTokenSpec.php
@@ -0,0 +1,109 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class ArrayEveryEntryTokenSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     */
+    function let($value)
+    {
+        $this->beConstructedWith($value);
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_holds_value($value)
+    {
+        $this->getValue()->shouldBe($value);
+    }
+
+    function its_string_representation_tells_that_its_an_array_containing_only_value($value)
+    {
+        $value->__toString()->willReturn('value');
+        $this->__toString()->shouldBe('[value, ..., value]');
+    }
+
+    /**
+     * @param \stdClass $stdClass
+     */
+    function it_wraps_non_token_value_into_ExactValueToken($stdClass)
+    {
+        $this->beConstructedWith($stdClass);
+        $this->getValue()->shouldHaveType('Prophecy\Argument\Token\ExactValueToken');
+    }
+
+    function it_does_not_score_if_argument_is_neither_array_nor_traversable()
+    {
+        $this->scoreArgument('string')->shouldBe(false);
+        $this->scoreArgument(new \stdClass)->shouldBe(false);
+    }
+
+    function it_does_not_score_empty_array()
+    {
+        $this->scoreArgument(array())->shouldBe(false);
+    }
+
+    /**
+     * @param \Iterator $object
+     */
+    function it_does_not_score_traversable_object_without_entries($object)
+    {
+        $object->rewind()->willReturn(null);
+        $object->next()->willReturn(null);
+        $object->valid()->willReturn(false);
+        $this->scoreArgument($object)->shouldBe(false);
+    }
+
+    function it_scores_avg_of_scores_from_value_tokens($value)
+    {
+        $value->scoreArgument('value1')->willReturn(6);
+        $value->scoreArgument('value2')->willReturn(3);
+        $this->scoreArgument(array('value1', 'value2'))->shouldBe(4.5);
+    }
+
+    function it_scores_false_if_entry_scores_false($value)
+    {
+        $value->scoreArgument('value1')->willReturn(6);
+        $value->scoreArgument('value2')->willReturn(false);
+        $this->scoreArgument(array('value1', 'value2'))->shouldBe(false);
+    }
+
+    function it_does_not_score_array_keys($value)
+    {
+        $value->scoreArgument('value')->willReturn(6);
+        $value->scoreArgument('key')->shouldNotBeCalled(0);
+        $this->scoreArgument(array('key' => 'value'))->shouldBe(6);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $value
+     * @param \Iterator                               $object
+     */
+    function it_scores_traversable_object_from_value_token($value, $object)
+    {
+        $object->current()->will(function ($args, $object) {
+            $object->valid()->willReturn(false);
+
+            return 'value';
+        });
+        $object->key()->willReturn('key');
+        $object->rewind()->willReturn(null);
+        $object->next()->willReturn(null);
+        $object->valid()->willReturn(true);
+        $value->scoreArgument('value')->willReturn(2);
+        $this->scoreArgument($object)->shouldBe(2);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/CallbackTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/CallbackTokenSpec.php
new file mode 100644
index 000000000000..4395bf097de7
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/CallbackTokenSpec.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class CallbackTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('get_class');
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_scores_7_if_argument_matches_callback()
+    {
+        $this->beConstructedWith(function ($argument) { return 2 === $argument; });
+
+        $this->scoreArgument(2)->shouldReturn(7);
+    }
+
+    function it_does_not_scores_if_argument_does_not_match_callback()
+    {
+        $this->beConstructedWith(function ($argument) { return 2 === $argument; });
+
+        $this->scoreArgument(5)->shouldReturn(false);
+    }
+
+    function its_string_representation_should_tell_that_its_callback()
+    {
+        $this->__toString()->shouldReturn('callback()');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ExactValueTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ExactValueTokenSpec.php
new file mode 100644
index 000000000000..9e46e021f9ee
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ExactValueTokenSpec.php
@@ -0,0 +1,155 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class ExactValueTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith(42);
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_holds_value()
+    {
+        $this->getValue()->shouldReturn(42);
+    }
+
+    function it_scores_10_if_value_is_equal_to_argument()
+    {
+        $this->scoreArgument(42)->shouldReturn(10);
+        $this->scoreArgument('42')->shouldReturn(10);
+    }
+
+    function it_scores_10_if_value_is_an_object_and_equal_to_argument()
+    {
+        $value = new \DateTime();
+        $value2 = clone $value;
+
+        $this->beConstructedWith($value);
+        $this->scoreArgument($value2)->shouldReturn(10);
+    }
+
+    function it_does_not_scores_if_value_is_not_equal_to_argument()
+    {
+        $this->scoreArgument(50)->shouldReturn(false);
+        $this->scoreArgument(new \stdClass())->shouldReturn(false);
+    }
+
+    function it_does_not_scores_if_value_an_object_and_is_not_equal_to_argument()
+    {
+        $value = new ExactValueTokenFixtureB('ABC');
+        $value2 = new ExactValueTokenFixtureB('CBA');
+
+        $this->beConstructedWith($value);
+        $this->scoreArgument($value2)->shouldReturn(false);
+    }
+
+    function it_does_not_scores_if_value_type_and_is_not_equal_to_argument()
+    {
+        $this->beConstructedWith(false);
+        $this->scoreArgument(0)->shouldReturn(false);
+    }
+
+    function it_generates_proper_string_representation_for_integer()
+    {
+        $this->beConstructedWith(42);
+        $this->__toString()->shouldReturn('exact(42)');
+    }
+
+    function it_generates_proper_string_representation_for_string()
+    {
+        $this->beConstructedWith('some string');
+        $this->__toString()->shouldReturn('exact("some string")');
+    }
+
+    function it_generates_single_line_representation_for_multiline_string()
+    {
+        $this->beConstructedWith("some\nstring");
+        $this->__toString()->shouldReturn('exact("some\\nstring")');
+    }
+
+    function it_generates_proper_string_representation_for_double()
+    {
+        $this->beConstructedWith(42.3);
+        $this->__toString()->shouldReturn('exact(42.3)');
+    }
+
+    function it_generates_proper_string_representation_for_boolean_true()
+    {
+        $this->beConstructedWith(true);
+        $this->__toString()->shouldReturn('exact(true)');
+    }
+
+    function it_generates_proper_string_representation_for_boolean_false()
+    {
+        $this->beConstructedWith(false);
+        $this->__toString()->shouldReturn('exact(false)');
+    }
+
+    function it_generates_proper_string_representation_for_null()
+    {
+        $this->beConstructedWith(null);
+        $this->__toString()->shouldReturn('exact(null)');
+    }
+
+    function it_generates_proper_string_representation_for_empty_array()
+    {
+        $this->beConstructedWith(array());
+        $this->__toString()->shouldReturn('exact([])');
+    }
+
+    function it_generates_proper_string_representation_for_array()
+    {
+        $this->beConstructedWith(array('zet', 42));
+        $this->__toString()->shouldReturn('exact(["zet", 42])');
+    }
+
+    function it_generates_proper_string_representation_for_resource()
+    {
+        $resource = fopen(__FILE__, 'r');
+        $this->beConstructedWith($resource);
+        $this->__toString()->shouldReturn('exact(stream:'.$resource.')');
+    }
+
+    /**
+     * @param \stdClass $object
+     */
+    function it_generates_proper_string_representation_for_object($object)
+    {
+        $objHash = sprintf('%s:%s',
+            get_class($object->getWrappedObject()),
+            spl_object_hash($object->getWrappedObject())
+        );
+
+        $this->beConstructedWith($object);
+        $this->__toString()->shouldReturn("exact($objHash Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n))");
+    }
+}
+
+class ExactValueTokenFixtureA
+{
+    public $errors;
+}
+
+class ExactValueTokenFixtureB extends ExactValueTokenFixtureA
+{
+    public $errors;
+    public $value = null;
+
+    public function __construct($value)
+    {
+        $this->value = $value;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/IdenticalValueTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/IdenticalValueTokenSpec.php
new file mode 100644
index 000000000000..00c3a2157fc0
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/IdenticalValueTokenSpec.php
@@ -0,0 +1,152 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class IdenticalValueTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith(42);
+    }
+
+    function it_is_initializable()
+    {
+        $this->shouldHaveType('Prophecy\Argument\Token\IdenticalValueToken');
+    }
+
+    function it_scores_11_if_string_value_is_identical_to_argument()
+    {
+        $this->beConstructedWith('foo');
+        $this->scoreArgument('foo')->shouldReturn(11);
+    }
+
+    function it_scores_11_if_boolean_value_is_identical_to_argument()
+    {
+        $this->beConstructedWith(false);
+        $this->scoreArgument(false)->shouldReturn(11);
+    }
+
+    function it_scores_11_if_integer_value_is_identical_to_argument()
+    {
+        $this->beConstructedWith(31);
+        $this->scoreArgument(31)->shouldReturn(11);
+    }
+
+    function it_scores_11_if_float_value_is_identical_to_argument()
+    {
+        $this->beConstructedWith(31.12);
+        $this->scoreArgument(31.12)->shouldReturn(11);
+    }
+
+    function it_scores_11_if_array_value_is_identical_to_argument()
+    {
+        $this->beConstructedWith(array('foo' => 'bar'));
+        $this->scoreArgument(array('foo' => 'bar'))->shouldReturn(11);
+    }
+
+    function it_scores_11_if_object_value_is_identical_to_argument()
+    {
+        $object = new \stdClass();
+
+        $this->beConstructedWith($object);
+        $this->scoreArgument($object)->shouldReturn(11);
+    }
+
+    function it_scores_false_if_value_is_not_identical_to_argument()
+    {
+        $this->beConstructedWith(new \stdClass());
+        $this->scoreArgument('foo')->shouldReturn(false);
+    }
+
+    function it_scores_false_if_object_value_is_not_the_same_instance_than_argument()
+    {
+        $this->beConstructedWith(new \stdClass());
+        $this->scoreArgument(new \stdClass())->shouldReturn(false);
+    }
+
+    function it_scores_false_if_integer_value_is_not_identical_to_boolean_argument()
+    {
+        $this->beConstructedWith(1);
+        $this->scoreArgument(true)->shouldReturn(false);
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_generates_proper_string_representation_for_integer()
+    {
+        $this->beConstructedWith(42);
+        $this->__toString()->shouldReturn('identical(42)');
+    }
+
+    function it_generates_proper_string_representation_for_string()
+    {
+        $this->beConstructedWith('some string');
+        $this->__toString()->shouldReturn('identical("some string")');
+    }
+
+    function it_generates_single_line_representation_for_multiline_string()
+    {
+        $this->beConstructedWith("some\nstring");
+        $this->__toString()->shouldReturn('identical("some\\nstring")');
+    }
+
+    function it_generates_proper_string_representation_for_double()
+    {
+        $this->beConstructedWith(42.3);
+        $this->__toString()->shouldReturn('identical(42.3)');
+    }
+
+    function it_generates_proper_string_representation_for_boolean_true()
+    {
+        $this->beConstructedWith(true);
+        $this->__toString()->shouldReturn('identical(true)');
+    }
+
+    function it_generates_proper_string_representation_for_boolean_false()
+    {
+        $this->beConstructedWith(false);
+        $this->__toString()->shouldReturn('identical(false)');
+    }
+
+    function it_generates_proper_string_representation_for_null()
+    {
+        $this->beConstructedWith(null);
+        $this->__toString()->shouldReturn('identical(null)');
+    }
+
+    function it_generates_proper_string_representation_for_empty_array()
+    {
+        $this->beConstructedWith(array());
+        $this->__toString()->shouldReturn('identical([])');
+    }
+
+    function it_generates_proper_string_representation_for_array()
+    {
+        $this->beConstructedWith(array('zet', 42));
+        $this->__toString()->shouldReturn('identical(["zet", 42])');
+    }
+
+    function it_generates_proper_string_representation_for_resource()
+    {
+        $resource = fopen(__FILE__, 'r');
+        $this->beConstructedWith($resource);
+        $this->__toString()->shouldReturn('identical(stream:'.$resource.')');
+    }
+
+    function it_generates_proper_string_representation_for_object($object)
+    {
+        $objHash = sprintf('%s:%s',
+            get_class($object->getWrappedObject()),
+            spl_object_hash($object->getWrappedObject())
+        );
+
+        $this->beConstructedWith($object);
+        $this->__toString()->shouldReturn("identical($objHash Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n))");
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalAndTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalAndTokenSpec.php
new file mode 100644
index 000000000000..bb5e3840b76e
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalAndTokenSpec.php
@@ -0,0 +1,78 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class LogicalAndTokenSpec extends ObjectBehavior
+{
+    function it_implements_TokenInterface()
+    {
+        $this->beConstructedWith(array());
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->beConstructedWith(array());
+        $this->shouldNotBeLast();
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     * @param \Prophecy\Argument\Token\TokenInterface $token3
+     */
+    function it_generates_string_representation_from_all_tokens_imploded($token1, $token2, $token3)
+    {
+        $token1->__toString()->willReturn('token_1');
+        $token2->__toString()->willReturn('token_2');
+        $token3->__toString()->willReturn('token_3');
+
+        $this->beConstructedWith(array($token1, $token2, $token3));
+        $this->__toString()->shouldReturn('bool(token_1 AND token_2 AND token_3)');
+    }
+
+    function it_wraps_non_token_arguments_into_ExactValueToken()
+    {
+        $this->beConstructedWith(array(15, '1985'));
+        $this->__toString()->shouldReturn("bool(exact(15) AND exact(\"1985\"))");
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     */
+    function it_scores_the_maximum_score_from_all_scores_returned_by_tokens($token1, $token2)
+    {
+        $token1->scoreArgument(1)->willReturn(10);
+        $token2->scoreArgument(1)->willReturn(5);
+        $this->beConstructedWith(array($token1, $token2));
+        $this->scoreArgument(1)->shouldReturn(10);
+    }
+
+    function it_does_not_score_if_there_are_no_arguments_or_tokens()
+    {
+        $this->beConstructedWith(array());
+        $this->scoreArgument('any')->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token1
+     * @param \Prophecy\Argument\Token\TokenInterface $token2
+     */
+    function it_does_not_score_if_either_of_tokens_does_not_score($token1, $token2)
+    {
+        $token1->scoreArgument(1)->willReturn(10);
+        $token1->scoreArgument(2)->willReturn(false);
+
+        $token2->scoreArgument(1)->willReturn(false);
+        $token2->scoreArgument(2)->willReturn(10);
+
+        $this->beConstructedWith(array($token1, $token2));
+
+        $this->scoreArgument(1)->shouldReturn(false);
+        $this->scoreArgument(2)->shouldReturn(false);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalNotTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalNotTokenSpec.php
new file mode 100644
index 000000000000..7ce7f3d8faa9
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalNotTokenSpec.php
@@ -0,0 +1,65 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument\Token\TokenInterface;
+
+class LogicalNotTokenSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Argument\Token\TokenInterface $token
+     */
+    function let($token)
+    {
+        $this->beConstructedWith($token);
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_holds_originating_token($token)
+    {
+        $this->getOriginatingToken()->shouldReturn($token);
+    }
+
+    function it_has_simple_string_representation($token)
+    {
+        $token->__toString()->willReturn('value');
+        $this->__toString()->shouldBe('not(value)');
+    }
+
+    function it_wraps_non_token_argument_into_ExactValueToken()
+    {
+        $this->beConstructedWith(5);
+        $token = $this->getOriginatingToken();
+        $token->shouldhaveType('Prophecy\Argument\Token\ExactValueToken');
+        $token->getValue()->shouldBe(5);
+    }
+
+    function it_scores_4_if_preset_token_does_not_match_the_argument($token)
+    {
+        $token->scoreArgument('argument')->willReturn(false);
+        $this->scoreArgument('argument')->shouldBe(4);
+    }
+
+    function it_does_not_score_if_preset_token_matches_argument($token)
+    {
+        $token->scoreArgument('argument')->willReturn(5);
+        $this->scoreArgument('argument')->shouldBe(false);
+    }
+
+    function it_is_last_if_preset_token_is_last($token)
+    {
+        $token->isLast()->willReturn(true);
+        $this->shouldBeLast();
+    }
+
+    function it_is_not_last_if_preset_token_is_not_last($token)
+    {
+        $token->isLast()->willReturn(false);
+        $this->shouldNotBeLast();
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php
new file mode 100644
index 000000000000..a783a15fd1ed
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class ObjectStateTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('getName', 'stdClass');
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    /**
+     * @param \ReflectionClass $reflection
+     */
+    function it_scores_8_if_argument_object_has_specific_method_state($reflection)
+    {
+        $reflection->getName()->willReturn('stdClass');
+
+        $this->scoreArgument($reflection)->shouldReturn(8);
+    }
+
+    /**
+     * @param \stdClass $class
+     */
+    function it_scores_8_if_argument_object_has_specific_property_state($class)
+    {
+        $class->getName = 'stdClass';
+
+        $this->scoreArgument($class)->shouldReturn(8);
+    }
+
+    function it_does_not_score_if_argument_method_state_does_not_match()
+    {
+        $value = new ObjectStateTokenFixtureB('ABC');
+        $value2 = new ObjectStateTokenFixtureB('CBA');
+
+        $this->beConstructedWith('getSelf', $value);
+        $this->scoreArgument($value2)->shouldReturn(false);
+    }
+
+    /**
+     * @param \stdClass $class
+     */
+    function it_does_not_score_if_argument_property_state_does_not_match($class)
+    {
+        $class->getName = 'SplFileInfo';
+
+        $this->scoreArgument($class)->shouldReturn(false);
+    }
+
+    /**
+     * @param \spec\Prophecy\Argument\Token\ObjectStateTokenFixtureA $class
+     */
+    function it_does_not_score_if_argument_object_does_not_have_method_or_property($class)
+    {
+        $this->scoreArgument($class)->shouldReturn(false);
+    }
+
+    function it_does_not_score_if_argument_is_not_object()
+    {
+        $this->scoreArgument(42)->shouldReturn(false);
+    }
+
+    function it_has_simple_string_representation()
+    {
+        $this->__toString()->shouldReturn('state(getName(), "stdClass")');
+    }
+}
+
+class ObjectStateTokenFixtureA
+{
+    public $errors;
+}
+
+class ObjectStateTokenFixtureB extends ObjectStateTokenFixtureA
+{
+    public $errors;
+    public $value = null;
+
+    public function __construct($value)
+    {
+        $this->value = $value;
+    }
+
+    public function getSelf()
+    {
+        return $this;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/StringContainsTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/StringContainsTokenSpec.php
new file mode 100644
index 000000000000..c7fd26523196
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/StringContainsTokenSpec.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class StringContainsTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('a substring');
+    }
+
+    function it_is_initializable()
+    {
+        $this->shouldHaveType('Prophecy\Argument\Token\StringContainsToken');
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_holds_value()
+    {
+        $this->getValue()->shouldReturn('a substring');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_scores_6_if_the_argument_contains_the_value()
+    {
+        $this->scoreArgument('Argument containing a substring')->shouldReturn(6);
+    }
+
+    function it_does_not_score_if_the_argument_does_not_contain_the_value()
+    {
+        $this->scoreArgument('Argument will not match')->shouldReturn(false);
+    }
+
+    function its_string_representation_shows_substring()
+    {
+        $this->__toString()->shouldReturn('contains("a substring")');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/TypeTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/TypeTokenSpec.php
new file mode 100644
index 000000000000..f9a9507dd5e8
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/TypeTokenSpec.php
@@ -0,0 +1,59 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class TypeTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('integer');
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_scores_5_if_argument_matches_simple_type()
+    {
+        $this->beConstructedWith('integer');
+
+        $this->scoreArgument(42)->shouldReturn(5);
+    }
+
+    function it_does_not_scores_if_argument_does_not_match_simple_type()
+    {
+        $this->beConstructedWith('integer');
+
+        $this->scoreArgument(42.0)->shouldReturn(false);
+    }
+
+    /**
+     * @param \ReflectionObject $object
+     */
+    function it_scores_5_if_argument_is_an_instance_of_specified_class($object)
+    {
+        $this->beConstructedWith('ReflectionClass');
+
+        $this->scoreArgument($object)->shouldReturn(5);
+    }
+
+    function it_has_simple_string_representation()
+    {
+        $this->__toString()->shouldReturn('type(integer)');
+    }
+
+    function it_scores_5_if_argument_is_an_instance_of_specified_interface(\Prophecy\Argument\Token\TokenInterface $interface)
+    {
+        $this->beConstructedWith('Prophecy\Argument\Token\TokenInterface');
+
+        $this->scoreArgument($interface)->shouldReturn(5);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/ArgumentSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/ArgumentSpec.php
new file mode 100644
index 000000000000..990aa80a34d4
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/ArgumentSpec.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace spec\Prophecy;
+
+use PhpSpec\ObjectBehavior;
+
+class ArgumentSpec extends ObjectBehavior
+{
+    function it_has_a_shortcut_for_exact_argument_token()
+    {
+        $token = $this->exact(42);
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ExactValueToken');
+        $token->getValue()->shouldReturn(42);
+    }
+
+    function it_has_a_shortcut_for_any_argument_token()
+    {
+        $token = $this->any();
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\AnyValueToken');
+    }
+
+    function it_has_a_shortcut_for_multiple_arguments_token()
+    {
+        $token = $this->cetera();
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\AnyValuesToken');
+    }
+
+    function it_has_a_shortcut_for_type_token()
+    {
+        $token = $this->type('integer');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\TypeToken');
+    }
+
+    function it_has_a_shortcut_for_callback_token()
+    {
+        $token = $this->that('get_class');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\CallbackToken');
+    }
+
+    function it_has_a_shortcut_for_object_state_token()
+    {
+        $token = $this->which('getName', 'everzet');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ObjectStateToken');
+    }
+
+    function it_has_a_shortcut_for_logical_and_token()
+    {
+        $token = $this->allOf('integer', 5);
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\LogicalAndToken');
+    }
+
+    function it_has_a_shortcut_for_array_count_token()
+    {
+        $token = $this->size(5);
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayCountToken');
+    }
+
+    function it_has_a_shortcut_for_array_entry_token()
+    {
+        $token = $this->withEntry('key', 'value');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEntryToken');
+    }
+
+    function it_has_a_shortcut_for_array_every_entry_token()
+    {
+        $token = $this->withEveryEntry('value');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEveryEntryToken');
+    }
+
+    function it_has_a_shortcut_for_identical_value_token()
+    {
+        $token = $this->is('value');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\IdenticalValueToken');
+    }
+
+    function it_has_a_shortcut_for_array_entry_token_matching_any_key()
+    {
+        $token = $this->containing('value');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEntryToken');
+        $token->getKey()->shouldHaveType('Prophecy\Argument\Token\AnyValueToken');
+    }
+
+    function it_has_a_shortcut_for_array_entry_token_matching_any_value()
+    {
+        $token = $this->withKey('key');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEntryToken');
+        $token->getValue()->shouldHaveType('Prophecy\Argument\Token\AnyValueToken');
+    }
+
+    function it_has_a_shortcut_for_logical_not_token()
+    {
+        $token = $this->not('kagux');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\LogicalNotToken');
+    }
+
+    function it_has_a_shortcut_for_string_contains_token()
+    {
+        $token = $this->containingString('string');
+        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\StringContainsToken');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallCenterSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallCenterSpec.php
new file mode 100644
index 000000000000..e9b91c859fc1
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallCenterSpec.php
@@ -0,0 +1,188 @@
+<?php
+
+namespace spec\Prophecy\Call;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Argument\ArgumentsWildcard;
+
+class CallCenterSpec extends ObjectBehavior
+{
+    function let(ObjectProphecy $objectProphecy)
+    {
+    }
+
+    function it_records_calls_made_through_makeCall_method(ObjectProphecy $objectProphecy, ArgumentsWildcard $wildcard)
+    {
+        $wildcard->scoreArguments(array(5, 2, 3))->willReturn(10);
+        $objectProphecy->getMethodProphecies()->willReturn(array());
+
+        $this->makeCall($objectProphecy, 'setValues', array(5, 2, 3));
+
+        $calls = $this->findCalls('setValues', $wildcard);
+        $calls->shouldHaveCount(1);
+
+        $calls[0]->shouldBeAnInstanceOf('Prophecy\Call\Call');
+        $calls[0]->getMethodName()->shouldReturn('setValues');
+        $calls[0]->getArguments()->shouldReturn(array(5, 2, 3));
+        $calls[0]->getReturnValue()->shouldReturn(null);
+    }
+
+    function it_returns_null_for_any_call_through_makeCall_if_no_method_prophecies_added(
+        $objectProphecy
+    )
+    {
+        $objectProphecy->getMethodProphecies()->willReturn(array());
+
+        $this->makeCall($objectProphecy, 'setValues', array(5, 2, 3))->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $method1
+     * @param \Prophecy\Prophecy\MethodProphecy    $method2
+     * @param \Prophecy\Prophecy\MethodProphecy    $method3
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments1
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments2
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments3
+     * @param \Prophecy\Promise\PromiseInterface   $promise
+     */
+    function it_executes_promise_of_method_prophecy_that_matches_signature_passed_to_makeCall(
+        $objectProphecy, $method1, $method2, $method3, $arguments1, $arguments2, $arguments3,
+        $promise
+    )
+    {
+        $method1->getMethodName()->willReturn('getName');
+        $method1->getArgumentsWildcard()->willReturn($arguments1);
+        $arguments1->scoreArguments(array('world', 'everything'))->willReturn(false);
+
+        $method2->getMethodName()->willReturn('setTitle');
+        $method2->getArgumentsWildcard()->willReturn($arguments2);
+        $arguments2->scoreArguments(array('world', 'everything'))->willReturn(false);
+
+        $method3->getMethodName()->willReturn('getName');
+        $method3->getArgumentsWildcard()->willReturn($arguments3);
+        $method3->getPromise()->willReturn($promise);
+        $arguments3->scoreArguments(array('world', 'everything'))->willReturn(200);
+
+        $objectProphecy->getMethodProphecies()->willReturn(array(
+            'method1' => array($method1),
+            'method2' => array($method2, $method3)
+        ));
+        $objectProphecy->getMethodProphecies('getName')->willReturn(array($method1, $method3));
+        $objectProphecy->reveal()->willReturn(new \stdClass());
+
+        $promise->execute(array('world', 'everything'), $objectProphecy->getWrappedObject(), $method3)->willReturn(42);
+
+        $this->makeCall($objectProphecy, 'getName', array('world', 'everything'))->shouldReturn(42);
+
+        $calls = $this->findCalls('getName', $arguments3);
+        $calls->shouldHaveCount(1);
+        $calls[0]->getReturnValue()->shouldReturn(42);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $method1
+     * @param \Prophecy\Prophecy\MethodProphecy    $method2
+     * @param \Prophecy\Prophecy\MethodProphecy    $method3
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments1
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments2
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments3
+     * @param \Prophecy\Promise\PromiseInterface   $promise
+     */
+    function it_executes_promise_of_method_prophecy_that_matches_with_highest_score_to_makeCall(
+        $objectProphecy, $method1, $method2, $method3, $arguments1, $arguments2, $arguments3,
+        $promise
+    )
+    {
+        $method1->getMethodName()->willReturn('getName');
+        $method1->getArgumentsWildcard()->willReturn($arguments1);
+        $arguments1->scoreArguments(array('world', 'everything'))->willReturn(50);
+
+        $method2->getMethodName()->willReturn('getName');
+        $method2->getArgumentsWildcard()->willReturn($arguments2);
+        $method2->getPromise()->willReturn($promise);
+        $arguments2->scoreArguments(array('world', 'everything'))->willReturn(300);
+
+        $method3->getMethodName()->willReturn('getName');
+        $method3->getArgumentsWildcard()->willReturn($arguments3);
+        $arguments3->scoreArguments(array('world', 'everything'))->willReturn(200);
+
+        $objectProphecy->getMethodProphecies()->willReturn(array(
+            'method1' => array($method1),
+            'method2' => array($method2, $method3)
+        ));
+        $objectProphecy->getMethodProphecies('getName')->willReturn(array(
+            $method1, $method2, $method3
+        ));
+        $objectProphecy->reveal()->willReturn(new \stdClass());
+
+        $promise->execute(array('world', 'everything'), $objectProphecy->getWrappedObject(), $method2)
+            ->willReturn('second');
+
+        $this->makeCall($objectProphecy, 'getName', array('world', 'everything'))
+            ->shouldReturn('second');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $method
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
+     */
+    function it_throws_exception_if_call_does_not_match_any_of_defined_method_prophecies(
+        $objectProphecy, $method, $arguments
+    )
+    {
+        $method->getMethodName()->willReturn('getName');
+        $method->getArgumentsWildcard()->willReturn($arguments);
+        $arguments->scoreArguments(array('world', 'everything'))->willReturn(false);
+        $arguments->__toString()->willReturn('arg1, arg2');
+
+        $objectProphecy->getMethodProphecies()->willReturn(array('method1' => array($method)));
+        $objectProphecy->getMethodProphecies('getName')->willReturn(array($method));
+
+        $this->shouldThrow('Prophecy\Exception\Call\UnexpectedCallException')
+            ->duringMakeCall($objectProphecy, 'getName', array('world', 'everything'));
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $method
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
+     */
+    function it_returns_null_if_method_prophecy_that_matches_makeCall_arguments_has_no_promise(
+        $objectProphecy, $method, $arguments
+    )
+    {
+        $method->getMethodName()->willReturn('getName');
+        $method->getArgumentsWildcard()->willReturn($arguments);
+        $method->getPromise()->willReturn(null);
+        $arguments->scoreArguments(array('world', 'everything'))->willReturn(100);
+
+        $objectProphecy->getMethodProphecies()->willReturn(array($method));
+        $objectProphecy->getMethodProphecies('getName')->willReturn(array($method));
+
+        $this->makeCall($objectProphecy, 'getName', array('world', 'everything'))
+            ->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
+     */
+    function it_finds_recorded_calls_by_a_method_name_and_arguments_wildcard(
+        $objectProphecy, $wildcard
+    )
+    {
+        $objectProphecy->getMethodProphecies()->willReturn(array());
+
+        $this->makeCall($objectProphecy, 'getName', array('world'));
+        $this->makeCall($objectProphecy, 'getName', array('everything'));
+        $this->makeCall($objectProphecy, 'setName', array(42));
+
+        $wildcard->scoreArguments(array('world'))->willReturn(false);
+        $wildcard->scoreArguments(array('everything'))->willReturn(10);
+
+        $calls = $this->findCalls('getName', $wildcard);
+
+        $calls->shouldHaveCount(1);
+        $calls[0]->getMethodName()->shouldReturn('getName');
+        $calls[0]->getArguments()->shouldReturn(array('everything'));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallSpec.php
new file mode 100644
index 000000000000..d1a8539198bd
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallSpec.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace spec\Prophecy\Call;
+
+use PhpSpec\ObjectBehavior;
+
+class CallSpec extends ObjectBehavior
+{
+    /**
+     * @param \Exception $exception
+     */
+    function let($exception)
+    {
+        $this->beConstructedWith('setValues', array(5, 2), 42, $exception, 'some_file.php', 23);
+    }
+
+    function it_exposes_method_name_through_getter()
+    {
+        $this->getMethodName()->shouldReturn('setValues');
+    }
+
+    function it_exposes_arguments_through_getter()
+    {
+        $this->getArguments()->shouldReturn(array(5, 2));
+    }
+
+    function it_exposes_return_value_through_getter()
+    {
+        $this->getReturnValue()->shouldReturn(42);
+    }
+
+    function it_exposes_exception_through_getter($exception)
+    {
+        $this->getException()->shouldReturn($exception);
+    }
+
+    function it_exposes_file_and_line_through_getter()
+    {
+        $this->getFile()->shouldReturn('some_file.php');
+        $this->getLine()->shouldReturn(23);
+    }
+
+    function it_returns_shortpath_to_callPlace()
+    {
+        $this->getCallPlace()->shouldReturn('some_file.php:23');
+    }
+
+    function it_returns_unknown_as_callPlace_if_no_file_or_line_provided()
+    {
+        $this->beConstructedWith('setValues', array(), 0, null, null, null);
+
+        $this->getCallPlace()->shouldReturn('unknown');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php
new file mode 100644
index 000000000000..2d7d934dc353
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php
@@ -0,0 +1,59 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class DisableConstructorPatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    function its_priority_is_100()
+    {
+        $this->getPriority()->shouldReturn(100);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_supports_anything($node)
+    {
+        $this->supports($node)->shouldReturn(true);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg1
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg2
+     */
+    function it_makes_all_constructor_arguments_optional($class, $method, $arg1, $arg2)
+    {
+        $class->hasMethod('__construct')->willReturn(true);
+        $class->getMethod('__construct')->willReturn($method);
+        $method->getArguments()->willReturn(array($arg1, $arg2));
+
+        $arg1->setDefault(null)->shouldBeCalled();
+        $arg2->setDefault(null)->shouldBeCalled();
+
+        $method->setCode(Argument::type('string'))->shouldBeCalled();
+
+        $this->apply($class);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
+     */
+    function it_creates_new_constructor_if_object_has_none($class)
+    {
+        $class->hasMethod('__construct')->willReturn(false);
+        $class->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))
+            ->shouldBeCalled();
+
+        $this->apply($class);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/HhvmExceptionPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/HhvmExceptionPatchSpec.php
new file mode 100644
index 000000000000..8c348b86f18c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/HhvmExceptionPatchSpec.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class HhvmExceptionPatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    function its_priority_is_minus_50()
+    {
+        $this->getPriority()->shouldReturn(-50);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $getterMethod
+     */
+    function it_uses_parent_code_for_setTraceOptions($node, $method, $getterMethod)
+    {
+        $node->hasMethod('setTraceOptions')->willReturn(true);
+        $node->getMethod('setTraceOptions')->willReturn($method);
+        $node->hasMethod('getTraceOptions')->willReturn(true);
+        $node->getMethod('getTraceOptions')->willReturn($getterMethod);
+
+        $method->useParentCode()->shouldBeCalled();
+        $getterMethod->useParentCode()->shouldBeCalled();
+
+        $this->apply($node);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/KeywordPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/KeywordPatchSpec.php
new file mode 100644
index 000000000000..200d96192feb
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/KeywordPatchSpec.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+use Prophecy\Doubler\Generator\Node\MethodNode;
+
+class KeywordPatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    function its_priority_is_49()
+    {
+        $this->getPriority()->shouldReturn(49);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method1
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method2
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method3
+     */
+    function it_will_remove_echo_and_eval_methods($node, $method1, $method2, $method3)
+    {
+        $node->removeMethod('eval')->shouldBeCalled();
+        $node->removeMethod('echo')->shouldBeCalled();
+
+        $method1->getName()->willReturn('echo');
+        $method2->getName()->willReturn('eval');
+        $method3->getName()->willReturn('notKeyword');
+
+        $node->getMethods()->willReturn(array(
+            'echo' => $method1,
+            'eval' => $method2,
+            'notKeyword' => $method3,
+        ));
+
+        $this->apply($node);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/MagicCallPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/MagicCallPatchSpec.php
new file mode 100644
index 000000000000..cb1d0f0196b5
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/MagicCallPatchSpec.php
@@ -0,0 +1,76 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+use Prophecy\Doubler\Generator\Node\MethodNode;
+
+class MagicCallPatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_supports_anything($node)
+    {
+        $this->supports($node)->shouldReturn(true);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_discovers_api_using_phpdoc($node)
+    {
+        $node->getParentClass()->willReturn('spec\Prophecy\Doubler\ClassPatch\MagicalApi');
+
+        $node->addMethod(new MethodNode('undefinedMethod'))->shouldBeCalled();
+
+        $this->apply($node);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_ignores_existing_methods($node)
+    {
+        $node->getParentClass()->willReturn('spec\Prophecy\Doubler\ClassPatch\MagicalApiExtended');
+
+        $node->addMethod(new MethodNode('undefinedMethod'))->shouldBeCalled();
+        $node->addMethod(new MethodNode('definedMethod'))->shouldNotBeCalled();
+
+        $this->apply($node);
+    }
+
+    function it_has_50_priority()
+    {
+        $this->getPriority()->shouldReturn(50);
+    }
+}
+
+/**
+ * @method void undefinedMethod()
+ */
+class MagicalApi
+{
+    /**
+     * @return void
+     */
+    public function definedMethod()
+    {
+
+    }
+}
+
+/**
+ * @method void undefinedMethod()
+ * @method void definedMethod()
+ */
+class MagicalApiExtended extends MagicalApi
+{
+
+}
\ No newline at end of file
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ProphecySubjectPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ProphecySubjectPatchSpec.php
new file mode 100644
index 000000000000..c460814cf2e6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ProphecySubjectPatchSpec.php
@@ -0,0 +1,83 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class ProphecySubjectPatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    function it_has_priority_of_0()
+    {
+        $this->getPriority()->shouldReturn(0);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_supports_any_class($node)
+    {
+        $this->supports($node)->shouldReturn(true);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_forces_class_to_implement_ProphecySubjectInterface($node)
+    {
+        $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface')->shouldBeCalled();
+
+        $node->addProperty('objectProphecy', 'private')->willReturn(null);
+        $node->getMethods()->willReturn(array());
+        $node->hasMethod(Argument::any())->willReturn(false);
+        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
+        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
+
+        $this->apply($node);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $constructor
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method1
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method2
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method3
+     */
+    function it_forces_all_class_methods_except_constructor_to_proxy_calls_into_prophecy_makeCall(
+        $node, $constructor, $method1, $method2, $method3
+    )
+    {
+        $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface')->willReturn(null);
+        $node->addProperty('objectProphecy', 'private')->willReturn(null);
+        $node->hasMethod(Argument::any())->willReturn(false);
+        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
+        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
+
+        $constructor->getName()->willReturn('__construct');
+        $method1->getName()->willReturn('method1');
+        $method2->getName()->willReturn('method2');
+        $method3->getName()->willReturn('method3');
+
+        $node->getMethods()->willReturn(array(
+            'method1' => $method1,
+            'method2' => $method2,
+            'method3' => $method3,
+        ));
+
+        $constructor->setCode(Argument::any())->shouldNotBeCalled();
+
+        $method1->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')
+            ->shouldBeCalled();
+        $method2->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')
+            ->shouldBeCalled();
+        $method3->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')
+            ->shouldBeCalled();
+
+        $this->apply($node);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatchSpec.php
new file mode 100644
index 000000000000..4116e4dff33b
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatchSpec.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class ReflectionClassNewInstancePatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    function its_priority_is_50()
+    {
+        $this->getPriority()->shouldReturn(50);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $reflectionClassNode
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $anotherClassNode
+     */
+    function it_supports_ReflectionClass_only($reflectionClassNode, $anotherClassNode)
+    {
+        $reflectionClassNode->getParentClass()->willReturn('ReflectionClass');
+        $anotherClassNode->getParentClass()->willReturn('stdClass');
+
+        $this->supports($reflectionClassNode)->shouldReturn(true);
+        $this->supports($anotherClassNode)->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg1
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg2
+     */
+    function it_makes_all_newInstance_arguments_optional($class, $method, $arg1, $arg2)
+    {
+        $class->getMethod('newInstance')->willReturn($method);
+        $method->getArguments()->willReturn(array($arg1));
+        $arg1->setDefault(null)->shouldBeCalled();
+
+        $this->apply($class);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php
new file mode 100644
index 000000000000..37fe82f639d7
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php
@@ -0,0 +1,91 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class SplFileInfoPatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    function its_priority_is_50()
+    {
+        $this->getPriority()->shouldReturn(50);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_does_not_support_nodes_without_parent_class($node)
+    {
+        $node->getParentClass()->willReturn('stdClass');
+        $this->supports($node)->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_supports_nodes_with_SplFileInfo_as_parent_class($node)
+    {
+        $node->getParentClass()->willReturn('SplFileInfo');
+        $this->supports($node)->shouldReturn(true);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_supports_nodes_with_derivative_of_SplFileInfo_as_parent_class($node)
+    {
+        $node->getParentClass()->willReturn('SplFileInfo');
+        $this->supports($node)->shouldReturn(true);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_adds_a_method_to_node_if_not_exists($node)
+    {
+        $node->hasMethod('__construct')->willReturn(false);
+        $node->addMethod(Argument::any())->shouldBeCalled();
+        $node->getParentClass()->shouldBeCalled();
+
+        $this->apply($node);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
+     */
+    function it_updates_existing_method_if_found($node, $method)
+    {
+        $node->hasMethod('__construct')->willReturn(true);
+        $node->getMethod('__construct')->willReturn($method);
+        $node->getParentClass()->shouldBeCalled();
+
+        $method->useParentCode()->shouldBeCalled();
+
+        $this->apply($node);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
+     */
+    function it_should_not_supply_a_file_for_a_directory_iterator($node, $method)
+    {
+        $node->hasMethod('__construct')->willReturn(true);
+        $node->getMethod('__construct')->willReturn($method);
+        $node->getParentClass()->willReturn('DirectoryIterator');
+
+        $method->setCode(Argument::that(function($value) {
+            return strpos($value, '.php') === false;
+        }))->shouldBeCalled();
+
+        $this->apply($node);
+    }
+
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php
new file mode 100644
index 000000000000..2279b7202fc6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace spec\Prophecy\Doubler\ClassPatch;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class TraversablePatchSpec extends ObjectBehavior
+{
+    function it_is_a_patch()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_supports_class_that_implements_only_Traversable($node)
+    {
+        $node->getInterfaces()->willReturn(array('Traversable'));
+
+        $this->supports($node)->shouldReturn(true);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_does_not_support_class_that_implements_Iterator($node)
+    {
+        $node->getInterfaces()->willReturn(array('Traversable', 'Iterator'));
+
+        $this->supports($node)->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_does_not_support_class_that_implements_IteratorAggregate($node)
+    {
+        $node->getInterfaces()->willReturn(array('Traversable', 'IteratorAggregate'));
+
+        $this->supports($node)->shouldReturn(false);
+    }
+
+    function it_has_100_priority()
+    {
+        $this->getPriority()->shouldReturn(100);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_forces_node_to_implement_IteratorAggregate($node)
+    {
+        $node->addInterface('Iterator')->shouldBeCalled();
+
+        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
+
+        $this->apply($node);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/DoublerSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/DoublerSpec.php
new file mode 100644
index 000000000000..a39fa87f9fbe
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/DoublerSpec.php
@@ -0,0 +1,122 @@
+<?php
+
+namespace spec\Prophecy\Doubler;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class DoublerSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Doubler\Generator\ClassMirror  $mirror
+     * @param \Prophecy\Doubler\Generator\ClassCreator $creator
+     * @param \Prophecy\Doubler\NameGenerator          $namer
+     */
+    function let($mirror, $creator, $namer)
+    {
+        $this->beConstructedWith($mirror, $creator, $namer);
+    }
+
+    function it_does_not_have_patches_by_default()
+    {
+        $this->getClassPatches()->shouldHaveCount(0);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $patch
+     */
+    function its_registerClassPatch_adds_a_patch_to_the_doubler($patch)
+    {
+        $this->registerClassPatch($patch);
+        $this->getClassPatches()->shouldReturn(array($patch));
+    }
+
+    /**
+     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt1
+     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt2
+     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt3
+     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt4
+     */
+    function its_getClassPatches_sorts_patches_by_priority($alt1, $alt2, $alt3, $alt4)
+    {
+        $alt1->getPriority()->willReturn(2);
+        $alt2->getPriority()->willReturn(50);
+        $alt3->getPriority()->willReturn(10);
+        $alt4->getPriority()->willReturn(0);
+
+        $this->registerClassPatch($alt1);
+        $this->registerClassPatch($alt2);
+        $this->registerClassPatch($alt3);
+        $this->registerClassPatch($alt4);
+
+        $this->getClassPatches()->shouldReturn(array($alt2, $alt3, $alt1, $alt4));
+    }
+
+    /**
+     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt1
+     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt2
+     * @param \ReflectionClass                                 $class
+     * @param \ReflectionClass                                 $interface1
+     * @param \ReflectionClass                                 $interface2
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode       $node
+     */
+    function its_double_mirrors_alterates_and_instantiates_provided_class(
+        $mirror, $creator, $namer, $alt1, $alt2, $class, $interface1, $interface2, $node
+    )
+    {
+        $mirror->reflect($class, array($interface1, $interface2))->willReturn($node);
+        $alt1->supports($node)->willReturn(true);
+        $alt2->supports($node)->willReturn(false);
+        $alt1->getPriority()->willReturn(1);
+        $alt2->getPriority()->willReturn(2);
+        $namer->name($class, array($interface1, $interface2))->willReturn('SplStack');
+        $class->getName()->willReturn('stdClass');
+        $interface1->getName()->willReturn('ArrayAccess');
+        $interface2->getName()->willReturn('Iterator');
+
+        $alt1->apply($node)->shouldBeCalled();
+        $alt2->apply($node)->shouldNotBeCalled();
+        $creator->create('SplStack', $node)->shouldBeCalled();
+
+        $this->registerClassPatch($alt1);
+        $this->registerClassPatch($alt2);
+
+        $this->double($class, array($interface1, $interface2))
+            ->shouldReturnAnInstanceOf('SplStack');
+    }
+
+    /**
+     * @param \ReflectionClass                           $class
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_double_instantiates_a_class_with_constructor_argument($mirror, $class, $node, $namer)
+    {
+        $class->getName()->willReturn('ReflectionClass');
+        $mirror->reflect($class, array())->willReturn($node);
+        $namer->name($class, array())->willReturn('ReflectionClass');
+
+        $double = $this->double($class, array(), array('stdClass'));
+        $double->shouldBeAnInstanceOf('ReflectionClass');
+        $double->getName()->shouldReturn('stdClass');
+    }
+
+    /**
+     * @param \ReflectionClass                           $class
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function it_can_instantiate_class_with_final_constructor($mirror, $class, $node, $namer)
+    {
+        $class->getName()->willReturn('spec\Prophecy\Doubler\WithFinalConstructor');
+        $mirror->reflect($class, array())->willReturn($node);
+        $namer->name($class, array())->willReturn('spec\Prophecy\Doubler\WithFinalConstructor');
+
+        $double = $this->double($class, array());
+
+        $double->shouldBeAnInstanceOf('spec\Prophecy\Doubler\WithFinalConstructor');
+    }
+}
+
+class WithFinalConstructor
+{
+    final public function __construct() {}
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php
new file mode 100644
index 000000000000..1dc8cda36097
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php
@@ -0,0 +1,186 @@
+<?php
+
+namespace spec\Prophecy\Doubler\Generator;
+
+use PhpSpec\ObjectBehavior;
+
+class ClassCodeGeneratorSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method1
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method2
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method3
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument11
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument12
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument21
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument31
+     */
+    function it_generates_proper_php_code_for_specific_ClassNode(
+        $class, $method1, $method2, $method3, $argument11, $argument12, $argument21, $argument31
+    )
+    {
+        $class->getParentClass()->willReturn('RuntimeException');
+        $class->getInterfaces()->willReturn(array(
+            'Prophecy\Doubler\Generator\MirroredInterface', 'ArrayAccess', 'ArrayIterator'
+        ));
+        $class->getProperties()->willReturn(array('name' => 'public', 'email' => 'private'));
+        $class->getMethods()->willReturn(array($method1, $method2, $method3));
+
+        $method1->getName()->willReturn('getName');
+        $method1->getVisibility()->willReturn('public');
+        $method1->returnsReference()->willReturn(false);
+        $method1->isStatic()->willReturn(true);
+        $method1->getArguments()->willReturn(array($argument11, $argument12));
+        $method1->getCode()->willReturn('return $this->name;');
+
+        $method2->getName()->willReturn('getEmail');
+        $method2->getVisibility()->willReturn('protected');
+        $method2->returnsReference()->willReturn(false);
+        $method2->isStatic()->willReturn(false);
+        $method2->getArguments()->willReturn(array($argument21));
+        $method2->getCode()->willReturn('return $this->email;');
+
+        $method3->getName()->willReturn('getRefValue');
+        $method3->getVisibility()->willReturn('public');
+        $method3->returnsReference()->willReturn(true);
+        $method3->isStatic()->willReturn(false);
+        $method3->getArguments()->willReturn(array($argument31));
+        $method3->getCode()->willReturn('return $this->refValue;');
+
+        $argument11->getName()->willReturn('fullname');
+        $argument11->getTypeHint()->willReturn('array');
+        $argument11->isOptional()->willReturn(true);
+        $argument11->getDefault()->willReturn(null);
+        $argument11->isPassedByReference()->willReturn(false);
+
+        $argument12->getName()->willReturn('class');
+        $argument12->getTypeHint()->willReturn('ReflectionClass');
+        $argument12->isOptional()->willReturn(false);
+        $argument12->isPassedByReference()->willReturn(false);
+
+        $argument21->getName()->willReturn('default');
+        $argument21->getTypeHint()->willReturn(null);
+        $argument21->isOptional()->willReturn(true);
+        $argument21->getDefault()->willReturn('ever.zet@gmail.com');
+        $argument21->isPassedByReference()->willReturn(false);
+
+        $argument31->getName()->willReturn('refValue');
+        $argument31->getTypeHint()->willReturn(null);
+        $argument31->isOptional()->willReturn(false);
+        $argument31->getDefault()->willReturn();
+        $argument31->isPassedByReference()->willReturn(false);
+
+        $code = $this->generate('CustomClass', $class);
+        $expected = <<<'PHP'
+namespace  {
+class CustomClass extends \RuntimeException implements \Prophecy\Doubler\Generator\MirroredInterface, \ArrayAccess, \ArrayIterator {
+public $name;
+private $email;
+
+public static function getName(array $fullname = NULL, \ReflectionClass $class) {
+return $this->name;
+}
+protected  function getEmail( $default = 'ever.zet@gmail.com') {
+return $this->email;
+}
+public  function &getRefValue( $refValue) {
+return $this->refValue;
+}
+
+}
+}
+PHP;
+        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
+        $code->shouldBe($expected);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument
+     */
+    function it_overrides_properly_methods_with_args_passed_by_reference(
+        $class, $method, $argument
+    )
+    {
+        $class->getParentClass()->willReturn('RuntimeException');
+        $class->getInterfaces()->willReturn(array('Prophecy\Doubler\Generator\MirroredInterface'));
+        $class->getProperties()->willReturn(array());
+        $class->getMethods()->willReturn(array($method));
+
+        $method->getName()->willReturn('getName');
+        $method->getVisibility()->willReturn('public');
+        $method->isStatic()->willReturn(false);
+        $method->getArguments()->willReturn(array($argument));
+        $method->returnsReference()->willReturn(false);
+        $method->getCode()->willReturn('return $this->name;');
+
+        $argument->getName()->willReturn('fullname');
+        $argument->getTypeHint()->willReturn('array');
+        $argument->isOptional()->willReturn(true);
+        $argument->getDefault()->willReturn(null);
+        $argument->isPassedByReference()->willReturn(true);
+
+        $code = $this->generate('CustomClass', $class);
+        $expected =<<<'PHP'
+namespace  {
+class CustomClass extends \RuntimeException implements \Prophecy\Doubler\Generator\MirroredInterface {
+
+public  function getName(array &$fullname = NULL) {
+return $this->name;
+}
+
+}
+}
+PHP;
+        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
+        $code->shouldBe($expected);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
+     */
+    function it_generates_empty_class_for_empty_ClassNode($class)
+    {
+        $class->getParentClass()->willReturn('stdClass');
+        $class->getInterfaces()->willReturn(array('Prophecy\Doubler\Generator\MirroredInterface'));
+        $class->getProperties()->willReturn(array());
+        $class->getMethods()->willReturn(array());
+
+        $code = $this->generate('CustomClass', $class);
+        $expected =<<<'PHP'
+namespace  {
+class CustomClass extends \stdClass implements \Prophecy\Doubler\Generator\MirroredInterface {
+
+
+}
+}
+PHP;
+        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
+        $code->shouldBe($expected);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
+     */
+    function it_wraps_class_in_namespace_if_it_is_namespaced($class)
+    {
+        $class->getParentClass()->willReturn('stdClass');
+        $class->getInterfaces()->willReturn(array('Prophecy\Doubler\Generator\MirroredInterface'));
+        $class->getProperties()->willReturn(array());
+        $class->getMethods()->willReturn(array());
+
+        $code = $this->generate('My\Awesome\CustomClass', $class);
+        $expected =<<<'PHP'
+namespace My\Awesome {
+class CustomClass extends \stdClass implements \Prophecy\Doubler\Generator\MirroredInterface {
+
+
+}
+}
+PHP;
+        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
+        $code->shouldBe($expected);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCreatorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCreatorSpec.php
new file mode 100644
index 000000000000..c7b570097fb6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCreatorSpec.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace spec\Prophecy\Doubler\Generator;
+
+use PhpSpec\ObjectBehavior;
+
+class ClassCreatorSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Doubler\Generator\ClassCodeGenerator $generator
+     */
+    function let($generator)
+    {
+        $this->beConstructedWith($generator);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
+     */
+    function it_evaluates_code_generated_by_ClassCodeGenerator($generator, $class)
+    {
+        $generator->generate('stdClass', $class)->shouldBeCalled()->willReturn(
+            'return 42;'
+        );
+
+        $this->create('stdClass', $class)->shouldReturn(42);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
+     */
+    function it_throws_an_exception_if_class_does_not_exist_after_evaluation($generator, $class)
+    {
+        $generator->generate('CustomClass', $class)->shouldBeCalled()->willReturn(
+            'return 42;'
+        );
+
+        $class->getParentClass()->willReturn('stdClass');
+        $class->getInterfaces()->willReturn(array('Interface1', 'Interface2'));
+
+        $this->shouldThrow('Prophecy\Exception\Doubler\ClassCreatorException')
+            ->duringCreate('CustomClass', $class);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassMirrorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassMirrorSpec.php
new file mode 100644
index 000000000000..dd9e9c4a3af7
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassMirrorSpec.php
@@ -0,0 +1,554 @@
+<?php
+
+namespace spec\Prophecy\Doubler\Generator;
+
+use PhpSpec\ObjectBehavior;
+use I\Simply;
+
+use ReflectionClass;
+use ReflectionMethod;
+use ReflectionParameter;
+
+class ClassMirrorSpec extends ObjectBehavior
+{
+    /**
+     * @param ReflectionClass  $class
+     * @param ReflectionMethod $method1
+     * @param ReflectionMethod $method2
+     * @param ReflectionMethod $method3
+     */
+    function it_reflects_a_class_by_mirroring_all_its_public_methods(
+        $class, $method1, $method2, $method3
+    )
+    {
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array(
+            $method1, $method2, $method3
+        ));
+
+        $method1->getName()->willReturn('getName');
+        $method2->getName()->willReturn('isPublic');
+        $method3->getName()->willReturn('isAbstract');
+
+        $method1->isFinal()->willReturn(false);
+        $method2->isFinal()->willReturn(false);
+        $method3->isFinal()->willReturn(false);
+
+        $method1->isProtected()->willReturn(false);
+        $method2->isProtected()->willReturn(false);
+        $method3->isProtected()->willReturn(false);
+
+        $method1->isStatic()->willReturn(false);
+        $method2->isStatic()->willReturn(false);
+        $method3->isStatic()->willReturn(false);
+
+        $method1->returnsReference()->willReturn(false);
+        $method2->returnsReference()->willReturn(false);
+        $method3->returnsReference()->willReturn(false);
+
+        $method1->getParameters()->willReturn(array());
+        $method2->getParameters()->willReturn(array());
+        $method3->getParameters()->willReturn(array());
+
+        $classNode   = $this->reflect($class, array());
+        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
+        $classNode->getParentClass()->shouldReturn('Custom\ClassName');
+
+        $methodNodes = $classNode->getMethods();
+        $methodNodes->shouldHaveCount(3);
+
+        $classNode->hasMethod('getName')->shouldReturn(true);
+        $classNode->hasMethod('isPublic')->shouldReturn(true);
+        $classNode->hasMethod('isAbstract')->shouldReturn(true);
+    }
+
+    /**
+     * @param ReflectionClass     $class
+     * @param ReflectionMethod    $method
+     * @param ReflectionParameter $parameter
+     */
+    function it_changes_argument_names_if_they_are_varying($class, $method, $parameter)
+    {
+
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+
+        $method->getParameters()->willReturn(array($parameter));
+        $method->getName()->willReturn('methodName');
+        $method->isFinal()->willReturn(false);
+        $method->isProtected()->willReturn(false);
+        $method->isStatic()->willReturn(false);
+        $method->returnsReference()->willReturn(false);
+
+        $parameter->getName()->willReturn('...');
+        $parameter->isDefaultValueAvailable()->willReturn(true);
+        $parameter->getDefaultValue()->willReturn(null);
+        $parameter->isPassedByReference()->willReturn(false);
+        $parameter->getClass()->willReturn($class);
+
+        $classNode = $this->reflect($class, array());
+
+        $methodNodes = $classNode->getMethods();
+
+        $argumentNodes = $methodNodes['methodName']->getArguments();
+        $argumentNode = $argumentNodes[0];
+
+        $argumentNode->getName()->shouldReturn('__dot_dot_dot__');
+    }
+
+    /**
+     * @param ReflectionClass  $class
+     * @param ReflectionMethod $method
+     */
+    function it_reflects_protected_abstract_methods($class, $method)
+    {
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array($method));
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array());
+
+        $method->isProtected()->willReturn(true);
+        $method->isStatic()->willReturn(false);
+        $method->getParameters()->willReturn(array());
+        $method->getName()->willReturn('innerDetail');
+        $method->returnsReference()->willReturn(false);
+
+
+        $classNode   = $this->reflect($class, array());
+        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
+        $classNode->getParentClass()->shouldReturn('Custom\ClassName');
+
+        $methodNodes = $classNode->getMethods();
+        $methodNodes->shouldHaveCount(1);
+
+        $methodNodes['innerDetail']->getVisibility()->shouldReturn('protected');
+    }
+
+    /**
+     * @param ReflectionClass  $class
+     * @param ReflectionMethod $method
+     */
+    function it_reflects_public_static_methods($class, $method)
+    {
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array($method));
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array());
+
+        $method->isProtected()->willReturn(true);
+        $method->isStatic()->willReturn(true);
+        $method->getParameters()->willReturn(array());
+        $method->getName()->willReturn('innerDetail');
+        $method->returnsReference()->willReturn(false);
+
+        $classNode   = $this->reflect($class, array());
+        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
+        $classNode->getParentClass()->shouldReturn('Custom\ClassName');
+
+        $methodNodes = $classNode->getMethods();
+        $methodNodes->shouldHaveCount(1);
+
+        $methodNodes['innerDetail']->getVisibility()->shouldReturn('protected');
+        $methodNodes['innerDetail']->isStatic()->shouldReturn(true);
+    }
+
+    /**
+     * @param ReflectionClass     $class
+     * @param ReflectionMethod    $method
+     * @param ReflectionParameter $param1
+     * @param ReflectionParameter $param2
+     * @param ReflectionClass     $typeHint
+     * @param ReflectionParameter $param3
+     */
+    function it_properly_reads_methods_arguments_with_types(
+        $class, $method, $param1, $param2, $typeHint, $param3
+    )
+    {
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
+
+        $method->getName()->willReturn('methodWithArgs');
+        $method->isFinal()->willReturn(false);
+        $method->isProtected()->willReturn(true);
+        $method->isStatic()->willReturn(false);
+        $method->returnsReference()->willReturn(false);
+        $method->getParameters()->willReturn(array($param1, $param2, $param3));
+
+        $param1->getName()->willReturn('arg_1');
+        $param1->isArray()->willReturn(true);
+        $param1->getClass()->willReturn(null);
+        $param1->isDefaultValueAvailable()->willReturn(true);
+        $param1->isPassedByReference()->willReturn(false);
+        $param1->allowsNull()->willReturn(false);
+        $param1->getDefaultValue()->willReturn(array());
+
+        $param2->getName()->willReturn('arg2');
+        $param2->isArray()->willReturn(false);
+        $param2->getClass()->willReturn($typeHint);
+        $param2->isDefaultValueAvailable()->willReturn(false);
+        $param2->isOptional()->willReturn(false);
+        $param2->isPassedByReference()->willReturn(false);
+        $param2->allowsNull()->willReturn(false);
+        $typeHint->getName()->willReturn('ArrayAccess');
+
+        $param3->getName()->willReturn('arg_3');
+        $param3->isArray()->willReturn(false);
+        if (version_compare(PHP_VERSION, '5.4', '>=')) {
+            $param3->isCallable()->willReturn(true);
+        }
+        $param3->getClass()->willReturn(null);
+        $param3->isOptional()->willReturn(false);
+        $param3->isDefaultValueAvailable()->willReturn(false);
+        $param3->isPassedByReference()->willReturn(false);
+        $param3->allowsNull()->willReturn(true);
+
+        $classNode   = $this->reflect($class, array());
+        $methodNodes = $classNode->getMethods();
+        $argNodes    = $methodNodes['methodWithArgs']->getArguments();
+
+        $argNodes[0]->getName()->shouldReturn('arg_1');
+        $argNodes[0]->getTypeHint()->shouldReturn('array');
+        $argNodes[0]->isOptional()->shouldReturn(true);
+        $argNodes[0]->getDefault()->shouldReturn(array());
+
+        $argNodes[1]->getName()->shouldReturn('arg2');
+        $argNodes[1]->getTypeHint()->shouldReturn('ArrayAccess');
+        $argNodes[1]->isOptional()->shouldReturn(false);
+
+        $argNodes[2]->getName()->shouldReturn('arg_3');
+        if (version_compare(PHP_VERSION, '5.4', '>=')) {
+            $argNodes[2]->getTypeHint()->shouldReturn('callable');
+            $argNodes[2]->isOptional()->shouldReturn(true);
+            $argNodes[2]->getDefault()->shouldReturn(null);
+        } else {
+            $argNodes[2]->isOptional()->shouldReturn(false);
+        }
+    }
+
+    /**
+     * @param ReflectionClass     $class
+     * @param ReflectionMethod    $method
+     * @param ReflectionParameter $param1
+     */
+    function it_marks_required_args_without_types_as_not_optional(
+        $class, $method, $param1
+    )
+    {
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
+
+        $method->getName()->willReturn('methodWithArgs');
+        $method->isFinal()->willReturn(false);
+        $method->isProtected()->willReturn(false);
+        $method->isStatic()->willReturn(false);
+        $method->returnsReference()->willReturn(false);
+        $method->getParameters()->willReturn(array($param1));
+
+        $param1->getName()->willReturn('arg_1');
+        $param1->isArray()->willReturn(false);
+        if (version_compare(PHP_VERSION, '5.4', '>=')) {
+            $param1->isCallable()->willReturn(false);
+        }
+        $param1->getClass()->willReturn(null);
+        $param1->isDefaultValueAvailable()->willReturn(false);
+        $param1->isOptional()->willReturn(false);
+        $param1->isPassedByReference()->willReturn(false);
+        $param1->allowsNull()->willReturn(true);
+        if (defined('HHVM_VERSION')) {
+            $param1->getTypehintText()->willReturn(null);
+        }
+
+        $classNode   = $this->reflect($class, array());
+        $methodNodes = $classNode->getMethods();
+        $argNodes    = $methodNodes['methodWithArgs']->getArguments();
+
+        $argNodes[0]->isOptional()->shouldReturn(false);
+    }
+
+    /**
+     * @param ReflectionClass     $class
+     * @param ReflectionMethod    $method
+     * @param ReflectionParameter $param1
+     * @param ReflectionParameter $param2
+     * @param ReflectionClass     $typeHint
+     */
+    function it_marks_passed_by_reference_args_as_passed_by_reference(
+        $class, $method, $param1, $param2, $typeHint
+    )
+    {
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
+
+        $method->getName()->willReturn('methodWithArgs');
+        $method->isFinal()->willReturn(false);
+        $method->isProtected()->willReturn(false);
+        $method->isStatic()->willReturn(false);
+        $method->returnsReference()->willReturn(false);
+        $method->getParameters()->willReturn(array($param1, $param2));
+
+        $param1->getName()->willReturn('arg_1');
+        $param1->isArray()->willReturn(false);
+        if (version_compare(PHP_VERSION, '5.4', '>=')) {
+            $param1->isCallable()->willReturn(false);
+        }
+        $param1->getClass()->willReturn(null);
+        $param1->isDefaultValueAvailable()->willReturn(false);
+        $param1->isOptional()->willReturn(true);
+        $param1->isPassedByReference()->willReturn(true);
+        $param1->allowsNull()->willReturn(false);
+        if (defined('HHVM_VERSION')) {
+            $param1->getTypehintText()->willReturn(null);
+        }
+
+        $param2->getName()->willReturn('arg2');
+        $param2->isArray()->willReturn(false);
+        $param2->getClass()->willReturn($typeHint);
+        $param2->isDefaultValueAvailable()->willReturn(false);
+        $param2->isOptional()->willReturn(false);
+        $param2->isPassedByReference()->willReturn(false);
+        $param2->allowsNull()->willReturn(false);
+        $typeHint->getName()->willReturn('ArrayAccess');
+
+        $classNode   = $this->reflect($class, array());
+        $methodNodes = $classNode->getMethods();
+        $argNodes    = $methodNodes['methodWithArgs']->getArguments();
+
+        $argNodes[0]->isPassedByReference()->shouldReturn(true);
+        $argNodes[1]->isPassedByReference()->shouldReturn(false);
+    }
+
+    /**
+     * @param ReflectionClass $class
+     */
+    function it_throws_an_exception_if_class_is_final($class)
+    {
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(true);
+        $class->getName()->willReturn('Custom\ClassName');
+
+        $this->shouldThrow('Prophecy\Exception\Doubler\ClassMirrorException')
+             ->duringReflect($class, array());
+    }
+
+    /**
+     * @param ReflectionClass  $class
+     * @param ReflectionMethod $method
+     */
+    function it_ignores_final_methods($class, $method)
+    {
+        $class->getName()->willReturn('Custom\ClassName');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
+
+        $method->isFinal()->willReturn(true);
+        $method->getName()->willReturn('finalImplementation');
+
+        $classNode = $this->reflect($class, array());
+        $classNode->getMethods()->shouldHaveCount(0);
+    }
+
+    /**
+     * @param ReflectionClass $interface
+     */
+    function it_throws_an_exception_if_interface_provided_instead_of_class($interface)
+    {
+        $interface->isInterface()->willReturn(true);
+        $interface->getName()->willReturn('Custom\ClassName');
+
+        $this->shouldThrow('Prophecy\Exception\InvalidArgumentException')
+             ->duringReflect($interface, array());
+    }
+
+    /**
+     * @param ReflectionClass  $interface1
+     * @param ReflectionClass  $interface2
+     * @param ReflectionMethod $method1
+     * @param ReflectionMethod $method2
+     * @param ReflectionMethod $method3
+     */
+    function it_reflects_all_interfaces_methods(
+        $interface1, $interface2, $method1, $method2, $method3
+    )
+    {
+        $interface1->getName()->willReturn('MyInterface1');
+        $interface2->getName()->willReturn('MyInterface2');
+
+        $interface1->isInterface()->willReturn(true);
+        $interface2->isInterface()->willReturn(true);
+
+        $interface1->getMethods()->willReturn(array($method1));
+        $interface2->getMethods()->willReturn(array($method2, $method3));
+
+        $method1->getName()->willReturn('getName');
+        $method2->getName()->willReturn('isPublic');
+        $method3->getName()->willReturn('isAbstract');
+
+        $method1->isProtected()->willReturn(false);
+        $method2->isProtected()->willReturn(false);
+        $method3->isProtected()->willReturn(false);
+
+        $method1->returnsReference()->willReturn(false);
+        $method2->returnsReference()->willReturn(false);
+        $method3->returnsReference()->willReturn(false);
+
+        $method1->isStatic()->willReturn(false);
+        $method2->isStatic()->willReturn(false);
+        $method3->isStatic()->willReturn(false);
+
+        $method1->getParameters()->willReturn(array());
+        $method2->getParameters()->willReturn(array());
+        $method3->getParameters()->willReturn(array());
+
+        $classNode = $this->reflect(null, array($interface1, $interface2));
+
+        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
+        $classNode->getParentClass()->shouldReturn('stdClass');
+        $classNode->getInterfaces()->shouldReturn(array(
+            'Prophecy\Doubler\Generator\ReflectionInterface', 'MyInterface2', 'MyInterface1',
+        ));
+
+        $methodNodes = $classNode->getMethods();
+        $methodNodes->shouldHaveCount(3);
+
+        $classNode->hasMethod('getName')->shouldReturn(true);
+        $classNode->hasMethod('isPublic')->shouldReturn(true);
+        $classNode->hasMethod('isAbstract')->shouldReturn(true);
+    }
+
+    /**
+     * @param ReflectionClass  $class
+     * @param ReflectionMethod $method1
+     * @param ReflectionMethod $method2
+     * @param ReflectionMethod $method3
+     */
+    function it_ignores_virtually_private_methods($class, $method1, $method2, $method3)
+    {
+        $class->getName()->willReturn('SomeClass');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method1, $method2, $method3));
+
+        $method1->getName()->willReturn('_getName');
+        $method2->getName()->willReturn('__toString');
+        $method3->getName()->willReturn('isAbstract');
+
+        $method1->isFinal()->willReturn(false);
+        $method2->isFinal()->willReturn(false);
+        $method3->isFinal()->willReturn(false);
+
+        $method1->isProtected()->willReturn(false);
+        $method2->isProtected()->willReturn(false);
+        $method3->isProtected()->willReturn(false);
+
+        $method1->isStatic()->willReturn(false);
+        $method2->isStatic()->willReturn(false);
+        $method3->isStatic()->willReturn(false);
+
+        $method1->returnsReference()->willReturn(false);
+        $method2->returnsReference()->willReturn(false);
+        $method3->returnsReference()->willReturn(false);
+
+        $method1->getParameters()->willReturn(array());
+        $method2->getParameters()->willReturn(array());
+        $method3->getParameters()->willReturn(array());
+
+        $classNode = $this->reflect($class, array());
+        $methodNodes = $classNode->getMethods();
+        $methodNodes->shouldHaveCount(2);
+
+        $classNode->hasMethod('isAbstract')->shouldReturn(true);
+    }
+
+    /**
+     * @param ReflectionClass  $class
+     * @param ReflectionMethod $method
+     */
+    function it_does_not_throw_exception_for_virtually_private_finals($class, $method)
+    {
+        $class->getName()->willReturn('SomeClass');
+        $class->isInterface()->willReturn(false);
+        $class->isFinal()->willReturn(false);
+        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
+        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
+
+        $method->getName()->willReturn('__toString');
+        $method->isFinal()->willReturn(true);
+
+        $this->shouldNotThrow()->duringReflect($class, array());
+    }
+
+    /**
+     * @param ReflectionClass $class
+     */
+    function it_throws_an_exception_if_class_provided_in_interfaces_list($class)
+    {
+        $class->getName()->willReturn('MyClass');
+        $class->isInterface()->willReturn(false);
+
+        $this->shouldThrow('InvalidArgumentException')
+             ->duringReflect(null, array($class));
+    }
+
+    function it_throws_an_exception_if_not_reflection_provided_as_interface()
+    {
+        $this->shouldThrow('InvalidArgumentException')
+             ->duringReflect(null, array(null));
+    }
+
+    function it_doesnt_fail_to_typehint_nonexistent_FQCN()
+    {
+        $classNode = $this->reflect(new ReflectionClass('spec\Prophecy\Doubler\Generator\OptionalDepsClass'), array());
+        $method = $classNode->getMethod('iHaveAStrangeTypeHintedArg');
+        $arguments = $method->getArguments();
+        $arguments[0]->getTypeHint()->shouldBe('I\Simply\Am\Nonexistent');
+    }
+
+    function it_doesnt_fail_to_typehint_nonexistent_RQCN()
+    {
+        $classNode = $this->reflect(new ReflectionClass('spec\Prophecy\Doubler\Generator\OptionalDepsClass'), array());
+        $method = $classNode->getMethod('iHaveAnEvenStrangerTypeHintedArg');
+        $arguments = $method->getArguments();
+        $arguments[0]->getTypeHint()->shouldBe('I\Simply\Am\Not');
+    }
+
+    function it_doesnt_use_scalar_typehints()
+    {
+        $classNode = $this->reflect(new ReflectionClass('ReflectionMethod'), array());
+        $method = $classNode->getMethod('export');
+        $arguments = $method->getArguments();
+        $arguments[0]->getTypeHint()->shouldReturn(null);
+        $arguments[1]->getTypeHint()->shouldReturn(null);
+        $arguments[2]->getTypeHint()->shouldReturn(null);
+    }
+}
+
+class OptionalDepsClass
+{
+    public function iHaveAStrangeTypeHintedArg(\I\Simply\Am\Nonexistent $class)
+    {
+    }
+
+    public function iHaveAnEvenStrangerTypeHintedArg(Simply\Am\Not $class)
+    {
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ArgumentNodeSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ArgumentNodeSpec.php
new file mode 100644
index 000000000000..cea578fa1be6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ArgumentNodeSpec.php
@@ -0,0 +1,62 @@
+<?php
+
+namespace spec\Prophecy\Doubler\Generator\Node;
+
+use PhpSpec\ObjectBehavior;
+
+class ArgumentNodeSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('name');
+    }
+
+    function it_is_not_be_passed_by_reference_by_default()
+    {
+        $this->shouldNotBePassedByReference();
+    }
+
+    function it_is_passed_by_reference_if_marked()
+    {
+        $this->setAsPassedByReference();
+        $this->shouldBePassedByReference();
+    }
+
+    function it_has_name_with_which_it_was_been_constructed()
+    {
+        $this->getName()->shouldReturn('name');
+    }
+
+    function it_has_no_typehint_by_default()
+    {
+        $this->getTypeHint()->shouldReturn(null);
+    }
+
+    function its_typeHint_is_mutable()
+    {
+        $this->setTypeHint('array');
+        $this->getTypeHint()->shouldReturn('array');
+    }
+
+    function it_does_not_have_default_value_by_default()
+    {
+        $this->getDefault()->shouldReturn(null);
+    }
+
+    function it_is_not_optional_by_default()
+    {
+        $this->isOptional()->shouldReturn(false);
+    }
+
+    function its_default_is_mutable()
+    {
+        $this->setDefault(array());
+        $this->getDefault()->shouldReturn(array());
+    }
+
+    function it_is_marked_as_optional_when_default_is_set()
+    {
+        $this->setDefault(null);
+        $this->isOptional()->shouldReturn(true);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ClassNodeSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ClassNodeSpec.php
new file mode 100644
index 000000000000..18f0e1cc9349
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ClassNodeSpec.php
@@ -0,0 +1,154 @@
+<?php
+
+namespace spec\Prophecy\Doubler\Generator\Node;
+
+use PhpSpec\ObjectBehavior;
+
+class ClassNodeSpec extends ObjectBehavior
+{
+    function its_parentClass_is_a_stdClass_by_default()
+    {
+        $this->getParentClass()->shouldReturn('stdClass');
+    }
+
+    function its_parentClass_is_mutable()
+    {
+        $this->setParentClass('Exception');
+        $this->getParentClass()->shouldReturn('Exception');
+    }
+
+    function its_parentClass_is_set_to_stdClass_if_user_set_null()
+    {
+        $this->setParentClass(null);
+        $this->getParentClass()->shouldReturn('stdClass');
+    }
+
+    function it_does_not_implement_any_interface_by_default()
+    {
+        $this->getInterfaces()->shouldHaveCount(0);
+    }
+
+    function its_addInterface_adds_item_to_the_list_of_implemented_interfaces()
+    {
+        $this->addInterface('MyInterface');
+        $this->getInterfaces()->shouldHaveCount(1);
+    }
+
+    function its_hasInterface_returns_true_if_class_implements_interface()
+    {
+        $this->addInterface('MyInterface');
+        $this->hasInterface('MyInterface')->shouldReturn(true);
+    }
+
+    function its_hasInterface_returns_false_if_class_does_not_implements_interface()
+    {
+        $this->hasInterface('MyInterface')->shouldReturn(false);
+    }
+
+    function it_supports_implementation_of_multiple_interfaces()
+    {
+        $this->addInterface('MyInterface');
+        $this->addInterface('MySecondInterface');
+        $this->getInterfaces()->shouldHaveCount(2);
+    }
+
+    function it_ignores_same_interfaces_added_twice()
+    {
+        $this->addInterface('MyInterface');
+        $this->addInterface('MyInterface');
+
+        $this->getInterfaces()->shouldHaveCount(1);
+        $this->getInterfaces()->shouldReturn(array('MyInterface'));
+    }
+
+    function it_does_not_have_methods_by_default()
+    {
+        $this->getMethods()->shouldHaveCount(0);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method1
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method2
+     */
+    function it_can_has_methods($method1, $method2)
+    {
+        $method1->getName()->willReturn('__construct');
+        $method2->getName()->willReturn('getName');
+
+        $this->addMethod($method1);
+        $this->addMethod($method2);
+
+        $this->getMethods()->shouldReturn(array(
+            '__construct' => $method1,
+            'getName'     => $method2
+        ));
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
+     */
+    function its_hasMethod_returns_true_if_method_exists($method)
+    {
+        $method->getName()->willReturn('getName');
+
+        $this->addMethod($method);
+
+        $this->hasMethod('getName')->shouldReturn(true);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
+     */
+    function its_getMethod_returns_method_by_name($method)
+    {
+        $method->getName()->willReturn('getName');
+
+        $this->addMethod($method);
+
+        $this->getMethod('getName')->shouldReturn($method);
+    }
+
+    function its_hasMethod_returns_false_if_method_does_not_exists()
+    {
+        $this->hasMethod('getName')->shouldReturn(false);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
+     */
+    function its_hasMethod_returns_false_if_method_has_been_removed($method)
+    {
+        $method->getName()->willReturn('getName');
+        $this->addMethod($method);
+        $this->removeMethod('getName');
+
+        $this->hasMethod('getName')->shouldReturn(false);
+    }
+
+
+    function it_does_not_have_properties_by_default()
+    {
+        $this->getProperties()->shouldHaveCount(0);
+    }
+
+    function it_is_able_to_have_properties()
+    {
+        $this->addProperty('title');
+        $this->addProperty('text', 'private');
+        $this->getProperties()->shouldReturn(array(
+            'title' => 'public',
+            'text'  => 'private'
+        ));
+    }
+
+    function its_addProperty_does_not_accept_unsupported_visibility()
+    {
+        $this->shouldThrow('InvalidArgumentException')->duringAddProperty('title', 'town');
+    }
+
+    function its_addProperty_lowercases_visibility_before_setting()
+    {
+        $this->addProperty('text', 'PRIVATE');
+        $this->getProperties()->shouldReturn(array('text' => 'private'));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/MethodNodeSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/MethodNodeSpec.php
new file mode 100644
index 000000000000..7582706ed408
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/MethodNodeSpec.php
@@ -0,0 +1,123 @@
+<?php
+
+namespace spec\Prophecy\Doubler\Generator\Node;
+
+use PhpSpec\ObjectBehavior;
+
+class MethodNodeSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('getTitle');
+    }
+
+    function it_has_a_name()
+    {
+        $this->getName()->shouldReturn('getTitle');
+    }
+
+    function it_has_public_visibility_by_default()
+    {
+        $this->getVisibility()->shouldReturn('public');
+    }
+
+    function its_visibility_is_mutable()
+    {
+        $this->setVisibility('private');
+        $this->getVisibility()->shouldReturn('private');
+    }
+
+    function it_is_not_static_by_default()
+    {
+        $this->shouldNotBeStatic();
+    }
+
+    function it_does_not_return_a_reference_by_default()
+    {
+        $this->returnsReference()->shouldReturn(false);
+    }
+
+    function it_should_be_settable_as_returning_a_reference_through_setter()
+    {
+        $this->setReturnsReference();
+        $this->returnsReference()->shouldReturn(true);
+    } 
+
+    function it_should_be_settable_as_static_through_setter()
+    {
+        $this->setStatic();
+        $this->shouldBeStatic();
+    }
+
+    function it_accepts_only_supported_visibilities()
+    {
+        $this->shouldThrow('InvalidArgumentException')->duringSetVisibility('stealth');
+    }
+
+    function it_lowercases_visibility_before_setting_it()
+    {
+        $this->setVisibility('Public');
+        $this->getVisibility()->shouldReturn('public');
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument1
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument2
+     */
+    function its_useParentCode_causes_method_to_call_parent($argument1, $argument2)
+    {
+        $argument1->getName()->willReturn('objectName');
+        $argument2->getName()->willReturn('default');
+
+        $this->addArgument($argument1);
+        $this->addArgument($argument2);
+
+        $this->useParentCode();
+
+        $this->getCode()->shouldReturn(
+            'return parent::getTitle($objectName, $default);'
+        );
+    }
+
+    function its_code_is_mutable()
+    {
+        $this->setCode('echo "code";');
+        $this->getCode()->shouldReturn('echo "code";');
+    }
+
+    function its_reference_returning_methods_will_generate_exceptions()
+    {
+        $this->setCode('echo "code";');
+        $this->setReturnsReference();
+        $this->getCode()->shouldReturn("throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), 'getTitle');");
+    }
+
+    function its_setCode_provided_with_null_cleans_method_body()
+    {
+        $this->setCode(null);
+        $this->getCode()->shouldReturn('');
+    }
+
+    function it_is_constructable_with_code()
+    {
+        $this->beConstructedWith('getTitle', 'die();');
+        $this->getCode()->shouldReturn('die();');
+    }
+
+    function it_does_not_have_arguments_by_default()
+    {
+        $this->getArguments()->shouldHaveCount(0);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument1
+     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument2
+     */
+    function it_supports_adding_arguments($argument1, $argument2)
+    {
+        $this->addArgument($argument1);
+        $this->addArgument($argument2);
+
+        $this->getArguments()->shouldReturn(array($argument1, $argument2));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/LazyDoubleSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/LazyDoubleSpec.php
new file mode 100644
index 000000000000..7026126ffe98
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/LazyDoubleSpec.php
@@ -0,0 +1,96 @@
+<?php
+
+namespace spec\Prophecy\Doubler;
+
+use PhpSpec\ObjectBehavior;
+
+class LazyDoubleSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Doubler\Doubler $doubler
+     */
+    function let($doubler)
+    {
+        $this->beConstructedWith($doubler);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
+     */
+    function it_returns_anonymous_double_instance_by_default($doubler, $double)
+    {
+        $doubler->double(null, array())->willReturn($double);
+
+        $this->getInstance()->shouldReturn($double);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
+     * @param \ReflectionClass                            $class
+     */
+    function it_returns_class_double_instance_if_set($doubler, $double, $class)
+    {
+        $doubler->double($class, array())->willReturn($double);
+
+        $this->setParentClass($class);
+
+        $this->getInstance()->shouldReturn($double);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double1
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double2
+     */
+    function it_returns_same_double_instance_if_called_2_times(
+        $doubler, $double1, $double2
+    )
+    {
+        $doubler->double(null, array())->willReturn($double1);
+        $doubler->double(null, array())->willReturn($double2);
+
+        $this->getInstance()->shouldReturn($double2);
+        $this->getInstance()->shouldReturn($double2);
+    }
+
+    function its_setParentClass_throws_ClassNotFoundException_if_class_not_found()
+    {
+        $this->shouldThrow('Prophecy\Exception\Doubler\ClassNotFoundException')
+            ->duringSetParentClass('SomeUnexistingClass');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
+     */
+    function its_setParentClass_throws_exception_if_prophecy_is_already_created(
+        $doubler, $double
+    )
+    {
+        $doubler->double(null, array())->willReturn($double);
+
+        $this->getInstance();
+
+        $this->shouldThrow('Prophecy\Exception\Doubler\DoubleException')
+            ->duringSetParentClass('stdClass');
+    }
+
+    function its_addInterface_throws_InterfaceNotFoundException_if_no_interface_found()
+    {
+        $this->shouldThrow('Prophecy\Exception\Doubler\InterfaceNotFoundException')
+            ->duringAddInterface('SomeUnexistingInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
+     */
+    function its_addInterface_throws_exception_if_prophecy_is_already_created(
+        $doubler, $double
+    )
+    {
+        $doubler->double(null, array())->willReturn($double);
+
+        $this->getInstance();
+
+        $this->shouldThrow('Prophecy\Exception\Doubler\DoubleException')
+            ->duringAddInterface('ArrayAccess');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php
new file mode 100644
index 000000000000..a3e74919753a
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php
@@ -0,0 +1,72 @@
+<?php
+
+namespace spec\Prophecy\Doubler;
+
+use PhpSpec\ObjectBehavior;
+
+class NameGeneratorSpec extends ObjectBehavior
+{
+    /**
+     * @param \ReflectionClass $class
+     */
+    function its_name_generates_name_based_on_simple_class_reflection($class)
+    {
+        $class->getName()->willReturn('stdClass');
+        $this->name($class, array())->shouldStartWith('Double\stdClass\\');
+    }
+
+    /**
+     * @param \ReflectionClass $class
+     */
+    function its_name_generates_name_based_on_namespaced_class_reflection($class)
+    {
+        $class->getName()->willReturn('Some\Custom\Class');
+        $this->name($class, array())->shouldStartWith('Double\Some\Custom\Class\P');
+    }
+
+    /**
+     * @param \ReflectionClass $interface1
+     * @param \ReflectionClass $interface2
+     */
+    function its_name_generates_name_based_on_interface_shortnames($interface1, $interface2)
+    {
+        $interface1->getShortName()->willReturn('HandlerInterface');
+        $interface2->getShortName()->willReturn('LoaderInterface');
+
+        $this->name(null, array($interface1, $interface2))->shouldStartWith(
+            'Double\HandlerInterface\LoaderInterface\P'
+        );
+    }
+
+    function it_generates_proper_name_for_no_class_and_interfaces_list()
+    {
+        $this->name(null, array())->shouldStartWith('Double\stdClass\P');
+    }
+
+    /**
+     * @param \ReflectionClass $class
+     * @param \ReflectionClass $interface1
+     * @param \ReflectionClass $interface2
+     */
+    function its_name_generates_name_based_only_on_class_if_its_available(
+        $class, $interface1, $interface2
+    )
+    {
+        $class->getName()->willReturn('Some\Custom\Class');
+        $interface1->getShortName()->willReturn('HandlerInterface');
+        $interface2->getShortName()->willReturn('LoaderInterface');
+
+        $this->name($class, array($interface1, $interface2))->shouldStartWith(
+            'Double\Some\Custom\Class\P'
+        );
+    }
+
+    public function getMatchers()
+    {
+        return array(
+            'startWith' => function ($subject, $string) {
+                return 0 === strpos($subject, $string);
+            },
+        );
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Call/UnexpectedCallExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Call/UnexpectedCallExceptionSpec.php
new file mode 100644
index 000000000000..6fd1a5c3f70f
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Call/UnexpectedCallExceptionSpec.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace spec\Prophecy\Exception\Call;
+
+use PhpSpec\ObjectBehavior;
+use spec\Prophecy\Exception\Prophecy\Prophecy;
+
+class UnexpectedCallExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
+     */
+    function let($objectProphecy)
+    {
+        $this->beConstructedWith('msg', $objectProphecy, 'getName', array('arg1', 'arg2'));
+    }
+
+    function it_is_prophecy_exception()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prophecy\ObjectProphecyException');
+    }
+
+    function it_exposes_method_name_through_getter()
+    {
+        $this->getMethodName()->shouldReturn('getName');
+    }
+
+    function it_exposes_arguments_through_getter()
+    {
+        $this->getArguments()->shouldReturn(array('arg1', 'arg2'));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassCreatorExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassCreatorExceptionSpec.php
new file mode 100644
index 000000000000..58241385ecbf
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassCreatorExceptionSpec.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace spec\Prophecy\Exception\Doubler;
+
+use PhpSpec\ObjectBehavior;
+use spec\Prophecy\Exception\Prophecy;
+
+class ClassCreatorExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
+     */
+    function let($node)
+    {
+        $this->beConstructedWith('', $node);
+    }
+
+    function it_is_a_prophecy_exception()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Exception');
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoublerException');
+    }
+
+    function it_contains_a_reflected_node($node)
+    {
+        $this->getClassNode()->shouldReturn($node);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassMirrorExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassMirrorExceptionSpec.php
new file mode 100644
index 000000000000..21e31a344dc5
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassMirrorExceptionSpec.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace spec\Prophecy\Exception\Doubler;
+
+use PhpSpec\ObjectBehavior;
+
+class ClassMirrorExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \ReflectionClass $class
+     */
+    function let($class)
+    {
+        $this->beConstructedWith('', $class);
+    }
+
+    function it_is_a_prophecy_exception()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Exception');
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoublerException');
+    }
+
+    function it_contains_a_reflected_class_link($class)
+    {
+        $this->getReflectedClass()->shouldReturn($class);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassNotFoundExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassNotFoundExceptionSpec.php
new file mode 100644
index 000000000000..251512b9bb6e
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassNotFoundExceptionSpec.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace spec\Prophecy\Exception\Doubler;
+
+use PhpSpec\ObjectBehavior;
+use spec\Prophecy\Exception\Prophecy;
+
+class ClassNotFoundExceptionSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('msg', 'CustomClass');
+    }
+
+    function it_is_a_prophecy_exception()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Exception');
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoubleException');
+    }
+
+    function its_getClassname_returns_classname()
+    {
+        $this->getClassname()->shouldReturn('CustomClass');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/DoubleExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/DoubleExceptionSpec.php
new file mode 100644
index 000000000000..6fe5a19aeb42
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/DoubleExceptionSpec.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace spec\Prophecy\Exception\Doubler;
+
+use PhpSpec\ObjectBehavior;
+
+class DoubleExceptionSpec extends ObjectBehavior
+{
+    function it_is_a_double_exception()
+    {
+        $this->shouldBeAnInstanceOf('RuntimeException');
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoublerException');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/InterfaceNotFoundExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/InterfaceNotFoundExceptionSpec.php
new file mode 100644
index 000000000000..ad1a439e77c6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/InterfaceNotFoundExceptionSpec.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace spec\Prophecy\Exception\Doubler;
+
+use PhpSpec\ObjectBehavior;
+use spec\Prophecy\Exception\Prophecy;
+
+class InterfaceNotFoundExceptionSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('msg', 'CustomInterface');
+    }
+
+    function it_extends_ClassNotFoundException()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\ClassNotFoundException');
+    }
+
+    function its_getClassname_returns_classname()
+    {
+        $this->getClassname()->shouldReturn('CustomInterface');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/MethodNotFoundExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/MethodNotFoundExceptionSpec.php
new file mode 100644
index 000000000000..a889dd7ef45c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/MethodNotFoundExceptionSpec.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace spec\Prophecy\Exception\Doubler;
+
+use PhpSpec\ObjectBehavior;
+use spec\Prophecy\Exception\Prophecy;
+
+class MethodNotFoundExceptionSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('', 'User', 'getName', array(1, 2, 3));
+    }
+
+    function it_is_DoubleException()
+    {
+        $this->shouldHaveType('Prophecy\Exception\Doubler\DoubleException');
+    }
+
+    function it_has_MethodName()
+    {
+        $this->getMethodName()->shouldReturn('getName');
+    }
+
+    function it_has_classnamej()
+    {
+        $this->getClassname()->shouldReturn('User');
+    }
+
+    function it_has_an_arguments_list()
+    {
+        $this->getArguments()->shouldReturn(array(1, 2, 3));
+    }
+
+    function it_has_a_default_null_argument_list()
+    {
+        $this->beConstructedWith('', 'User', 'getName');
+        $this->getArguments()->shouldReturn(null);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/AggregateExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/AggregateExceptionSpec.php
new file mode 100644
index 000000000000..22a5ebdbfa8f
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/AggregateExceptionSpec.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace spec\Prophecy\Exception\Prediction;
+
+use PhpSpec\ObjectBehavior;
+
+class AggregateExceptionSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith(null);
+    }
+
+    function it_is_prediction_exception()
+    {
+        $this->shouldBeAnInstanceOf('RuntimeException');
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prediction\PredictionException');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     */
+    function it_can_store_objectProphecy_link($object)
+    {
+        $this->setObjectProphecy($object);
+        $this->getObjectProphecy()->shouldReturn($object);
+    }
+
+    function it_should_not_have_exceptions_at_the_beginning()
+    {
+        $this->getExceptions()->shouldHaveCount(0);
+    }
+
+    /**
+     * @param \Prophecy\Exception\Prediction\PredictionException $exception
+     */
+    function it_should_append_exception_through_append_method($exception)
+    {
+        $exception->getMessage()->willReturn('Exception #1');
+
+        $this->append($exception);
+
+        $this->getExceptions()->shouldReturn(array($exception));
+    }
+
+    /**
+     * @param \Prophecy\Exception\Prediction\PredictionException $exception
+     */
+    function it_should_update_message_during_append($exception)
+    {
+        $exception->getMessage()->willReturn('Exception #1');
+
+        $this->append($exception);
+
+        $this->getMessage()->shouldReturn("  Exception #1");
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/NoCallsExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/NoCallsExceptionSpec.php
new file mode 100644
index 000000000000..473f1a2dab84
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/NoCallsExceptionSpec.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace spec\Prophecy\Exception\Prediction;
+
+use PhpSpec\ObjectBehavior;
+
+class NoCallsExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
+     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
+     */
+    function let($objectProphecy, $methodProphecy)
+    {
+        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
+
+        $this->beConstructedWith('message', $methodProphecy);
+    }
+
+    function it_is_PredictionException()
+    {
+        $this->shouldHaveType('Prophecy\Exception\Prediction\PredictionException');
+    }
+
+    function it_extends_MethodProphecyException()
+    {
+        $this->shouldHaveType('Prophecy\Exception\Prophecy\MethodProphecyException');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsCountExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsCountExceptionSpec.php
new file mode 100644
index 000000000000..adad975ba1bd
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsCountExceptionSpec.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace spec\Prophecy\Exception\Prediction;
+
+use PhpSpec\ObjectBehavior;
+
+class UnexpectedCallsCountExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
+     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
+     * @param \Prophecy\Call\Call               $call1
+     * @param \Prophecy\Call\Call               $call2
+     */
+    function let($objectProphecy, $methodProphecy, $call1, $call2)
+    {
+        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
+
+        $this->beConstructedWith('message', $methodProphecy, 5, array($call1, $call2));
+    }
+
+    function it_extends_UnexpectedCallsException()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prediction\UnexpectedCallsException');
+    }
+
+    function it_should_expose_expectedCount_through_getter()
+    {
+        $this->getExpectedCount()->shouldReturn(5);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsExceptionSpec.php
new file mode 100644
index 000000000000..c0fe24d777b8
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsExceptionSpec.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace spec\Prophecy\Exception\Prediction;
+
+use PhpSpec\ObjectBehavior;
+
+class UnexpectedCallsExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
+     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
+     * @param \Prophecy\Call\Call               $call1
+     * @param \Prophecy\Call\Call               $call2
+     */
+    function let($objectProphecy, $methodProphecy, $call1, $call2)
+    {
+        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
+
+        $this->beConstructedWith('message', $methodProphecy, array($call1, $call2));
+    }
+
+    function it_is_PredictionException()
+    {
+        $this->shouldHaveType('Prophecy\Exception\Prediction\PredictionException');
+    }
+
+    function it_extends_MethodProphecyException()
+    {
+        $this->shouldHaveType('Prophecy\Exception\Prophecy\MethodProphecyException');
+    }
+
+    function it_should_expose_calls_list_through_getter($call1, $call2)
+    {
+        $this->getCalls()->shouldReturn(array($call1, $call2));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/MethodProphecyExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/MethodProphecyExceptionSpec.php
new file mode 100644
index 000000000000..97cf9e1094bd
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/MethodProphecyExceptionSpec.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace spec\Prophecy\Exception\Prophecy;
+
+use PhpSpec\ObjectBehavior;
+use spec\Prophecy\Exception\Prophecy;
+
+class MethodProphecyExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
+     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
+     */
+    function let($objectProphecy, $methodProphecy)
+    {
+        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
+
+        $this->beConstructedWith('message', $methodProphecy);
+    }
+
+    function it_extends_DoubleException()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prophecy\ObjectProphecyException');
+    }
+
+    function it_holds_a_stub_reference($methodProphecy)
+    {
+        $this->getMethodProphecy()->shouldReturn($methodProphecy);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/ObjectProphecyExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/ObjectProphecyExceptionSpec.php
new file mode 100644
index 000000000000..bcacfedcb140
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/ObjectProphecyExceptionSpec.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace spec\Prophecy\Exception\Prophecy;
+
+use PhpSpec\ObjectBehavior;
+use spec\Prophecy\Exception\Prophecy;
+
+class ObjectProphecyExceptionSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
+     */
+    function let($objectProphecy)
+    {
+        $this->beConstructedWith('message', $objectProphecy);
+    }
+
+    function it_should_be_a_prophecy_exception()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prophecy\ProphecyException');
+    }
+
+    function it_holds_double_reference($objectProphecy)
+    {
+        $this->getObjectProphecy()->shouldReturn($objectProphecy);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallPredictionSpec.php
new file mode 100644
index 000000000000..3da8c5990361
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallPredictionSpec.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace spec\Prophecy\Prediction;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class CallPredictionSpec extends ObjectBehavior
+{
+    function it_is_prediction()
+    {
+        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     * @param \Prophecy\Call\Call               $call
+     */
+    function it_does_nothing_if_there_is_more_than_one_call_been_made($object, $method, $call)
+    {
+        $this->check(array($call), $object, $method)->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy    $object
+     * @param \Prophecy\Prophecy\MethodProphecy    $method
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
+     */
+    function it_throws_NoCallsException_if_no_calls_found($object, $method, $arguments)
+    {
+        $method->getObjectProphecy()->willReturn($object);
+        $method->getMethodName()->willReturn('getName');
+        $method->getArgumentsWildcard()->willReturn($arguments);
+        $arguments->__toString()->willReturn('123');
+        $object->reveal()->willReturn(new \stdClass());
+        $object->findProphecyMethodCalls('getName', Argument::any())->willReturn(array());
+
+        $this->shouldThrow('Prophecy\Exception\Prediction\NoCallsException')
+            ->duringCheck(array(), $object, $method);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallTimesPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallTimesPredictionSpec.php
new file mode 100644
index 000000000000..c6708927fb1a
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallTimesPredictionSpec.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace spec\Prophecy\Prediction;
+
+use PhpSpec\ObjectBehavior;
+
+class CallTimesPredictionSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith(2);
+    }
+
+    function it_is_prediction()
+    {
+        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     * @param \Prophecy\Call\Call               $call1
+     * @param \Prophecy\Call\Call               $call2
+     */
+    function it_does_nothing_if_there_were_exact_amount_of_calls_being_made(
+        $object, $method, $call1, $call2
+    )
+    {
+        $this->check(array($call1, $call2), $object, $method)->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy    $object
+     * @param \Prophecy\Prophecy\MethodProphecy    $method
+     * @param \Prophecy\Call\Call                  $call
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
+     */
+    function it_throws_UnexpectedCallsCountException_if_calls_found(
+        $object, $method, $call, $arguments
+    )
+    {
+        $method->getObjectProphecy()->willReturn($object);
+        $method->getMethodName()->willReturn('getName');
+        $method->getArgumentsWildcard()->willReturn($arguments);
+        $arguments->__toString()->willReturn('123');
+
+        $call->getMethodName()->willReturn('getName');
+        $call->getArguments()->willReturn(array(5, 4, 'three'));
+        $call->getCallPlace()->willReturn('unknown');
+
+        $this->shouldThrow('Prophecy\Exception\Prediction\UnexpectedCallsCountException')
+            ->duringCheck(array($call), $object, $method);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallbackPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallbackPredictionSpec.php
new file mode 100644
index 000000000000..7fe475ef1fbd
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallbackPredictionSpec.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace spec\Prophecy\Prediction;
+
+use PhpSpec\ObjectBehavior;
+
+use RuntimeException;
+
+class CallbackPredictionSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('get_class');
+    }
+
+    function it_is_prediction()
+    {
+        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     * @param \Prophecy\Call\Call               $call
+     */
+    function it_proxies_call_to_callback($object, $method, $call)
+    {
+        $returnFirstCallCallback = function ($calls, $object, $method) {
+            throw new RuntimeException;
+        };
+
+        $this->beConstructedWith($returnFirstCallCallback);
+
+        $this->shouldThrow('RuntimeException')->duringCheck(array($call), $object, $method);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/NoCallsPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/NoCallsPredictionSpec.php
new file mode 100644
index 000000000000..a3ef9bcb3eaf
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/NoCallsPredictionSpec.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace spec\Prophecy\Prediction;
+
+use PhpSpec\ObjectBehavior;
+
+class NoCallsPredictionSpec extends ObjectBehavior
+{
+    function it_is_prediction()
+    {
+        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_does_nothing_if_there_is_no_calls_made($object, $method)
+    {
+        $this->check(array(), $object, $method)->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy    $object
+     * @param \Prophecy\Prophecy\MethodProphecy    $method
+     * @param \Prophecy\Call\Call                  $call
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
+     */
+    function it_throws_UnexpectedCallsException_if_calls_found($object, $method, $call, $arguments)
+    {
+        $method->getObjectProphecy()->willReturn($object);
+        $method->getMethodName()->willReturn('getName');
+        $method->getArgumentsWildcard()->willReturn($arguments);
+        $arguments->__toString()->willReturn('123');
+
+        $call->getMethodName()->willReturn('getName');
+        $call->getArguments()->willReturn(array(5, 4, 'three'));
+        $call->getCallPlace()->willReturn('unknown');
+
+        $this->shouldThrow('Prophecy\Exception\Prediction\UnexpectedCallsException')
+            ->duringCheck(array($call), $object, $method);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/CallbackPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/CallbackPromiseSpec.php
new file mode 100644
index 000000000000..5d99b1b1ce71
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/CallbackPromiseSpec.php
@@ -0,0 +1,110 @@
+<?php
+
+namespace spec\Prophecy\Promise;
+
+use PhpSpec\ObjectBehavior;
+
+class CallbackPromiseSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('get_class');
+    }
+
+    function it_is_promise()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_should_execute_closure_callback($object, $method)
+    {
+        $firstArgumentCallback = function ($args) {
+            return $args[0];
+        };
+
+        $this->beConstructedWith($firstArgumentCallback);
+
+        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_should_execute_static_array_callback($object, $method)
+    {
+        $firstArgumentCallback = array('spec\Prophecy\Promise\ClassCallback', 'staticCallbackMethod');
+
+        $this->beConstructedWith($firstArgumentCallback);
+
+        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_should_execute_instance_array_callback($object, $method)
+    {
+        $class = new ClassCallback();
+        $firstArgumentCallback = array($class, 'callbackMethod');
+
+        $this->beConstructedWith($firstArgumentCallback);
+
+        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_should_execute_string_function_callback($object, $method)
+    {
+        $firstArgumentCallback = 'spec\Prophecy\Promise\functionCallbackFirstArgument';
+
+        $this->beConstructedWith($firstArgumentCallback);
+
+        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
+    }
+
+}
+
+/**
+ * Class used to test callbackpromise
+ *
+ * @param array
+ * @return string
+ */
+class ClassCallback
+{
+    /**
+     * @param array $args
+     */
+    function callbackMethod($args)
+    {
+        return $args[0];
+    }
+
+    /**
+     * @param array $args
+     */
+    static function staticCallbackMethod($args)
+    {
+        return $args[0];
+    }
+}
+
+/**
+ * Callback function used to test callbackpromise
+ *
+ * @param array
+ * @return string
+ */
+function functionCallbackFirstArgument($args)
+{
+    return $args[0];
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnArgumentPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnArgumentPromiseSpec.php
new file mode 100644
index 000000000000..4acb7bb0aa0c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnArgumentPromiseSpec.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace spec\Prophecy\Promise;
+
+use PhpSpec\ObjectBehavior;
+
+class ReturnArgumentPromiseSpec extends ObjectBehavior
+{
+    function it_is_promise()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_should_return_first_argument_if_provided($object, $method)
+    {
+        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_should_return_null_if_no_arguments_provided($object, $method)
+    {
+        $this->execute(array(), $object, $method)->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_should_return_nth_argument_if_provided($object, $method)
+    {
+        $this->beConstructedWith(1);
+        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('two');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnPromiseSpec.php
new file mode 100644
index 000000000000..18bfd87aa098
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnPromiseSpec.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace spec\Prophecy\Promise;
+
+use PhpSpec\ObjectBehavior;
+
+class ReturnPromiseSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith(array(42));
+    }
+
+    function it_is_promise()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_returns_value_it_was_constructed_with($object, $method)
+    {
+        $this->execute(array(), $object, $method)->shouldReturn(42);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_always_returns_last_value_left_in_the_return_values($object, $method)
+    {
+        $this->execute(array(), $object, $method)->shouldReturn(42);
+        $this->execute(array(), $object, $method)->shouldReturn(42);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_consequently_returns_multiple_values_it_was_constructed_with($object, $method)
+    {
+        $this->beConstructedWith(array(42, 24, 12));
+
+        $this->execute(array(), $object, $method)->shouldReturn(42);
+        $this->execute(array(), $object, $method)->shouldReturn(24);
+        $this->execute(array(), $object, $method)->shouldReturn(12);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_returns_null_if_constructed_with_empty_array($object, $method)
+    {
+        $this->beConstructedWith(array());
+
+        $this->execute(array(), $object, $method)->shouldReturn(null);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php
new file mode 100644
index 000000000000..5f448979a1b8
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php
@@ -0,0 +1,58 @@
+<?php
+
+namespace spec\Prophecy\Promise;
+
+use PhpSpec\ObjectBehavior;
+
+class ThrowPromiseSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('RuntimeException');
+    }
+
+    function it_is_promise()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_instantiates_and_throws_exception_from_provided_classname($object, $method)
+    {
+        $this->beConstructedWith('InvalidArgumentException');
+
+        $this->shouldThrow('InvalidArgumentException')
+            ->duringExecute(array(), $object, $method);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_instantiates_exceptions_with_required_arguments($object, $method)
+    {
+        $this->beConstructedWith('spec\Prophecy\Promise\RequiredArgumentException');
+
+        $this->shouldThrow('spec\Prophecy\Promise\RequiredArgumentException')
+            ->duringExecute(array(), $object, $method);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $object
+     * @param \Prophecy\Prophecy\MethodProphecy $method
+     */
+    function it_throws_provided_exception($object, $method)
+    {
+        $this->beConstructedWith($exc = new \RuntimeException('Some exception'));
+
+        $this->shouldThrow($exc)->duringExecute(array(), $object, $method);
+    }
+}
+
+class RequiredArgumentException extends \Exception
+{
+    final public function __construct($message, $code) {}
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/MethodProphecySpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/MethodProphecySpec.php
new file mode 100644
index 000000000000..d8299a78ed2b
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/MethodProphecySpec.php
@@ -0,0 +1,381 @@
+<?php
+
+namespace spec\Prophecy\Prophecy;
+
+use PhpSpec\ObjectBehavior;
+
+class MethodProphecySpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
+     * @param \ReflectionClass                  $reflection
+     */
+    function let($objectProphecy, $reflection)
+    {
+        $objectProphecy->reveal()->willReturn($reflection);
+
+        $this->beConstructedWith($objectProphecy, 'getName', null);
+    }
+
+    function it_is_initializable()
+    {
+        $this->shouldHaveType('Prophecy\Prophecy\MethodProphecy');
+    }
+
+    function its_constructor_throws_MethodNotFoundException_for_unexisting_method($objectProphecy)
+    {
+        $this->shouldThrow('Prophecy\Exception\Doubler\MethodNotFoundException')->during(
+            '__construct', array($objectProphecy, 'getUnexisting', null)
+        );
+    }
+
+    function its_constructor_throws_MethodProphecyException_for_final_methods($objectProphecy, ClassWithFinalMethod $subject)
+    {
+        $objectProphecy->reveal()->willReturn($subject);
+
+        $this->shouldThrow('Prophecy\Exception\Prophecy\MethodProphecyException')->during(
+            '__construct', array($objectProphecy, 'finalMethod', null)
+        );
+    }
+
+    function its_constructor_transforms_array_passed_as_3rd_argument_to_ArgumentsWildcard(
+        $objectProphecy
+    )
+    {
+        $this->beConstructedWith($objectProphecy, 'getName', array(42, 33));
+
+        $wildcard = $this->getArgumentsWildcard();
+        $wildcard->shouldNotBe(null);
+        $wildcard->__toString()->shouldReturn('exact(42), exact(33)');
+    }
+
+    function its_constructor_does_not_touch_third_argument_if_it_is_null($objectProphecy)
+    {
+        $this->beConstructedWith($objectProphecy, 'getName', null);
+
+        $wildcard = $this->getArgumentsWildcard();
+        $wildcard->shouldBe(null);
+    }
+
+    /**
+     * @param \Prophecy\Promise\PromiseInterface $promise
+     */
+    function it_records_promise_through_will_method($promise, $objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->will($promise);
+        $this->getPromise()->shouldReturn($promise);
+    }
+
+    /**
+     * @param \Prophecy\Promise\PromiseInterface $promise
+     */
+    function it_adds_itself_to_ObjectProphecy_during_call_to_will($objectProphecy, $promise)
+    {
+        $objectProphecy->addMethodProphecy($this)->shouldBeCalled();
+
+        $this->will($promise);
+    }
+
+    function it_adds_ReturnPromise_during_willReturn_call($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->willReturn(42);
+        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\ReturnPromise');
+    }
+
+    function it_adds_ThrowPromise_during_willThrow_call($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->willThrow('RuntimeException');
+        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\ThrowPromise');
+    }
+
+    function it_adds_ReturnArgumentPromise_during_willReturnArgument_call($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->willReturnArgument();
+        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\ReturnArgumentPromise');
+    }
+
+    function it_adds_ReturnArgumentPromise_during_willReturnArgument_call_with_index_argument($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->willReturnArgument(1);
+        $promise = $this->getPromise();
+        $promise->shouldBeAnInstanceOf('Prophecy\Promise\ReturnArgumentPromise');
+        $promise->execute(array('one', 'two'), $objectProphecy, $this)->shouldReturn('two');
+    }
+
+    function it_adds_CallbackPromise_during_will_call_with_callback_argument($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $callback = function () {};
+
+        $this->will($callback);
+        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\CallbackPromise');
+    }
+
+    /**
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     */
+    function it_records_prediction_through_should_method($prediction, $objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->callOnWrappedObject('should', array($prediction));
+        $this->getPrediction()->shouldReturn($prediction);
+    }
+
+    function it_adds_CallbackPrediction_during_should_call_with_callback_argument($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $callback = function () {};
+
+        $this->callOnWrappedObject('should', array($callback));
+        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\CallbackPrediction');
+    }
+
+    /**
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     */
+    function it_adds_itself_to_ObjectProphecy_during_call_to_should($objectProphecy, $prediction)
+    {
+        $objectProphecy->addMethodProphecy($this)->shouldBeCalled();
+
+        $this->callOnWrappedObject('should', array($prediction));
+    }
+
+    function it_adds_CallPrediction_during_shouldBeCalled_call($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->callOnWrappedObject('shouldBeCalled', array());
+        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\CallPrediction');
+    }
+
+    function it_adds_NoCallsPrediction_during_shouldNotBeCalled_call($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->callOnWrappedObject('shouldNotBeCalled', array());
+        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\NoCallsPrediction');
+    }
+
+    function it_adds_CallTimesPrediction_during_shouldBeCalledTimes_call($objectProphecy)
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->callOnWrappedObject('shouldBeCalledTimes', array(5));
+        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\CallTimesPrediction');
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     * @param \Prophecy\Call\Call                      $call1
+     * @param \Prophecy\Call\Call                      $call2
+     */
+    function it_checks_prediction_via_shouldHave_method_call(
+        $objectProphecy, $arguments, $prediction, $call1, $call2
+    )
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
+        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
+
+        $this->withArguments($arguments);
+        $this->callOnWrappedObject('shouldHave', array($prediction));
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     * @param \Prophecy\Call\Call                      $call1
+     * @param \Prophecy\Call\Call                      $call2
+     */
+    function it_sets_return_promise_during_shouldHave_call_if_none_was_set_before(
+        $objectProphecy, $arguments, $prediction, $call1, $call2
+    )
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
+        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
+
+        $this->withArguments($arguments);
+        $this->callOnWrappedObject('shouldHave', array($prediction));
+
+        $this->getPromise()->shouldReturnAnInstanceOf('Prophecy\Promise\ReturnPromise');
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     * @param \Prophecy\Call\Call                      $call1
+     * @param \Prophecy\Call\Call                      $call2
+     * @param \Prophecy\Promise\PromiseInterface       $promise
+     */
+    function it_does_not_set_return_promise_during_shouldHave_call_if_it_was_set_before(
+        $objectProphecy, $arguments, $prediction, $call1, $call2, $promise
+    )
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
+        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
+
+        $this->will($promise);
+        $this->withArguments($arguments);
+        $this->callOnWrappedObject('shouldHave', array($prediction));
+
+        $this->getPromise()->shouldReturn($promise);
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
+     * @param \Prophecy\Prediction\PredictionInterface $prediction1
+     * @param \Prophecy\Prediction\PredictionInterface $prediction2
+     * @param \Prophecy\Call\Call                      $call1
+     * @param \Prophecy\Call\Call                      $call2
+     * @param \Prophecy\Promise\PromiseInterface       $promise
+     */
+    function it_records_checked_predictions(
+        $objectProphecy, $arguments, $prediction1, $prediction2, $call1, $call2, $promise
+    )
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+        $prediction1->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->willReturn();
+        $prediction2->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->willReturn();
+        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
+
+        $this->will($promise);
+        $this->withArguments($arguments);
+        $this->callOnWrappedObject('shouldHave', array($prediction1));
+        $this->callOnWrappedObject('shouldHave', array($prediction2));
+
+        $this->getCheckedPredictions()->shouldReturn(array($prediction1, $prediction2));
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     * @param \Prophecy\Call\Call                      $call1
+     * @param \Prophecy\Call\Call                      $call2
+     * @param \Prophecy\Promise\PromiseInterface       $promise
+     */
+    function it_records_even_failed_checked_predictions(
+        $objectProphecy, $arguments, $prediction, $call1, $call2, $promise
+    )
+    {
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->willThrow(new \RuntimeException());
+        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
+
+        $this->will($promise);
+        $this->withArguments($arguments);
+
+        try {
+          $this->callOnWrappedObject('shouldHave', array($prediction));
+        } catch (\Exception $e) {}
+
+        $this->getCheckedPredictions()->shouldReturn(array($prediction));
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     * @param \Prophecy\Call\Call                      $call1
+     * @param \Prophecy\Call\Call                      $call2
+     */
+    function it_checks_prediction_via_shouldHave_method_call_with_callback(
+        $objectProphecy, $arguments, $prediction, $call1, $call2
+    )
+    {
+        $callback = function ($calls, $object, $method) {
+            throw new \RuntimeException;
+        };
+        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
+
+        $this->withArguments($arguments);
+        $this->shouldThrow('RuntimeException')->duringShouldHave($callback);
+    }
+
+    function it_does_nothing_during_checkPrediction_if_no_prediction_set()
+    {
+        $this->checkPrediction()->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
+     * @param \Prophecy\Prediction\PredictionInterface $prediction
+     * @param \Prophecy\Call\Call                      $call1
+     * @param \Prophecy\Call\Call                      $call2
+     */
+    function it_checks_set_prediction_during_checkPrediction(
+        $objectProphecy, $arguments, $prediction, $call1, $call2
+    )
+    {
+        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
+        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
+        $objectProphecy->addMethodProphecy($this)->willReturn(null);
+
+        $this->withArguments($arguments);
+        $this->callOnWrappedObject('should', array($prediction));
+        $this->checkPrediction();
+    }
+
+    function it_links_back_to_ObjectProphecy_through_getter($objectProphecy)
+    {
+        $this->getObjectProphecy()->shouldReturn($objectProphecy);
+    }
+
+    function it_has_MethodName()
+    {
+        $this->getMethodName()->shouldReturn('getName');
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
+     */
+    function it_contains_ArgumentsWildcard_it_was_constructed_with($objectProphecy, $wildcard)
+    {
+        $this->beConstructedWith($objectProphecy, 'getName', $wildcard);
+
+        $this->getArgumentsWildcard()->shouldReturn($wildcard);
+    }
+
+    /**
+     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
+     */
+    function its_ArgumentWildcard_is_mutable_through_setter($wildcard)
+    {
+        $this->withArguments($wildcard);
+
+        $this->getArgumentsWildcard()->shouldReturn($wildcard);
+    }
+
+    function its_withArguments_transforms_passed_array_into_ArgumentsWildcard()
+    {
+        $this->withArguments(array(42, 33));
+
+        $wildcard = $this->getArgumentsWildcard();
+        $wildcard->shouldNotBe(null);
+        $wildcard->__toString()->shouldReturn('exact(42), exact(33)');
+    }
+
+    function its_withArguments_throws_exception_if_wrong_arguments_provided()
+    {
+        $this->shouldThrow('Prophecy\Exception\InvalidArgumentException')->duringWithArguments(42);
+    }
+}
+
+class ClassWithFinalMethod
+{
+    final public function finalMethod() {}
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/ObjectProphecySpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/ObjectProphecySpec.php
new file mode 100644
index 000000000000..00f57fe1a657
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/ObjectProphecySpec.php
@@ -0,0 +1,305 @@
+<?php
+
+namespace spec\Prophecy\Prophecy;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class ObjectProphecySpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Doubler\LazyDouble                $lazyDouble
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
+     */
+    function let($lazyDouble, $double)
+    {
+        $this->beConstructedWith($lazyDouble);
+
+        $lazyDouble->getInstance()->willReturn($double);
+    }
+
+    function it_implements_ProphecyInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Prophecy\ProphecyInterface');
+    }
+
+    function it_sets_parentClass_during_willExtend_call($lazyDouble)
+    {
+        $lazyDouble->setParentClass('123')->shouldBeCalled();
+
+        $this->willExtend('123');
+    }
+
+    function it_adds_interface_during_willImplement_call($lazyDouble)
+    {
+        $lazyDouble->addInterface('222')->shouldBeCalled();
+
+        $this->willImplement('222');
+    }
+
+    function it_sets_constructor_arguments_during_willBeConstructedWith_call($lazyDouble)
+    {
+        $lazyDouble->setArguments(array(1, 2, 5))->shouldBeCalled();
+
+        $this->willBeConstructedWith(array(1, 2, 5));
+    }
+
+    function it_does_not_have_method_prophecies_by_default()
+    {
+        $this->getMethodProphecies()->shouldHaveCount(0);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $method1
+     * @param \Prophecy\Prophecy\MethodProphecy    $method2
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
+     */
+    function it_should_get_method_prophecies_by_method_name($method1, $method2, $arguments)
+    {
+        $method1->getMethodName()->willReturn('getName');
+        $method1->getArgumentsWildcard()->willReturn($arguments);
+        $method2->getMethodName()->willReturn('setName');
+        $method2->getArgumentsWildcard()->willReturn($arguments);
+
+        $this->addMethodProphecy($method1);
+        $this->addMethodProphecy($method2);
+
+        $methods = $this->getMethodProphecies('setName');
+        $methods->shouldHaveCount(1);
+        $methods[0]->getMethodName()->shouldReturn('setName');
+    }
+
+    function it_should_return_empty_array_if_no_method_prophecies_found()
+    {
+        $methods = $this->getMethodProphecies('setName');
+        $methods->shouldHaveCount(0);
+    }
+
+    /**
+     * @param \Prophecy\Call\CallCenter $callCenter
+     */
+    function it_should_proxy_makeProphecyMethodCall_to_CallCenter($lazyDouble, $callCenter)
+    {
+        $this->beConstructedWith($lazyDouble, $callCenter);
+
+        $callCenter->makeCall($this->getWrappedObject(), 'setName', array('everzet'))->willReturn(42);
+
+        $this->makeProphecyMethodCall('setName', array('everzet'))->shouldReturn(42);
+    }
+
+    /**
+     * @param \Prophecy\Call\CallCenter            $callCenter
+     * @param \Prophecy\Prophecy\RevealerInterface $revealer
+     */
+    function it_should_reveal_arguments_and_return_values_from_callCenter(
+        $lazyDouble, $callCenter, $revealer
+    )
+    {
+        $this->beConstructedWith($lazyDouble, $callCenter, $revealer);
+
+        $revealer->reveal(array('question'))->willReturn(array('life'));
+        $revealer->reveal('answer')->willReturn(42);
+
+        $callCenter->makeCall($this->getWrappedObject(), 'setName', array('life'))->willReturn('answer');
+
+        $this->makeProphecyMethodCall('setName', array('question'))->shouldReturn(42);
+    }
+
+    /**
+     * @param \Prophecy\Call\CallCenter            $callCenter
+     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
+     * @param \Prophecy\Call\Call                  $call
+     */
+    function it_should_proxy_getProphecyMethodCalls_to_CallCenter(
+        $lazyDouble, $callCenter, $wildcard, $call
+    )
+    {
+        $this->beConstructedWith($lazyDouble, $callCenter);
+
+        $callCenter->findCalls('setName', $wildcard)->willReturn(array($call));
+
+        $this->findProphecyMethodCalls('setName', $wildcard)->shouldReturn(array($call));
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy
+     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard
+     */
+    function its_addMethodProphecy_adds_method_prophecy(
+        $methodProphecy, $argumentsWildcard
+    )
+    {
+        $methodProphecy->getArgumentsWildcard()->willReturn($argumentsWildcard);
+        $methodProphecy->getMethodName()->willReturn('getUsername');
+
+        $this->addMethodProphecy($methodProphecy);
+
+        $this->getMethodProphecies()->shouldReturn(array(
+            'getUsername' => array($methodProphecy)
+        ));
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy1
+     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy2
+     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard1
+     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard2
+     */
+    function its_addMethodProphecy_handles_prophecies_with_different_arguments(
+        $methodProphecy1, $methodProphecy2, $argumentsWildcard1, $argumentsWildcard2
+    )
+    {
+        $methodProphecy1->getArgumentsWildcard()->willReturn($argumentsWildcard1);
+        $methodProphecy1->getMethodName()->willReturn('getUsername');
+
+        $methodProphecy2->getArgumentsWildcard()->willReturn($argumentsWildcard2);
+        $methodProphecy2->getMethodName()->willReturn('getUsername');
+
+        $this->addMethodProphecy($methodProphecy1);
+        $this->addMethodProphecy($methodProphecy2);
+
+        $this->getMethodProphecies()->shouldReturn(array(
+            'getUsername' => array(
+                $methodProphecy1,
+                $methodProphecy2,
+            )
+        ));
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy1
+     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy2
+     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard1
+     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard2
+     */
+    function its_addMethodProphecy_handles_prophecies_for_different_methods(
+        $methodProphecy1, $methodProphecy2, $argumentsWildcard1, $argumentsWildcard2
+    )
+    {
+        $methodProphecy1->getArgumentsWildcard()->willReturn($argumentsWildcard1);
+        $methodProphecy1->getMethodName()->willReturn('getUsername');
+
+        $methodProphecy2->getArgumentsWildcard()->willReturn($argumentsWildcard2);
+        $methodProphecy2->getMethodName()->willReturn('isUsername');
+
+        $this->addMethodProphecy($methodProphecy1);
+        $this->addMethodProphecy($methodProphecy2);
+
+        $this->getMethodProphecies()->shouldReturn(array(
+            'getUsername' => array(
+                $methodProphecy1
+            ),
+            'isUsername' => array(
+                $methodProphecy2
+            )
+        ));
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
+     */
+    function its_addMethodProphecy_throws_exception_when_method_has_no_ArgumentsWildcard(
+        $methodProphecy
+    )
+    {
+        $methodProphecy->getArgumentsWildcard()->willReturn(null);
+        $methodProphecy->getObjectProphecy()->willReturn($this);
+        $methodProphecy->getMethodName()->willReturn('getTitle');
+
+        $this->shouldThrow('Prophecy\Exception\Prophecy\MethodProphecyException')->duringAddMethodProphecy(
+            $methodProphecy
+        );
+    }
+
+    function it_returns_null_after_checkPredictions_call_if_there_is_no_method_prophecies()
+    {
+        $this->checkProphecyMethodsPredictions()->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy1
+     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy2
+     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard1
+     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard2
+     */
+    function it_throws_AggregateException_during_checkPredictions_if_predictions_fail(
+        $methodProphecy1, $methodProphecy2, $argumentsWildcard1, $argumentsWildcard2
+    )
+    {
+        $methodProphecy1->getMethodName()->willReturn('getName');
+        $methodProphecy1->getArgumentsWildcard()->willReturn($argumentsWildcard1);
+        $methodProphecy1->checkPrediction()
+            ->willThrow('Prophecy\Exception\Prediction\AggregateException');
+
+        $methodProphecy2->getMethodName()->willReturn('setName');
+        $methodProphecy2->getArgumentsWildcard()->willReturn($argumentsWildcard2);
+        $methodProphecy2->checkPrediction()
+            ->willThrow('Prophecy\Exception\Prediction\AggregateException');
+
+        $this->addMethodProphecy($methodProphecy1);
+        $this->addMethodProphecy($methodProphecy2);
+
+        $this->shouldThrow('Prophecy\Exception\Prediction\AggregateException')
+            ->duringCheckProphecyMethodsPredictions();
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Doubler                   $doubler
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $reflection
+     */
+    function it_returns_new_MethodProphecy_instance_for_arbitrary_call($doubler, $reflection)
+    {
+        $doubler->double(Argument::any())->willReturn($reflection);
+
+        $return = $this->getProphecy();
+        $return->shouldBeAnInstanceOf('Prophecy\Prophecy\MethodProphecy');
+        $return->getMethodName()->shouldReturn('getProphecy');
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Doubler                   $doubler
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $reflection
+     */
+    function it_returns_same_MethodProphecy_for_same_registered_signature($doubler, $reflection)
+    {
+        $doubler->double(Argument::any())->willReturn($reflection);
+
+        $this->addMethodProphecy($methodProphecy1 = $this->getProphecy(1, 2, 3));
+        $methodProphecy2 = $this->getProphecy(1, 2, 3);
+
+        $methodProphecy2->shouldBe($methodProphecy1);
+    }
+
+    /**
+     * @param \Prophecy\Doubler\Doubler                   $doubler
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $reflection
+     */
+    function it_returns_new_MethodProphecy_for_different_signatures($doubler, $reflection)
+    {
+        $doubler->double(Argument::any())->willReturn($reflection);
+
+        $value = new ObjectProphecySpecFixtureB('ABC');
+        $value2 = new ObjectProphecySpecFixtureB('CBA');
+
+        $this->addMethodProphecy($methodProphecy1 = $this->getProphecy(1, 2, 3, $value));
+        $methodProphecy2 = $this->getProphecy(1, 2, 3, $value2);
+
+        $methodProphecy2->shouldNotBe($methodProphecy1);
+    }
+}
+
+class ObjectProphecySpecFixtureA
+{
+	public $errors;
+}
+
+class ObjectProphecySpecFixtureB extends ObjectProphecySpecFixtureA
+{
+    public $errors;
+    public $value = null;
+
+    public function __construct($value)
+    {
+        $this->value = $value;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/RevealerSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/RevealerSpec.php
new file mode 100644
index 000000000000..4d83d7396590
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/RevealerSpec.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace spec\Prophecy\Prophecy;
+
+use PhpSpec\ObjectBehavior;
+
+class RevealerSpec extends ObjectBehavior
+{
+    function it_is_revealer()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Prophecy\RevealerInterface');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecyInterface $prophecy
+     * @param \stdClass                            $object
+     */
+    function it_reveals_single_instance_of_ProphecyInterface($prophecy, $object)
+    {
+        $prophecy->reveal()->willReturn($object);
+
+        $this->reveal($prophecy)->shouldReturn($object);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecyInterface $prophecy1
+     * @param \Prophecy\Prophecy\ProphecyInterface $prophecy2
+     * @param \stdClass                            $object1
+     * @param \stdClass                            $object2
+     */
+    function it_reveals_instances_of_ProphecyInterface_inside_array(
+        $prophecy1, $prophecy2, $object1, $object2
+    )
+    {
+        $prophecy1->reveal()->willReturn($object1);
+        $prophecy2->reveal()->willReturn($object2);
+
+        $this->reveal(array(
+            array('item' => $prophecy2),
+            $prophecy1
+        ))->shouldReturn(array(
+            array('item' => $object2),
+            $object1
+        ));
+    }
+
+    function it_does_not_touch_non_prophecy_interface()
+    {
+        $this->reveal(42)->shouldReturn(42);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/ProphetSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/ProphetSpec.php
new file mode 100644
index 000000000000..74d5976a6067
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/ProphetSpec.php
@@ -0,0 +1,91 @@
+<?php
+
+namespace spec\Prophecy;
+
+use PhpSpec\ObjectBehavior;
+use Prophecy\Argument;
+
+class ProphetSpec extends ObjectBehavior
+{
+    /**
+     * @param \Prophecy\Doubler\Doubler                   $doubler
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
+     */
+    function let($doubler, $double)
+    {
+        $doubler->double(null, array())->willReturn($double);
+
+        $this->beConstructedWith($doubler);
+    }
+
+    function it_constructs_new_prophecy_on_prophesize_call()
+    {
+        $prophecy = $this->prophesize();
+        $prophecy->shouldBeAnInstanceOf('Prophecy\Prophecy\ObjectProphecy');
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $newDouble
+     */
+    function it_constructs_new_prophecy_with_parent_class_if_specified($doubler, $newDouble)
+    {
+        $doubler->double(Argument::any(), array())->willReturn($newDouble);
+
+        $this->prophesize('Prophecy\Prophet')->reveal()->shouldReturn($newDouble);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\ProphecySubjectInterface $newDouble
+     */
+    function it_constructs_new_prophecy_with_interface_if_specified($doubler, $newDouble)
+    {
+        $doubler->double(null, Argument::any())->willReturn($newDouble);
+
+        $this->prophesize('ArrayAccess')->reveal()->shouldReturn($newDouble);
+    }
+
+    function it_exposes_all_created_prophecies_through_getter()
+    {
+        $prophecy1 = $this->prophesize();
+        $prophecy2 = $this->prophesize();
+
+        $this->getProphecies()->shouldReturn(array($prophecy1, $prophecy2));
+    }
+
+    function it_does_nothing_during_checkPredictions_call_if_no_predictions_defined()
+    {
+        $this->checkPredictions()->shouldReturn(null);
+    }
+
+    /**
+     * @param \Prophecy\Prophecy\MethodProphecy    $method1
+     * @param \Prophecy\Prophecy\MethodProphecy    $method2
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments1
+     * @param \Prophecy\Argument\ArgumentsWildcard $arguments2
+     */
+    function it_throws_AggregateException_if_defined_predictions_fail(
+        $method1, $method2, $arguments1, $arguments2
+    )
+    {
+        $method1->getMethodName()->willReturn('getName');
+        $method1->getArgumentsWildcard()->willReturn($arguments1);
+        $method1->checkPrediction()->willReturn(null);
+
+        $method2->getMethodName()->willReturn('isSet');
+        $method2->getArgumentsWildcard()->willReturn($arguments2);
+        $method2->checkPrediction()->willThrow(
+            'Prophecy\Exception\Prediction\AggregateException'
+        );
+
+        $this->prophesize()->addMethodProphecy($method1);
+        $this->prophesize()->addMethodProphecy($method2);
+
+        $this->shouldThrow('Prophecy\Exception\Prediction\AggregateException')
+            ->duringCheckPredictions();
+    }
+
+    function it_exposes_doubler_through_getter($doubler)
+    {
+        $this->getDoubler()->shouldReturn($doubler);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Util/StringUtilSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Util/StringUtilSpec.php
new file mode 100644
index 000000000000..a4eef59f9f7c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/spec/Prophecy/Util/StringUtilSpec.php
@@ -0,0 +1,97 @@
+<?php
+
+namespace spec\Prophecy\Util;
+
+use PhpSpec\ObjectBehavior;
+
+class StringUtilSpec extends ObjectBehavior
+{
+    function it_generates_proper_string_representation_for_integer()
+    {
+        $this->stringify(42)->shouldReturn('42');
+    }
+
+    function it_generates_proper_string_representation_for_string()
+    {
+        $this->stringify('some string')->shouldReturn('"some string"');
+    }
+
+    function it_generates_single_line_representation_for_multiline_string()
+    {
+        $this->stringify("some\nstring")->shouldReturn('"some\\nstring"');
+    }
+
+    function it_generates_proper_string_representation_for_double()
+    {
+        $this->stringify(42.3)->shouldReturn('42.3');
+    }
+
+    function it_generates_proper_string_representation_for_boolean_true()
+    {
+        $this->stringify(true)->shouldReturn('true');
+    }
+
+    function it_generates_proper_string_representation_for_boolean_false()
+    {
+        $this->stringify(false)->shouldReturn('false');
+    }
+
+    function it_generates_proper_string_representation_for_null()
+    {
+        $this->stringify(null)->shouldReturn('null');
+    }
+
+    function it_generates_proper_string_representation_for_empty_array()
+    {
+        $this->stringify(array())->shouldReturn('[]');
+    }
+
+    function it_generates_proper_string_representation_for_array()
+    {
+        $this->stringify(array('zet', 42))->shouldReturn('["zet", 42]');
+    }
+
+    function it_generates_proper_string_representation_for_hash_containing_one_value()
+    {
+        $this->stringify(array('ever' => 'zet'))->shouldReturn('["ever" => "zet"]');
+    }
+
+    function it_generates_proper_string_representation_for_hash()
+    {
+        $this->stringify(array('ever' => 'zet', 52 => 'hey', 'num' => 42))->shouldReturn(
+            '["ever" => "zet", 52 => "hey", "num" => 42]'
+        );
+    }
+
+    function it_generates_proper_string_representation_for_resource()
+    {
+        $resource = fopen(__FILE__, 'r');
+        $this->stringify($resource)->shouldReturn('stream:'.$resource);
+    }
+
+    /**
+     * @param \stdClass $object
+     */
+    function it_generates_proper_string_representation_for_object($object)
+    {
+        $objHash = sprintf('%s:%s',
+            get_class($object->getWrappedObject()),
+            spl_object_hash($object->getWrappedObject())
+        ) . " Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n)";
+
+        $this->stringify($object)->shouldReturn("$objHash");
+    }
+
+    /**
+     * @param stdClass $object
+     */
+    function it_generates_proper_string_representation_for_object_without_exporting($object)
+    {
+        $objHash = sprintf('%s:%s',
+            get_class($object->getWrappedObject()),
+            spl_object_hash($object->getWrappedObject())
+        );
+
+        $this->stringify($object, false)->shouldReturn("$objHash");
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument.php
new file mode 100644
index 000000000000..f2b336485434
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument.php
@@ -0,0 +1,198 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy;
+
+use Prophecy\Argument\Token;
+
+/**
+ * Argument tokens shortcuts.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class Argument
+{
+    /**
+     * Checks that argument is exact value or object.
+     *
+     * @param mixed $value
+     *
+     * @return Token\ExactValueToken
+     */
+    public static function exact($value)
+    {
+        return new Token\ExactValueToken($value);
+    }
+
+    /**
+     * Checks that argument is of specific type or instance of specific class.
+     *
+     * @param string $type Type name (`integer`, `string`) or full class name
+     *
+     * @return Token\TypeToken
+     */
+    public static function type($type)
+    {
+        return new Token\TypeToken($type);
+    }
+
+    /**
+     * Checks that argument object has specific state.
+     *
+     * @param string $methodName
+     * @param mixed  $value
+     *
+     * @return Token\ObjectStateToken
+     */
+    public static function which($methodName, $value)
+    {
+        return new Token\ObjectStateToken($methodName, $value);
+    }
+
+    /**
+     * Checks that argument matches provided callback.
+     *
+     * @param callable $callback
+     *
+     * @return Token\CallbackToken
+     */
+    public static function that($callback)
+    {
+        return new Token\CallbackToken($callback);
+    }
+
+    /**
+     * Matches any single value.
+     *
+     * @return Token\AnyValueToken
+     */
+    public static function any()
+    {
+        return new Token\AnyValueToken;
+    }
+
+    /**
+     * Matches all values to the rest of the signature.
+     *
+     * @return Token\AnyValuesToken
+     */
+    public static function cetera()
+    {
+        return new Token\AnyValuesToken;
+    }
+
+    /**
+     * Checks that argument matches all tokens
+     *
+     * @param mixed ... a list of tokens
+     *
+     * @return Token\LogicalAndToken
+     */
+    public static function allOf()
+    {
+        return new Token\LogicalAndToken(func_get_args());
+    }
+
+    /**
+     * Checks that argument array or countable object has exact number of elements.
+     *
+     * @param integer $value array elements count
+     *
+     * @return Token\ArrayCountToken
+     */
+    public static function size($value)
+    {
+        return new Token\ArrayCountToken($value);
+    }
+
+    /**
+     * Checks that argument array contains (key, value) pair
+     *
+     * @param mixed $key   exact value or token
+     * @param mixed $value exact value or token
+     *
+     * @return Token\ArrayEntryToken
+     */
+    public static function withEntry($key, $value)
+    {
+        return new Token\ArrayEntryToken($key, $value);
+    }
+
+    /**
+     * Checks that arguments array entries all match value
+     *
+     * @param mixed $value
+     *
+     * @return Token\ArrayEveryEntryToken
+     */
+    public static function withEveryEntry($value)
+    {
+        return new Token\ArrayEveryEntryToken($value);
+    }
+
+    /**
+     * Checks that argument array contains value
+     *
+     * @param mixed $value
+     *
+     * @return Token\ArrayEntryToken
+     */
+    public static function containing($value)
+    {
+        return new Token\ArrayEntryToken(self::any(), $value);
+    }
+
+    /**
+     * Checks that argument array has key
+     *
+     * @param mixed $key exact value or token
+     *
+     * @return Token\ArrayEntryToken
+     */
+    public static function withKey($key)
+    {
+        return new Token\ArrayEntryToken($key, self::any());
+    }
+
+    /**
+     * Checks that argument does not match the value|token.
+     *
+     * @param mixed $value either exact value or argument token
+     *
+     * @return Token\LogicalNotToken
+     */
+    public static function not($value)
+    {
+        return new Token\LogicalNotToken($value);
+    }
+
+    /**
+     * @param string $value
+     *
+     * @return Token\StringContainsToken
+     */
+    public static function containingString($value)
+    {
+        return new Token\StringContainsToken($value);
+    }
+
+    /**
+     * Checks that argument is identical value.
+     *
+     * @param mixed $value
+     *
+     * @return Token\IdenticalValueToken
+     */
+    public static function is($value)
+    {
+        return new Token\IdenticalValueToken($value);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php
new file mode 100644
index 000000000000..a088f21d21df
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php
@@ -0,0 +1,101 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument;
+
+/**
+ * Arguments wildcarding.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ArgumentsWildcard
+{
+    /**
+     * @var Token\TokenInterface[]
+     */
+    private $tokens = array();
+    private $string;
+
+    /**
+     * Initializes wildcard.
+     *
+     * @param array $arguments Array of argument tokens or values
+     */
+    public function __construct(array $arguments)
+    {
+        foreach ($arguments as $argument) {
+            if (!$argument instanceof Token\TokenInterface) {
+                $argument = new Token\ExactValueToken($argument);
+            }
+
+            $this->tokens[] = $argument;
+        }
+    }
+
+    /**
+     * Calculates wildcard match score for provided arguments.
+     *
+     * @param array $arguments
+     *
+     * @return false|int False OR integer score (higher - better)
+     */
+    public function scoreArguments(array $arguments)
+    {
+        if (0 == count($arguments) && 0 == count($this->tokens)) {
+            return 1;
+        }
+
+        $arguments  = array_values($arguments);
+        $totalScore = 0;
+        foreach ($this->tokens as $i => $token) {
+            $argument = isset($arguments[$i]) ? $arguments[$i] : null;
+            if (1 >= $score = $token->scoreArgument($argument)) {
+                return false;
+            }
+
+            $totalScore += $score;
+
+            if (true === $token->isLast()) {
+                return $totalScore;
+            }
+        }
+
+        if (count($arguments) > count($this->tokens)) {
+            return false;
+        }
+
+        return $totalScore;
+    }
+
+    /**
+     * Returns string representation for wildcard.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        if (null === $this->string) {
+            $this->string = implode(', ', array_map(function ($token) {
+                return (string) $token;
+            }, $this->tokens));
+        }
+
+        return $this->string;
+    }
+
+    /**
+     * @return array
+     */
+    public function getTokens()
+    {
+        return $this->tokens;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php
new file mode 100644
index 000000000000..50988112c5a5
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php
@@ -0,0 +1,52 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * Any single value token.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class AnyValueToken implements TokenInterface
+{
+    /**
+     * Always scores 3 for any argument.
+     *
+     * @param $argument
+     *
+     * @return int
+     */
+    public function scoreArgument($argument)
+    {
+        return 3;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return '*';
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php
new file mode 100644
index 000000000000..f76b17bc0ba3
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php
@@ -0,0 +1,52 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * Any values token.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class AnyValuesToken implements TokenInterface
+{
+    /**
+     * Always scores 2 for any argument.
+     *
+     * @param $argument
+     *
+     * @return int
+     */
+    public function scoreArgument($argument)
+    {
+        return 2;
+    }
+
+    /**
+     * Returns true to stop wildcard from processing other tokens.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return true;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return '* [, ...]';
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php
new file mode 100644
index 000000000000..96b4befd7f51
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php
@@ -0,0 +1,86 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * Array elements count token.
+ *
+ * @author Boris Mikhaylov <kaguxmail@gmail.com>
+ */
+
+class ArrayCountToken implements TokenInterface
+{
+    private $count;
+
+    /**
+     * @param integer $value
+     */
+    public function __construct($value)
+    {
+        $this->count = $value;
+    }
+
+    /**
+     * Scores 6 when argument has preset number of elements.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        return $this->isCountable($argument) && $this->hasProperCount($argument) ? 6 : false;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return boolean
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return sprintf('count(%s)', $this->count);
+    }
+
+    /**
+     * Returns true if object is either array or instance of \Countable
+     *
+     * @param $argument
+     * @return bool
+     */
+    private function isCountable($argument)
+    {
+        return (is_array($argument) || $argument instanceof \Countable);
+    }
+
+    /**
+     * Returns true if $argument has expected number of elements
+     *
+     * @param array|\Countable $argument
+     *
+     * @return bool
+     */
+    private function hasProperCount($argument)
+    {
+        return $this->count === count($argument);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php
new file mode 100644
index 000000000000..0305fc7207c4
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php
@@ -0,0 +1,143 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+use Prophecy\Exception\InvalidArgumentException;
+
+/**
+ * Array entry token.
+ *
+ * @author Boris Mikhaylov <kaguxmail@gmail.com>
+ */
+class ArrayEntryToken implements TokenInterface
+{
+    /** @var \Prophecy\Argument\Token\TokenInterface */
+    private $key;
+    /** @var \Prophecy\Argument\Token\TokenInterface */
+    private $value;
+
+    /**
+     * @param mixed $key   exact value or token
+     * @param mixed $value exact value or token
+     */
+    public function __construct($key, $value)
+    {
+        $this->key = $this->wrapIntoExactValueToken($key);
+        $this->value = $this->wrapIntoExactValueToken($value);
+    }
+
+    /**
+     * Scores half of combined scores from key and value tokens for same entry. Capped at 8.
+     * If argument implements \ArrayAccess without \Traversable, then key token is restricted to ExactValueToken.
+     *
+     * @param array|\ArrayAccess|\Traversable $argument
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        if ($argument instanceof \Traversable) {
+            $argument = iterator_to_array($argument);
+        }
+
+        if ($argument instanceof \ArrayAccess) {
+            $argument = $this->convertArrayAccessToEntry($argument);
+        }
+
+        if (!is_array($argument) || empty($argument)) {
+            return false;
+        }
+
+        $keyScores = array_map(array($this->key,'scoreArgument'), array_keys($argument));
+        $valueScores = array_map(array($this->value,'scoreArgument'), $argument);
+        $scoreEntry = function ($value, $key) {
+            return $value && $key ? min(8, ($key + $value) / 2) : false;
+        };
+
+        return max(array_map($scoreEntry, $valueScores, $keyScores));
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return boolean
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return sprintf('[..., %s => %s, ...]', $this->key, $this->value);
+    }
+
+    /**
+     * Returns key
+     *
+     * @return TokenInterface
+     */
+    public function getKey()
+    {
+        return $this->key;
+    }
+
+    /**
+     * Returns value
+     *
+     * @return TokenInterface
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Wraps non token $value into ExactValueToken
+     *
+     * @param $value
+     * @return TokenInterface
+     */
+    private function wrapIntoExactValueToken($value)
+    {
+        return $value instanceof TokenInterface ? $value : new ExactValueToken($value);
+    }
+
+    /**
+     * Converts instance of \ArrayAccess to key => value array entry
+     *
+     * @param \ArrayAccess $object
+     *
+     * @return array|null
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    private function convertArrayAccessToEntry(\ArrayAccess $object)
+    {
+        if (!$this->key instanceof ExactValueToken) {
+            throw new InvalidArgumentException(sprintf(
+                'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL.
+                'But you used `%s`.',
+                $this->key
+            ));
+        }
+
+        $key = $this->key->getValue();
+
+        return $object->offsetExists($key) ? array($key => $object[$key]) : array();
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php
new file mode 100644
index 000000000000..5d41fa487c4c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * Array every entry token.
+ *
+ * @author Adrien Brault <adrien.brault@gmail.com>
+ */
+class ArrayEveryEntryToken implements TokenInterface
+{
+    /**
+     * @var TokenInterface
+     */
+    private $value;
+
+    /**
+     * @param mixed $value exact value or token
+     */
+    public function __construct($value)
+    {
+        if (!$value instanceof TokenInterface) {
+            $value = new ExactValueToken($value);
+        }
+
+        $this->value = $value;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function scoreArgument($argument)
+    {
+        if (!$argument instanceof \Traversable && !is_array($argument)) {
+            return false;
+        }
+
+        $scores = array();
+        foreach ($argument as $key => $argumentEntry) {
+            $scores[] = $this->value->scoreArgument($argumentEntry);
+        }
+
+        if (empty($scores) || in_array(false, $scores, true)) {
+            return false;
+        }
+
+        return array_sum($scores) / count($scores);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __toString()
+    {
+        return sprintf('[%s, ..., %s]', $this->value, $this->value);
+    }
+
+    /**
+     * @return TokenInterface
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php
new file mode 100644
index 000000000000..f45ba20becd0
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php
@@ -0,0 +1,75 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+use Prophecy\Exception\InvalidArgumentException;
+
+/**
+ * Callback-verified token.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class CallbackToken implements TokenInterface
+{
+    private $callback;
+
+    /**
+     * Initializes token.
+     *
+     * @param callable $callback
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function __construct($callback)
+    {
+        if (!is_callable($callback)) {
+            throw new InvalidArgumentException(sprintf(
+                'Callable expected as an argument to CallbackToken, but got %s.',
+                gettype($callback)
+            ));
+        }
+
+        $this->callback = $callback;
+    }
+
+    /**
+     * Scores 7 if callback returns true, false otherwise.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        return call_user_func($this->callback, $argument) ? 7 : false;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return 'callback()';
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php
new file mode 100644
index 000000000000..ba895ab97594
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php
@@ -0,0 +1,116 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+use SebastianBergmann\Comparator\Factory as ComparatorFactory;
+use SebastianBergmann\Comparator\ComparisonFailure;
+use Prophecy\Util\StringUtil;
+
+/**
+ * Exact value token.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ExactValueToken implements TokenInterface
+{
+    private $value;
+    private $string;
+    private $util;
+    private $comparatorFactory;
+
+    /**
+     * Initializes token.
+     *
+     * @param mixed             $value
+     * @param StringUtil        $util
+     * @param ComparatorFactory $comparatorFactory
+     */
+    public function __construct($value, StringUtil $util = null, ComparatorFactory $comparatorFactory = null)
+    {
+        $this->value = $value;
+        $this->util  = $util ?: new StringUtil();
+
+        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();
+    }
+
+    /**
+     * Scores 10 if argument matches preset value.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        if (is_object($argument) && is_object($this->value)) {
+            $comparator = $this->comparatorFactory->getComparatorFor(
+                $argument, $this->value
+            );
+
+            try {
+                $comparator->assertEquals($argument, $this->value);
+                return 10;
+            } catch (ComparisonFailure $failure) {}
+        }
+
+        // If either one is an object it should castable to a string
+        if (is_object($argument) xor is_object($this->value)) {
+            if (is_object($argument) && !method_exists($argument, '__toString')) {
+                return false;
+            }
+
+            if (is_object($this->value) && !method_exists($this->value, '__toString')) {
+                return false;
+            }
+        } elseif (is_numeric($argument) && is_numeric($this->value)) {
+            // noop
+        } elseif (gettype($argument) !== gettype($this->value)) {
+            return false;
+        }
+
+        return $argument == $this->value ? 10 : false;
+    }
+
+    /**
+     * Returns preset value against which token checks arguments.
+     *
+     * @return mixed
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        if (null === $this->string) {
+            $this->string = sprintf('exact(%s)', $this->util->stringify($this->value));
+        }
+
+        return $this->string;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php
new file mode 100644
index 000000000000..0b6d23ab667d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php
@@ -0,0 +1,74 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+use Prophecy\Util\StringUtil;
+
+/**
+ * Identical value token.
+ *
+ * @author Florian Voutzinos <florian@voutzinos.com>
+ */
+class IdenticalValueToken implements TokenInterface
+{
+    private $value;
+    private $string;
+    private $util;
+
+    /**
+     * Initializes token.
+     *
+     * @param mixed      $value
+     * @param StringUtil $util
+     */
+    public function __construct($value, StringUtil $util = null)
+    {
+        $this->value = $value;
+        $this->util  = $util ?: new StringUtil();
+    }
+
+    /**
+     * Scores 11 if argument matches preset value.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        return $argument === $this->value ? 11 : false;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        if (null === $this->string) {
+            $this->string = sprintf('identical(%s)', $this->util->stringify($this->value));
+        }
+
+        return $this->string;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php
new file mode 100644
index 000000000000..4ee1b25e11f2
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php
@@ -0,0 +1,80 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * Logical AND token.
+ *
+ * @author Boris Mikhaylov <kaguxmail@gmail.com>
+ */
+class LogicalAndToken implements TokenInterface
+{
+    private $tokens = array();
+
+    /**
+     * @param array $arguments exact values or tokens
+     */
+    public function __construct(array $arguments)
+    {
+        foreach ($arguments as $argument) {
+            if (!$argument instanceof TokenInterface) {
+                $argument = new ExactValueToken($argument);
+            }
+            $this->tokens[] = $argument;
+        }
+    }
+
+    /**
+     * Scores maximum score from scores returned by tokens for this argument if all of them score.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        if (0 === count($this->tokens)) {
+            return false;
+        }
+
+        $maxScore = 0;
+        foreach ($this->tokens as $token) {
+            $score = $token->scoreArgument($argument);
+            if (false === $score) {
+                return false;
+            }
+            $maxScore = max($score, $maxScore);
+        }
+
+        return $maxScore;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return boolean
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return sprintf('bool(%s)', implode(' AND ', $this->tokens));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php
new file mode 100644
index 000000000000..623efa57a7f7
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php
@@ -0,0 +1,73 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * Logical NOT token.
+ *
+ * @author Boris Mikhaylov <kaguxmail@gmail.com>
+ */
+class LogicalNotToken implements TokenInterface
+{
+    /** @var \Prophecy\Argument\Token\TokenInterface  */
+    private $token;
+
+    /**
+     * @param mixed $value exact value or token
+     */
+    public function __construct($value)
+    {
+        $this->token = $value instanceof TokenInterface? $value : new ExactValueToken($value);
+    }
+
+    /**
+     * Scores 4 when preset token does not match the argument.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        return false === $this->token->scoreArgument($argument) ? 4 : false;
+    }
+
+    /**
+     * Returns true if preset token is last.
+     *
+     * @return bool|int
+     */
+    public function isLast()
+    {
+        return $this->token->isLast();
+    }
+
+    /**
+     * Returns originating token.
+     *
+     * @return TokenInterface
+     */
+    public function getOriginatingToken()
+    {
+        return $this->token;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return sprintf('not(%s)', $this->token);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php
new file mode 100644
index 000000000000..ea38fe16027a
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php
@@ -0,0 +1,104 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+use SebastianBergmann\Comparator\Factory as ComparatorFactory;
+use SebastianBergmann\Comparator\ComparisonFailure;
+use Prophecy\Util\StringUtil;
+
+/**
+ * Object state-checker token.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ObjectStateToken implements TokenInterface
+{
+    private $name;
+    private $value;
+    private $util;
+    private $comparatorFactory;
+
+    /**
+     * Initializes token.
+     *
+     * @param string            $methodName
+     * @param mixed             $value             Expected return value
+     * @param null|StringUtil   $util
+     * @param ComparatorFactory $comparatorFactory
+     */
+    public function __construct(
+        $methodName,
+        $value,
+        StringUtil $util = null,
+        ComparatorFactory $comparatorFactory = null
+    ) {
+        $this->name  = $methodName;
+        $this->value = $value;
+        $this->util  = $util ?: new StringUtil;
+
+        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();
+    }
+
+    /**
+     * Scores 8 if argument is an object, which method returns expected value.
+     *
+     * @param mixed $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        if (is_object($argument) && method_exists($argument, $this->name)) {
+            $actual = call_user_func(array($argument, $this->name));
+
+            $comparator = $this->comparatorFactory->getComparatorFor(
+                $actual, $this->value
+            );
+
+            try {
+                $comparator->assertEquals($actual, $this->value);
+                return 8;
+            } catch (ComparisonFailure $failure) {
+                return false;
+            }
+        }
+
+        if (is_object($argument) && property_exists($argument, $this->name)) {
+            return $argument->{$this->name} === $this->value ? 8 : false;
+        }
+
+        return false;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return sprintf('state(%s(), %s)',
+            $this->name,
+            $this->util->stringify($this->value)
+        );
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php
new file mode 100644
index 000000000000..24ff8c2ecf54
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * String contains token.
+ *
+ * @author Peter Mitchell <pete@peterjmit.com>
+ */
+class StringContainsToken implements TokenInterface
+{
+    private $value;
+
+    /**
+     * Initializes token.
+     *
+     * @param string $value
+     */
+    public function __construct($value)
+    {
+        $this->value = $value;
+    }
+
+    public function scoreArgument($argument)
+    {
+        return strpos($argument, $this->value) !== false ? 6 : false;
+    }
+
+    /**
+     * Returns preset value against which token checks arguments.
+     *
+     * @return mixed
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return sprintf('contains("%s")', $this->value);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php
new file mode 100644
index 000000000000..625d3bad22f0
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+/**
+ * Argument token interface.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface TokenInterface
+{
+    /**
+     * Calculates token match score for provided argument.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument);
+
+    /**
+     * Returns true if this token prevents check of other tokens (is last one).
+     *
+     * @return bool|int
+     */
+    public function isLast();
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString();
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php
new file mode 100644
index 000000000000..cb65132ca0e0
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php
@@ -0,0 +1,76 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Argument\Token;
+
+use Prophecy\Exception\InvalidArgumentException;
+
+/**
+ * Value type token.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class TypeToken implements TokenInterface
+{
+    private $type;
+
+    /**
+     * @param string $type
+     */
+    public function __construct($type)
+    {
+        $checker = "is_{$type}";
+        if (!function_exists($checker) && !interface_exists($type) && !class_exists($type)) {
+            throw new InvalidArgumentException(sprintf(
+                'Type or class name expected as an argument to TypeToken, but got %s.', $type
+            ));
+        }
+
+        $this->type = $type;
+    }
+
+    /**
+     * Scores 5 if argument has the same type this token was constructed with.
+     *
+     * @param $argument
+     *
+     * @return bool|int
+     */
+    public function scoreArgument($argument)
+    {
+        $checker = "is_{$this->type}";
+        if (function_exists($checker)) {
+            return call_user_func($checker, $argument) ? 5 : false;
+        }
+
+        return $argument instanceof $this->type ? 5 : false;
+    }
+
+    /**
+     * Returns false.
+     *
+     * @return bool
+     */
+    public function isLast()
+    {
+        return false;
+    }
+
+    /**
+     * Returns string representation for token.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return sprintf('type(%s)', $this->type);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php b/core/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
new file mode 100644
index 000000000000..2f3fbadb1a6d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
@@ -0,0 +1,127 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Call;
+
+use Exception;
+
+/**
+ * Call object.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class Call
+{
+    private $methodName;
+    private $arguments;
+    private $returnValue;
+    private $exception;
+    private $file;
+    private $line;
+
+    /**
+     * Initializes call.
+     *
+     * @param string      $methodName
+     * @param array       $arguments
+     * @param mixed       $returnValue
+     * @param Exception   $exception
+     * @param null|string $file
+     * @param null|int    $line
+     */
+    public function __construct($methodName, array $arguments, $returnValue,
+                                Exception $exception = null, $file, $line)
+    {
+        $this->methodName  = $methodName;
+        $this->arguments   = $arguments;
+        $this->returnValue = $returnValue;
+        $this->exception   = $exception;
+
+        if ($file) {
+            $this->file = $file;
+            $this->line = intval($line);
+        }
+    }
+
+    /**
+     * Returns called method name.
+     *
+     * @return string
+     */
+    public function getMethodName()
+    {
+        return $this->methodName;
+    }
+
+    /**
+     * Returns called method arguments.
+     *
+     * @return array
+     */
+    public function getArguments()
+    {
+        return $this->arguments;
+    }
+
+    /**
+     * Returns called method return value.
+     *
+     * @return null|mixed
+     */
+    public function getReturnValue()
+    {
+        return $this->returnValue;
+    }
+
+    /**
+     * Returns exception that call thrown.
+     *
+     * @return null|Exception
+     */
+    public function getException()
+    {
+        return $this->exception;
+    }
+
+    /**
+     * Returns callee filename.
+     *
+     * @return string
+     */
+    public function getFile()
+    {
+        return $this->file;
+    }
+
+    /**
+     * Returns callee line number.
+     *
+     * @return int
+     */
+    public function getLine()
+    {
+        return $this->line;
+    }
+
+    /**
+     * Returns short notation for callee place.
+     *
+     * @return string
+     */
+    public function getCallPlace()
+    {
+        if (null === $this->file) {
+            return 'unknown';
+        }
+
+        return sprintf('%s:%d', $this->file, $this->line);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php b/core/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php
new file mode 100644
index 000000000000..749585510b7b
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php
@@ -0,0 +1,152 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Call;
+
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Argument\ArgumentsWildcard;
+use Prophecy\Util\StringUtil;
+use Prophecy\Exception\Call\UnexpectedCallException;
+
+/**
+ * Calls receiver & manager.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class CallCenter
+{
+    private $util;
+
+    /**
+     * @var Call[]
+     */
+    private $recordedCalls = array();
+
+    /**
+     * Initializes call center.
+     *
+     * @param StringUtil $util
+     */
+    public function __construct(StringUtil $util = null)
+    {
+        $this->util = $util ?: new StringUtil;
+    }
+
+    /**
+     * Makes and records specific method call for object prophecy.
+     *
+     * @param ObjectProphecy $prophecy
+     * @param string         $methodName
+     * @param array          $arguments
+     *
+     * @return mixed Returns null if no promise for prophecy found or promise return value.
+     *
+     * @throws \Prophecy\Exception\Call\UnexpectedCallException If no appropriate method prophecy found
+     */
+    public function makeCall(ObjectProphecy $prophecy, $methodName, array $arguments)
+    {
+        $backtrace = debug_backtrace();
+
+        $file = $line = null;
+        if (isset($backtrace[2]) && isset($backtrace[2]['file'])) {
+            $file = $backtrace[2]['file'];
+            $line = $backtrace[2]['line'];
+        }
+
+        // If no method prophecies defined, then it's a dummy, so we'll just return null
+        if ('__destruct' === $methodName || 0 == count($prophecy->getMethodProphecies())) {
+            $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line);
+
+            return null;
+        }
+
+        // There are method prophecies, so it's a fake/stub. Searching prophecy for this call
+        $matches = array();
+        foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) {
+            if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) {
+                $matches[] = array($score, $methodProphecy);
+            }
+        }
+
+        // If fake/stub doesn't have method prophecy for this call - throw exception
+        if (!count($matches)) {
+            throw $this->createUnexpectedCallException($prophecy, $methodName, $arguments);
+        }
+
+        // Sort matches by their score value
+        @usort($matches, function ($match1, $match2) { return $match2[0] - $match1[0]; });
+
+        // If Highest rated method prophecy has a promise - execute it or return null instead
+        $returnValue = null;
+        $exception   = null;
+        if ($promise = $matches[0][1]->getPromise()) {
+            try {
+                $returnValue = $promise->execute($arguments, $prophecy, $matches[0][1]);
+            } catch (\Exception $e) {
+                $exception = $e;
+            }
+        }
+
+        $this->recordedCalls[] = new Call(
+            $methodName, $arguments, $returnValue, $exception, $file, $line
+        );
+
+        if (null !== $exception) {
+            throw $exception;
+        }
+
+        return $returnValue;
+    }
+
+    /**
+     * Searches for calls by method name & arguments wildcard.
+     *
+     * @param string            $methodName
+     * @param ArgumentsWildcard $wildcard
+     *
+     * @return Call[]
+     */
+    public function findCalls($methodName, ArgumentsWildcard $wildcard)
+    {
+        return array_values(
+            array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) {
+                return $methodName === $call->getMethodName()
+                    && 0 < $wildcard->scoreArguments($call->getArguments())
+                ;
+            })
+        );
+    }
+
+    private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName,
+                                                   array $arguments)
+    {
+        $classname = get_class($prophecy->reveal());
+        $argstring = implode(', ', array_map(array($this->util, 'stringify'), $arguments));
+        $expected  = implode("\n", array_map(function (MethodProphecy $methodProphecy) {
+            return sprintf('  - %s(%s)',
+                $methodProphecy->getMethodName(),
+                $methodProphecy->getArgumentsWildcard()
+            );
+        }, call_user_func_array('array_merge', $prophecy->getMethodProphecies())));
+
+        return new UnexpectedCallException(
+            sprintf(
+                "Method call:\n".
+                "  - %s(%s)\n".
+                "on %s was not expected, expected calls were:\n%s",
+
+                $methodName, $argstring, $classname, $expected
+            ),
+            $prophecy, $methodName, $arguments
+        );
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php
new file mode 100644
index 000000000000..d6b6b1a9e085
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php
@@ -0,0 +1,68 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler;
+
+use ReflectionClass;
+
+/**
+ * Cached class doubler.
+ * Prevents mirroring/creation of the same structure twice.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class CachedDoubler extends Doubler
+{
+    private $classes = array();
+
+    /**
+     * {@inheritdoc}
+     */
+    public function registerClassPatch(ClassPatch\ClassPatchInterface $patch)
+    {
+        $this->classes[] = array();
+
+        parent::registerClassPatch($patch);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function createDoubleClass(ReflectionClass $class = null, array $interfaces)
+    {
+        $classId = $this->generateClassId($class, $interfaces);
+        if (isset($this->classes[$classId])) {
+            return $this->classes[$classId];
+        }
+
+        return $this->classes[$classId] = parent::createDoubleClass($class, $interfaces);
+    }
+
+    /**
+     * @param ReflectionClass   $class
+     * @param ReflectionClass[] $interfaces
+     *
+     * @return string
+     */
+    private function generateClassId(ReflectionClass $class = null, array $interfaces)
+    {
+        $parts = array();
+        if (null !== $class) {
+            $parts[] = $class->getName();
+        }
+        foreach ($interfaces as $interface) {
+            $parts[] = $interface->getName();
+        }
+        sort($parts);
+
+        return md5(implode('', $parts));
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php
new file mode 100644
index 000000000000..d6d196850c74
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+
+/**
+ * Class patch interface.
+ * Class patches extend doubles functionality or help
+ * Prophecy to avoid some internal PHP bugs.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface ClassPatchInterface
+{
+    /**
+     * Checks if patch supports specific class node.
+     *
+     * @param ClassNode $node
+     *
+     * @return bool
+     */
+    public function supports(ClassNode $node);
+
+    /**
+     * Applies patch to the specific class node.
+     *
+     * @param ClassNode $node
+     * @return void
+     */
+    public function apply(ClassNode $node);
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return int Priority number (higher - earlier)
+     */
+    public function getPriority();
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php
new file mode 100644
index 000000000000..61998fc46228
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php
@@ -0,0 +1,72 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+use Prophecy\Doubler\Generator\Node\MethodNode;
+
+/**
+ * Disable constructor.
+ * Makes all constructor arguments optional.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class DisableConstructorPatch implements ClassPatchInterface
+{
+    /**
+     * Checks if class has `__construct` method.
+     *
+     * @param ClassNode $node
+     *
+     * @return bool
+     */
+    public function supports(ClassNode $node)
+    {
+        return true;
+    }
+
+    /**
+     * Makes all class constructor arguments optional.
+     *
+     * @param ClassNode $node
+     */
+    public function apply(ClassNode $node)
+    {
+        if (!$node->hasMethod('__construct')) {
+            $node->addMethod(new MethodNode('__construct', ''));
+
+            return;
+        }
+
+        $constructor = $node->getMethod('__construct');
+        foreach ($constructor->getArguments() as $argument) {
+            $argument->setDefault(null);
+        }
+
+        $constructor->setCode(<<<PHP
+if (0 < func_num_args()) {
+    call_user_func_array(array('parent', '__construct'), func_get_args());
+}
+PHP
+        );
+    }
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return int Priority number (higher - earlier)
+     */
+    public function getPriority()
+    {
+        return 100;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php
new file mode 100644
index 000000000000..fa38fc0d1c6d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php
@@ -0,0 +1,63 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+
+/**
+ * Exception patch for HHVM to remove the stubs from special methods
+ *
+ * @author Christophe Coevoet <stof@notk.org>
+ */
+class HhvmExceptionPatch implements ClassPatchInterface
+{
+    /**
+     * Supports exceptions on HHVM.
+     *
+     * @param ClassNode $node
+     *
+     * @return bool
+     */
+    public function supports(ClassNode $node)
+    {
+        if (!defined('HHVM_VERSION')) {
+            return false;
+        }
+
+        return 'Exception' === $node->getParentClass() || is_subclass_of($node->getParentClass(), 'Exception');
+    }
+
+    /**
+     * Removes special exception static methods from the doubled methods.
+     *
+     * @param ClassNode $node
+     *
+     * @return void
+     */
+    public function apply(ClassNode $node)
+    {
+        if ($node->hasMethod('setTraceOptions')) {
+            $node->getMethod('setTraceOptions')->useParentCode();
+        }
+        if ($node->hasMethod('getTraceOptions')) {
+            $node->getMethod('getTraceOptions')->useParentCode();
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getPriority()
+    {
+        return -50;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php
new file mode 100644
index 000000000000..b0d9793aa485
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php
@@ -0,0 +1,135 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+
+/**
+ * Remove method functionality from the double which will clash with php keywords.
+ *
+ * @author Milan Magudia <milan@magudia.com>
+ */
+class KeywordPatch implements ClassPatchInterface
+{
+    /**
+     * Support any class
+     *
+     * @param ClassNode $node
+     *
+     * @return boolean
+     */
+    public function supports(ClassNode $node)
+    {
+        return true;
+    }
+
+    /**
+     * Remove methods that clash with php keywords
+     *
+     * @param ClassNode $node
+     */
+    public function apply(ClassNode $node)
+    {
+        $methodNames = array_keys($node->getMethods());
+        $methodsToRemove = array_intersect($methodNames, $this->getKeywords());
+        foreach ($methodsToRemove as $methodName) {
+            $node->removeMethod($methodName);
+        }
+    }
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return int Priority number (higher - earlier)
+     */
+    public function getPriority() {
+        return 49;
+    }
+
+    /**
+     * Returns array of php keywords.
+     *
+     * @return array
+     */
+    private function getKeywords() {
+
+        return array(
+            '__halt_compiler',
+            'abstract',
+            'and',
+            'array',
+            'as',
+            'break',
+            'callable',
+            'case',
+            'catch',
+            'class',
+            'clone',
+            'const',
+            'continue',
+            'declare',
+            'default',
+            'die',
+            'do',
+            'echo',
+            'else',
+            'elseif',
+            'empty',
+            'enddeclare',
+            'endfor',
+            'endforeach',
+            'endif',
+            'endswitch',
+            'endwhile',
+            'eval',
+            'exit',
+            'extends',
+            'final',
+            'finally',
+            'for',
+            'foreach',
+            'function',
+            'global',
+            'goto',
+            'if',
+            'implements',
+            'include',
+            'include_once',
+            'instanceof',
+            'insteadof',
+            'interface',
+            'isset',
+            'list',
+            'namespace',
+            'new',
+            'or',
+            'print',
+            'private',
+            'protected',
+            'public',
+            'require',
+            'require_once',
+            'return',
+            'static',
+            'switch',
+            'throw',
+            'trait',
+            'try',
+            'unset',
+            'use',
+            'var',
+            'while',
+            'xor',
+            'yield',
+        );
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php
new file mode 100644
index 000000000000..da454501d7ab
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php
@@ -0,0 +1,73 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use phpDocumentor\Reflection\DocBlock;
+use Prophecy\Doubler\Generator\Node\ClassNode;
+use Prophecy\Doubler\Generator\Node\MethodNode;
+
+/**
+ * Discover Magical API using "@method" PHPDoc format.
+ *
+ * @author Thomas Tourlourat <thomas@tourlourat.com>
+ */
+class MagicCallPatch implements ClassPatchInterface
+{
+    /**
+     * Support any class
+     *
+     * @param ClassNode $node
+     *
+     * @return boolean
+     */
+    public function supports(ClassNode $node)
+    {
+        return true;
+    }
+
+    /**
+     * Discover Magical API
+     *
+     * @param ClassNode $node
+     */
+    public function apply(ClassNode $node)
+    {
+        $parentClass = $node->getParentClass();
+        $reflectionClass = new \ReflectionClass($parentClass);
+
+        $phpdoc = new DocBlock($reflectionClass->getDocComment());
+
+        $tagList = $phpdoc->getTagsByName('method');
+
+        foreach($tagList as $tag) {
+            $methodName = $tag->getMethodName();
+
+            if (!$reflectionClass->hasMethod($methodName)) {
+                $methodNode = new MethodNode($tag->getMethodName());
+                $methodNode->setStatic($tag->isStatic());
+
+                $node->addMethod($methodNode);
+            }
+        }
+    }
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return integer Priority number (higher - earlier)
+     */
+    public function getPriority()
+    {
+        return 50;
+    }
+}
+
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php
new file mode 100644
index 000000000000..ab0bb7c786f8
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+use Prophecy\Doubler\Generator\Node\MethodNode;
+use Prophecy\Doubler\Generator\Node\ArgumentNode;
+
+/**
+ * Add Prophecy functionality to the double.
+ * This is a core class patch for Prophecy.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ProphecySubjectPatch implements ClassPatchInterface
+{
+    /**
+     * Always returns true.
+     *
+     * @param ClassNode $node
+     *
+     * @return bool
+     */
+    public function supports(ClassNode $node)
+    {
+        return true;
+    }
+
+    /**
+     * Apply Prophecy functionality to class node.
+     *
+     * @param ClassNode $node
+     */
+    public function apply(ClassNode $node)
+    {
+        $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface');
+        $node->addProperty('objectProphecy', 'private');
+
+        foreach ($node->getMethods() as $name => $method) {
+            if ('__construct' === strtolower($name)) {
+                continue;
+            }
+
+            $method->setCode(
+                'return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());'
+            );
+        }
+
+        $prophecySetter = new MethodNode('setProphecy');
+        $prophecyArgument = new ArgumentNode('prophecy');
+        $prophecyArgument->setTypeHint('Prophecy\Prophecy\ProphecyInterface');
+        $prophecySetter->addArgument($prophecyArgument);
+        $prophecySetter->setCode('$this->objectProphecy = $prophecy;');
+
+        $prophecyGetter = new MethodNode('getProphecy');
+        $prophecyGetter->setCode('return $this->objectProphecy;');
+
+        if ($node->hasMethod('__call')) {
+            $__call = $node->getMethod('__call');
+        } else {
+            $__call = new MethodNode('__call');
+            $__call->addArgument(new ArgumentNode('name'));
+            $__call->addArgument(new ArgumentNode('arguments'));
+
+            $node->addMethod($__call);
+        }
+
+        $__call->setCode(<<<PHP
+throw new \Prophecy\Exception\Doubler\MethodNotFoundException(
+    sprintf('Method `%s::%s()` not found.', get_class(\$this), func_get_arg(0)),
+    \$this->getProphecy(), func_get_arg(0)
+);
+PHP
+        );
+
+        $node->addMethod($prophecySetter);
+        $node->addMethod($prophecyGetter);
+    }
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return int Priority number (higher - earlier)
+     */
+    public function getPriority()
+    {
+        return 0;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php
new file mode 100644
index 000000000000..9166aeefacf6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+
+/**
+ * ReflectionClass::newInstance patch.
+ * Makes first argument of newInstance optional, since it works but signature is misleading
+ *
+ * @author Florian Klein <florian.klein@free.fr>
+ */
+class ReflectionClassNewInstancePatch implements ClassPatchInterface
+{
+    /**
+     * Supports ReflectionClass
+     *
+     * @param ClassNode $node
+     *
+     * @return bool
+     */
+    public function supports(ClassNode $node)
+    {
+        return 'ReflectionClass' === $node->getParentClass();
+    }
+
+    /**
+     * Updates newInstance's first argument to make it optional
+     *
+     * @param ClassNode $node
+     */
+    public function apply(ClassNode $node)
+    {
+        foreach ($node->getMethod('newInstance')->getArguments() as $argument) {
+            $argument->setDefault(null);
+        }
+    }
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return int Priority number (higher = earlier)
+     */
+    public function getPriority()
+    {
+        return 50;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php
new file mode 100644
index 000000000000..840115983730
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php
@@ -0,0 +1,85 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+use Prophecy\Doubler\Generator\Node\MethodNode;
+
+/**
+ * SplFileInfo patch.
+ * Makes SplFileInfo and derivative classes usable with Prophecy.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class SplFileInfoPatch implements ClassPatchInterface
+{
+    /**
+     * Supports everything that extends SplFileInfo.
+     *
+     * @param ClassNode $node
+     *
+     * @return bool
+     */
+    public function supports(ClassNode $node)
+    {
+        if (null === $node->getParentClass()) {
+            return false;
+        }
+
+        return 'SplFileInfo' === $node->getParentClass()
+            || is_subclass_of($node->getParentClass(), 'SplFileInfo')
+        ;
+    }
+
+    /**
+     * Updated constructor code to call parent one with dummy file argument.
+     *
+     * @param ClassNode $node
+     */
+    public function apply(ClassNode $node)
+    {
+        if ($node->hasMethod('__construct')) {
+            $constructor = $node->getMethod('__construct');
+        } else {
+            $constructor = new MethodNode('__construct');
+            $node->addMethod($constructor);
+        }
+
+        if ($this->nodeIsDirectoryIterator($node)) {
+            $constructor->setCode('return parent::__construct("' . __DIR__ . '");');
+            return;
+        }
+
+        $constructor->useParentCode();
+    }
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return int Priority number (higher - earlier)
+     */
+    public function getPriority()
+    {
+        return 50;
+    }
+
+    /**
+     * @param ClassNode $node
+     * @return boolean
+     */
+    private function nodeIsDirectoryIterator(ClassNode $node)
+    {
+        $parent = $node->getParentClass();
+        return 'DirectoryIterator' === $parent
+            || is_subclass_of($parent, 'DirectoryIterator');
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php
new file mode 100644
index 000000000000..eea0202825a2
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php
@@ -0,0 +1,83 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\ClassPatch;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+use Prophecy\Doubler\Generator\Node\MethodNode;
+
+/**
+ * Traversable interface patch.
+ * Forces classes that implement interfaces, that extend Traversable to also implement Iterator.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class TraversablePatch implements ClassPatchInterface
+{
+    /**
+     * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate.
+     *
+     * @param ClassNode $node
+     *
+     * @return bool
+     */
+    public function supports(ClassNode $node)
+    {
+        if (in_array('Iterator', $node->getInterfaces())) {
+            return false;
+        }
+        if (in_array('IteratorAggregate', $node->getInterfaces())) {
+            return false;
+        }
+
+        foreach ($node->getInterfaces() as $interface) {
+            if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) {
+                continue;
+            }
+            if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) {
+                continue;
+            }
+            if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) {
+                continue;
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Forces class to implement Iterator interface.
+     *
+     * @param ClassNode $node
+     */
+    public function apply(ClassNode $node)
+    {
+        $node->addInterface('Iterator');
+
+        $node->addMethod(new MethodNode('current'));
+        $node->addMethod(new MethodNode('key'));
+        $node->addMethod(new MethodNode('next'));
+        $node->addMethod(new MethodNode('rewind'));
+        $node->addMethod(new MethodNode('valid'));
+    }
+
+    /**
+     * Returns patch priority, which determines when patch will be applied.
+     *
+     * @return int Priority number (higher - earlier)
+     */
+    public function getPriority()
+    {
+        return 100;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php
new file mode 100644
index 000000000000..699be3a2ad2c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php
@@ -0,0 +1,22 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler;
+
+/**
+ * Core double interface.
+ * All doubled classes will implement this one.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface DoubleInterface
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php
new file mode 100644
index 000000000000..a378ae27906b
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php
@@ -0,0 +1,146 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler;
+
+use Doctrine\Instantiator\Instantiator;
+use Prophecy\Doubler\ClassPatch\ClassPatchInterface;
+use Prophecy\Doubler\Generator\ClassMirror;
+use Prophecy\Doubler\Generator\ClassCreator;
+use Prophecy\Exception\InvalidArgumentException;
+use ReflectionClass;
+
+/**
+ * Cached class doubler.
+ * Prevents mirroring/creation of the same structure twice.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class Doubler
+{
+    private $mirror;
+    private $creator;
+    private $namer;
+
+    /**
+     * @var ClassPatchInterface[]
+     */
+    private $patches = array();
+
+    /**
+     * @var \Doctrine\Instantiator\Instantiator
+     */
+    private $instantiator;
+
+    /**
+     * Initializes doubler.
+     *
+     * @param ClassMirror   $mirror
+     * @param ClassCreator  $creator
+     * @param NameGenerator $namer
+     */
+    public function __construct(ClassMirror $mirror = null, ClassCreator $creator = null,
+                                NameGenerator $namer = null)
+    {
+        $this->mirror  = $mirror  ?: new ClassMirror;
+        $this->creator = $creator ?: new ClassCreator;
+        $this->namer   = $namer   ?: new NameGenerator;
+    }
+
+    /**
+     * Returns list of registered class patches.
+     *
+     * @return ClassPatchInterface[]
+     */
+    public function getClassPatches()
+    {
+        return $this->patches;
+    }
+
+    /**
+     * Registers new class patch.
+     *
+     * @param ClassPatchInterface $patch
+     */
+    public function registerClassPatch(ClassPatchInterface $patch)
+    {
+        $this->patches[] = $patch;
+
+        @usort($this->patches, function (ClassPatchInterface $patch1, ClassPatchInterface $patch2) {
+            return $patch2->getPriority() - $patch1->getPriority();
+        });
+    }
+
+    /**
+     * Creates double from specific class or/and list of interfaces.
+     *
+     * @param ReflectionClass   $class
+     * @param ReflectionClass[] $interfaces Array of ReflectionClass instances
+     * @param array             $args       Constructor arguments
+     *
+     * @return DoubleInterface
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function double(ReflectionClass $class = null, array $interfaces, array $args = null)
+    {
+        foreach ($interfaces as $interface) {
+            if (!$interface instanceof ReflectionClass) {
+                throw new InvalidArgumentException(sprintf(
+                    "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n".
+                    "a second argument to `Doubler::double(...)`, but got %s.",
+                    is_object($interface) ? get_class($interface).' class' : gettype($interface)
+                ));
+            }
+        }
+
+        $classname  = $this->createDoubleClass($class, $interfaces);
+        $reflection = new ReflectionClass($classname);
+
+        if (null !== $args) {
+            return $reflection->newInstanceArgs($args);
+        }
+        if ((null === $constructor = $reflection->getConstructor())
+            || ($constructor->isPublic() && !$constructor->isFinal())) {
+            return $reflection->newInstance();
+        }
+
+        if (!$this->instantiator) {
+            $this->instantiator = new Instantiator();
+        }
+
+        return $this->instantiator->instantiate($classname);
+    }
+
+    /**
+     * Creates double class and returns its FQN.
+     *
+     * @param ReflectionClass   $class
+     * @param ReflectionClass[] $interfaces
+     *
+     * @return string
+     */
+    protected function createDoubleClass(ReflectionClass $class = null, array $interfaces)
+    {
+        $name = $this->namer->name($class, $interfaces);
+        $node = $this->mirror->reflect($class, $interfaces);
+
+        foreach ($this->patches as $patch) {
+            if ($patch->supports($node)) {
+                $patch->apply($node);
+            }
+        }
+
+        $this->creator->create($name, $node);
+
+        return $name;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php
new file mode 100644
index 000000000000..8577ba0f1768
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\Generator;
+
+/**
+ * Class code creator.
+ * Generates PHP code for specific class node tree.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ClassCodeGenerator
+{
+    /**
+     * Generates PHP code for class node.
+     *
+     * @param string         $classname
+     * @param Node\ClassNode $class
+     *
+     * @return string
+     */
+    public function generate($classname, Node\ClassNode $class)
+    {
+        $parts     = explode('\\', $classname);
+        $classname = array_pop($parts);
+        $namespace = implode('\\', $parts);
+
+        $code = sprintf("class %s extends \%s implements %s {\n",
+            $classname, $class->getParentClass(), implode(', ',
+                array_map(function ($interface) {return '\\'.$interface;}, $class->getInterfaces())
+            )
+        );
+
+        foreach ($class->getProperties() as $name => $visibility) {
+            $code .= sprintf("%s \$%s;\n", $visibility, $name);
+        }
+        $code .= "\n";
+
+        foreach ($class->getMethods() as $method) {
+            $code .= $this->generateMethod($method)."\n";
+        }
+        $code .= "\n}";
+
+        return sprintf("namespace %s {\n%s\n}", $namespace, $code);
+    }
+
+    private function generateMethod(Node\MethodNode $method)
+    {
+        $php = sprintf("%s %s function %s%s(%s) {\n",
+            $method->getVisibility(),
+            $method->isStatic() ? 'static' : '',
+            $method->returnsReference() ? '&':'',
+            $method->getName(),
+            implode(', ', $this->generateArguments($method->getArguments()))
+        );
+        $php .= $method->getCode()."\n";
+
+        return $php.'}';
+    }
+
+    private function generateArguments(array $arguments)
+    {
+        return array_map(function (Node\ArgumentNode $argument) {
+            $php = '';
+
+            if ($hint = $argument->getTypeHint()) {
+                if ('array' === $hint || 'callable' === $hint) {
+                    $php .= $hint;
+                } else {
+                    $php .= '\\'.$hint;
+                }
+            }
+
+            $php .= ' '.($argument->isPassedByReference() ? '&' : '').'$'.$argument->getName();
+
+            if ($argument->isOptional()) {
+                $php .= ' = '.var_export($argument->getDefault(), true);
+            }
+
+            return $php;
+        }, $arguments);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php
new file mode 100644
index 000000000000..882a4a4b7f14
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\Generator;
+
+use Prophecy\Exception\Doubler\ClassCreatorException;
+
+/**
+ * Class creator.
+ * Creates specific class in current environment.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ClassCreator
+{
+    private $generator;
+
+    /**
+     * Initializes creator.
+     *
+     * @param ClassCodeGenerator $generator
+     */
+    public function __construct(ClassCodeGenerator $generator = null)
+    {
+        $this->generator = $generator ?: new ClassCodeGenerator;
+    }
+
+    /**
+     * Creates class.
+     *
+     * @param string         $classname
+     * @param Node\ClassNode $class
+     *
+     * @return mixed
+     *
+     * @throws \Prophecy\Exception\Doubler\ClassCreatorException
+     */
+    public function create($classname, Node\ClassNode $class)
+    {
+        $code = $this->generator->generate($classname, $class);
+        $return = eval($code);
+
+        if (!class_exists($classname, false)) {
+            if (count($class->getInterfaces())) {
+                throw new ClassCreatorException(sprintf(
+                    'Could not double `%s` and implement interfaces: [%s].',
+                    $class->getParentClass(), implode(', ', $class->getInterfaces())
+                ), $class);
+            }
+
+            throw new ClassCreatorException(
+                sprintf('Could not double `%s`.', $class->getParentClass()),
+                $class
+            );
+        }
+
+        return $return;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php
new file mode 100644
index 000000000000..c89d002bac95
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php
@@ -0,0 +1,202 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\Generator;
+
+use Prophecy\Exception\InvalidArgumentException;
+use Prophecy\Exception\Doubler\ClassMirrorException;
+use ReflectionClass;
+use ReflectionMethod;
+use ReflectionParameter;
+
+/**
+ * Class mirror.
+ * Core doubler class. Mirrors specific class and/or interfaces into class node tree.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ClassMirror
+{
+    private static $reflectableMethods = array(
+        '__construct',
+        '__destruct',
+        '__sleep',
+        '__wakeup',
+        '__toString',
+        '__call',
+    );
+
+    /**
+     * Reflects provided arguments into class node.
+     *
+     * @param ReflectionClass   $class
+     * @param ReflectionClass[] $interfaces
+     *
+     * @return Node\ClassNode
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function reflect(ReflectionClass $class = null, array $interfaces)
+    {
+        $node = new Node\ClassNode;
+
+        if (null !== $class) {
+            if (true === $class->isInterface()) {
+                throw new InvalidArgumentException(sprintf(
+                    "Could not reflect %s as a class, because it\n".
+                    "is interface - use the second argument instead.",
+                    $class->getName()
+                ));
+            }
+
+            $this->reflectClassToNode($class, $node);
+        }
+
+        foreach ($interfaces as $interface) {
+            if (!$interface instanceof ReflectionClass) {
+                throw new InvalidArgumentException(sprintf(
+                    "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n".
+                    "a second argument to `ClassMirror::reflect(...)`, but got %s.",
+                    is_object($interface) ? get_class($interface).' class' : gettype($interface)
+                ));
+            }
+            if (false === $interface->isInterface()) {
+                throw new InvalidArgumentException(sprintf(
+                    "Could not reflect %s as an interface, because it\n".
+                    "is class - use the first argument instead.",
+                    $interface->getName()
+                ));
+            }
+
+            $this->reflectInterfaceToNode($interface, $node);
+        }
+
+        $node->addInterface('Prophecy\Doubler\Generator\ReflectionInterface');
+
+        return $node;
+    }
+
+    private function reflectClassToNode(ReflectionClass $class, Node\ClassNode $node)
+    {
+        if (true === $class->isFinal()) {
+            throw new ClassMirrorException(sprintf(
+                'Could not reflect class %s as it is marked final.', $class->getName()
+            ), $class);
+        }
+
+        $node->setParentClass($class->getName());
+
+        foreach ($class->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) {
+            if (false === $method->isProtected()) {
+                continue;
+            }
+
+            $this->reflectMethodToNode($method, $node);
+        }
+
+        foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
+            if (0 === strpos($method->getName(), '_')
+                && !in_array($method->getName(), self::$reflectableMethods)) {
+                continue;
+            }
+
+            if (true === $method->isFinal()) {
+                continue;
+            }
+
+            $this->reflectMethodToNode($method, $node);
+        }
+    }
+
+    private function reflectInterfaceToNode(ReflectionClass $interface, Node\ClassNode $node)
+    {
+        $node->addInterface($interface->getName());
+
+        foreach ($interface->getMethods() as $method) {
+            $this->reflectMethodToNode($method, $node);
+        }
+    }
+
+    private function reflectMethodToNode(ReflectionMethod $method, Node\ClassNode $classNode)
+    {
+        $node = new Node\MethodNode($method->getName());
+
+        if (true === $method->isProtected()) {
+            $node->setVisibility('protected');
+        }
+
+        if (true === $method->isStatic()) {
+            $node->setStatic();
+        }
+
+        if (true === $method->returnsReference()) {
+            $node->setReturnsReference();
+        }
+
+        if (is_array($params = $method->getParameters()) && count($params)) {
+            foreach ($params as $param) {
+                $this->reflectArgumentToNode($param, $node);
+            }
+        }
+
+        $classNode->addMethod($node);
+    }
+
+    private function reflectArgumentToNode(ReflectionParameter $parameter, Node\MethodNode $methodNode)
+    {
+        $name = $parameter->getName() == '...' ? '__dot_dot_dot__' : $parameter->getName();
+        $node = new Node\ArgumentNode($name);
+
+        $typeHint = $this->getTypeHint($parameter);
+        $node->setTypeHint($typeHint);
+
+        if (true === $parameter->isDefaultValueAvailable()) {
+            $node->setDefault($parameter->getDefaultValue());
+        } elseif (true === $parameter->isOptional()
+              || (true === $parameter->allowsNull() && $typeHint)) {
+            $node->setDefault(null);
+        }
+
+        if (true === $parameter->isPassedByReference()) {
+            $node->setAsPassedByReference();
+        }
+
+        $methodNode->addArgument($node);
+    }
+
+    private function getTypeHint(ReflectionParameter $parameter)
+    {
+        if (null !== $className = $this->getParameterClassName($parameter)) {
+            return $className;
+        }
+
+        if (true === $parameter->isArray()) {
+            return 'array';
+        }
+
+        if (version_compare(PHP_VERSION, '5.4', '>=') && true === $parameter->isCallable()) {
+            return 'callable';
+        }
+
+        return null;
+    }
+
+    private function getParameterClassName(ReflectionParameter $parameter)
+    {
+        try {
+            return $parameter->getClass() ? $parameter->getClass()->getName() : null;
+        } catch (\ReflectionException $e) {
+            preg_match('/\[\s\<\w+?>\s([\w,\\\]+)/s', $parameter, $matches);
+
+            return isset($matches[1]) ? $matches[1] : null;
+        }
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php
new file mode 100644
index 000000000000..a6c42a382afb
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php
@@ -0,0 +1,75 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\Generator\Node;
+
+/**
+ * Argument node.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ArgumentNode
+{
+    private $name;
+    private $typeHint;
+    private $default;
+    private $optional    = false;
+    private $byReference = false;
+
+    /**
+     * @param string $name
+     */
+    public function __construct($name)
+    {
+        $this->name = $name;
+    }
+
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    public function getTypeHint()
+    {
+        return $this->typeHint;
+    }
+
+    public function setTypeHint($typeHint = null)
+    {
+        $this->typeHint = $typeHint;
+    }
+
+    public function getDefault()
+    {
+        return $this->default;
+    }
+
+    public function setDefault($default = null)
+    {
+        $this->optional = true;
+        $this->default  = $default;
+    }
+
+    public function isOptional()
+    {
+        return $this->optional;
+    }
+
+    public function setAsPassedByReference($byReference = true)
+    {
+        $this->byReference = $byReference;
+    }
+
+    public function isPassedByReference()
+    {
+        return $this->byReference;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php
new file mode 100644
index 000000000000..b38cb4ea3e34
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php
@@ -0,0 +1,130 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\Generator\Node;
+
+use Prophecy\Exception\InvalidArgumentException;
+
+/**
+ * Class node.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ClassNode
+{
+    private $parentClass = 'stdClass';
+    private $interfaces  = array();
+    private $properties  = array();
+
+    /**
+     * @var MethodNode[]
+     */
+    private $methods     = array();
+
+    public function getParentClass()
+    {
+        return $this->parentClass;
+    }
+
+    /**
+     * @param string $class
+     */
+    public function setParentClass($class)
+    {
+        $this->parentClass = $class ?: 'stdClass';
+    }
+
+    /**
+     * @return string[]
+     */
+    public function getInterfaces()
+    {
+        return $this->interfaces;
+    }
+
+    /**
+     * @param string $interface
+     */
+    public function addInterface($interface)
+    {
+        if ($this->hasInterface($interface)) {
+            return;
+        }
+
+        array_unshift($this->interfaces, $interface);
+    }
+
+    /**
+     * @param string $interface
+     *
+     * @return bool
+     */
+    public function hasInterface($interface)
+    {
+        return in_array($interface, $this->interfaces);
+    }
+
+    public function getProperties()
+    {
+        return $this->properties;
+    }
+
+    public function addProperty($name, $visibility = 'public')
+    {
+        $visibility = strtolower($visibility);
+
+        if (!in_array($visibility, array('public', 'private', 'protected'))) {
+            throw new InvalidArgumentException(sprintf(
+                '`%s` property visibility is not supported.', $visibility
+            ));
+        }
+
+        $this->properties[$name] = $visibility;
+    }
+
+    /**
+     * @return MethodNode[]
+     */
+    public function getMethods()
+    {
+        return $this->methods;
+    }
+
+    public function addMethod(MethodNode $method)
+    {
+        $this->methods[$method->getName()] = $method;
+    }
+
+    public function removeMethod($name)
+    {
+        unset($this->methods[$name]);
+    }
+
+    /**
+     * @param string $name
+     *
+     * @return MethodNode|null
+     */
+    public function getMethod($name)
+    {
+        return $this->hasMethod($name) ? $this->methods[$name] : null;
+    }
+
+    /**
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function hasMethod($name)
+    {
+        return isset($this->methods[$name]);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php
new file mode 100644
index 000000000000..ef303b6bac56
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php
@@ -0,0 +1,129 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\Generator\Node;
+
+use Prophecy\Exception\InvalidArgumentException;
+
+/**
+ * Method node.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class MethodNode
+{
+    private $name;
+    private $code;
+    private $visibility = 'public';
+    private $static = false;
+    private $returnsReference = false;
+
+    /**
+     * @var ArgumentNode[]
+     */
+    private $arguments = array();
+
+    /**
+     * @param string $name
+     * @param string $code
+     */
+    public function __construct($name, $code = null)
+    {
+        $this->name = $name;
+        $this->code = $code;
+    }
+
+    public function getVisibility()
+    {
+        return $this->visibility;
+    }
+
+    /**
+     * @param string $visibility
+     */
+    public function setVisibility($visibility)
+    {
+        $visibility = strtolower($visibility);
+
+        if (!in_array($visibility, array('public', 'private', 'protected'))) {
+            throw new InvalidArgumentException(sprintf(
+                '`%s` method visibility is not supported.', $visibility
+            ));
+        }
+
+        $this->visibility = $visibility;
+    }
+
+    public function isStatic()
+    {
+        return $this->static;
+    }
+
+    public function setStatic($static = true)
+    {
+        $this->static = (bool) $static;
+    }
+
+    public function returnsReference()
+    {
+        return $this->returnsReference;
+    }
+
+    public function setReturnsReference()
+    {
+        $this->returnsReference = true;
+    }
+
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    public function addArgument(ArgumentNode $argument)
+    {
+        $this->arguments[] = $argument;
+    }
+
+    /**
+     * @return ArgumentNode[]
+     */
+    public function getArguments()
+    {
+        return $this->arguments;
+    }
+
+    /**
+     * @param string $code
+     */
+    public function setCode($code)
+    {
+        $this->code = $code;
+    }
+
+    public function getCode()
+    {
+        if ($this->returnsReference)
+        {
+            return "throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), '{$this->name}');";
+        }
+
+        return (string) $this->code;
+    }
+
+    public function useParentCode()
+    {
+        $this->code = sprintf(
+            'return parent::%s(%s);', $this->getName(), implode(', ',
+                array_map(function (ArgumentNode $arg) { return '$'.$arg->getName(); }, $this->arguments)
+            )
+        );
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php
new file mode 100644
index 000000000000..d720b15159a6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php
@@ -0,0 +1,22 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler\Generator;
+
+/**
+ * Reflection interface.
+ * All reflected classes implement this interface.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface ReflectionInterface
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php
new file mode 100644
index 000000000000..8a99c4ce8615
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php
@@ -0,0 +1,127 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler;
+
+use Prophecy\Exception\Doubler\DoubleException;
+use Prophecy\Exception\Doubler\ClassNotFoundException;
+use Prophecy\Exception\Doubler\InterfaceNotFoundException;
+use ReflectionClass;
+
+/**
+ * Lazy double.
+ * Gives simple interface to describe double before creating it.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class LazyDouble
+{
+    private $doubler;
+    private $class;
+    private $interfaces = array();
+    private $arguments  = null;
+    private $double;
+
+    /**
+     * Initializes lazy double.
+     *
+     * @param Doubler $doubler
+     */
+    public function __construct(Doubler $doubler)
+    {
+        $this->doubler = $doubler;
+    }
+
+    /**
+     * Tells doubler to use specific class as parent one for double.
+     *
+     * @param string|ReflectionClass $class
+     *
+     * @throws \Prophecy\Exception\Doubler\ClassNotFoundException
+     * @throws \Prophecy\Exception\Doubler\DoubleException
+     */
+    public function setParentClass($class)
+    {
+        if (null !== $this->double) {
+            throw new DoubleException('Can not extend class with already instantiated double.');
+        }
+
+        if (!$class instanceof ReflectionClass) {
+            if (!class_exists($class)) {
+                throw new ClassNotFoundException(sprintf('Class %s not found.', $class), $class);
+            }
+
+            $class = new ReflectionClass($class);
+        }
+
+        $this->class = $class;
+    }
+
+    /**
+     * Tells doubler to implement specific interface with double.
+     *
+     * @param string|ReflectionClass $interface
+     *
+     * @throws \Prophecy\Exception\Doubler\InterfaceNotFoundException
+     * @throws \Prophecy\Exception\Doubler\DoubleException
+     */
+    public function addInterface($interface)
+    {
+        if (null !== $this->double) {
+            throw new DoubleException(
+                'Can not implement interface with already instantiated double.'
+            );
+        }
+
+        if (!$interface instanceof ReflectionClass) {
+            if (!interface_exists($interface)) {
+                throw new InterfaceNotFoundException(
+                    sprintf('Interface %s not found.', $interface),
+                    $interface
+                );
+            }
+
+            $interface = new ReflectionClass($interface);
+        }
+
+        $this->interfaces[] = $interface;
+    }
+
+    /**
+     * Sets constructor arguments.
+     *
+     * @param array $arguments
+     */
+    public function setArguments(array $arguments = null)
+    {
+        $this->arguments = $arguments;
+    }
+
+    /**
+     * Creates double instance or returns already created one.
+     *
+     * @return DoubleInterface
+     */
+    public function getInstance()
+    {
+        if (null === $this->double) {
+            if (null !== $this->arguments) {
+                return $this->double = $this->doubler->double(
+                    $this->class, $this->interfaces, $this->arguments
+                );
+            }
+
+            $this->double = $this->doubler->double($this->class, $this->interfaces);
+        }
+
+        return $this->double;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php
new file mode 100644
index 000000000000..d67ec6a4db9a
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php
@@ -0,0 +1,52 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Doubler;
+
+use ReflectionClass;
+
+/**
+ * Name generator.
+ * Generates classname for double.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class NameGenerator
+{
+    private static $counter = 1;
+
+    /**
+     * Generates name.
+     *
+     * @param ReflectionClass   $class
+     * @param ReflectionClass[] $interfaces
+     *
+     * @return string
+     */
+    public function name(ReflectionClass $class = null, array $interfaces)
+    {
+        $parts = array();
+
+        if (null !== $class) {
+            $parts[] = $class->getName();
+        } else {
+            foreach ($interfaces as $interface) {
+                $parts[] = $interface->getShortName();
+            }
+        }
+
+        if (!count($parts)) {
+            $parts[] = 'stdClass';
+        }
+
+        return sprintf('Double\%s\P%d', implode('\\', $parts), self::$counter++);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php
new file mode 100644
index 000000000000..48ed22542db3
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php
@@ -0,0 +1,40 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Call;
+
+use Prophecy\Exception\Prophecy\ObjectProphecyException;
+use Prophecy\Prophecy\ObjectProphecy;
+
+class UnexpectedCallException extends ObjectProphecyException
+{
+    private $methodName;
+    private $arguments;
+
+    public function __construct($message, ObjectProphecy $objectProphecy,
+                                $methodName, array $arguments)
+    {
+        parent::__construct($message, $objectProphecy);
+
+        $this->methodName = $methodName;
+        $this->arguments = $arguments;
+    }
+
+    public function getMethodName()
+    {
+        return $this->methodName;
+    }
+
+    public function getArguments()
+    {
+        return $this->arguments;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php
new file mode 100644
index 000000000000..822918a29432
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+use Prophecy\Doubler\Generator\Node\ClassNode;
+
+class ClassCreatorException extends \RuntimeException implements DoublerException
+{
+    private $node;
+
+    public function __construct($message, ClassNode $node)
+    {
+        parent::__construct($message);
+
+        $this->node = $node;
+    }
+
+    public function getClassNode()
+    {
+        return $this->node;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php
new file mode 100644
index 000000000000..8fc53b8b527d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+use ReflectionClass;
+
+class ClassMirrorException extends \RuntimeException implements DoublerException
+{
+    private $class;
+
+    public function __construct($message, ReflectionClass $class)
+    {
+        parent::__construct($message);
+
+        $this->class = $class;
+    }
+
+    public function getReflectedClass()
+    {
+        return $this->class;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php
new file mode 100644
index 000000000000..5bc826d75e40
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+class ClassNotFoundException extends DoubleException
+{
+    private $classname;
+
+    /**
+     * @param string $message
+     * @param string $classname
+     */
+    public function __construct($message, $classname)
+    {
+        parent::__construct($message);
+
+        $this->classname = $classname;
+    }
+
+    public function getClassname()
+    {
+        return $this->classname;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php
new file mode 100644
index 000000000000..6642a58f20c4
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php
@@ -0,0 +1,18 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+use RuntimeException;
+
+class DoubleException extends RuntimeException implements DoublerException
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php
new file mode 100644
index 000000000000..9d6be17969b9
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php
@@ -0,0 +1,18 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+use Prophecy\Exception\Exception;
+
+interface DoublerException extends Exception
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php
new file mode 100644
index 000000000000..e344dead2b30
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php
@@ -0,0 +1,20 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+class InterfaceNotFoundException extends ClassNotFoundException
+{
+    public function getInterfaceName()
+    {
+        return $this->getClassname();
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php
new file mode 100644
index 000000000000..b113941fc958
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+class MethodNotFoundException extends DoubleException
+{
+    /**
+     * @var string
+     */
+    private $classname;
+
+    /**
+     * @var string
+     */
+    private $methodName;
+
+    /**
+     * @var array
+     */
+    private $arguments;
+
+    /**
+     * @param string $message
+     * @param string $classname
+     * @param string $methodName
+     * @param null|Argument\ArgumentsWildcard|array $arguments
+     */
+    public function __construct($message, $classname, $methodName, $arguments = null)
+    {
+        parent::__construct($message);
+
+        $this->classname  = $classname;
+        $this->methodName = $methodName;
+        $this->arguments = $arguments;
+    }
+
+    public function getClassname()
+    {
+        return $this->classname;
+    }
+
+    public function getMethodName()
+    {
+        return $this->methodName;
+    }
+
+    public function getArguments()
+    {
+        return $this->arguments;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php
new file mode 100644
index 000000000000..6303049700fa
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php
@@ -0,0 +1,41 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Doubler;
+
+class ReturnByReferenceException extends DoubleException
+{
+    private $classname;
+    private $methodName;
+
+    /**
+     * @param string $message
+     * @param string $classname
+     * @param string $methodName
+     */
+    public function __construct($message, $classname, $methodName)
+    {
+        parent::__construct($message);
+
+        $this->classname  = $classname;
+        $this->methodName = $methodName;
+    }
+
+    public function getClassname()
+    {
+        return $this->classname;
+    }
+
+    public function getMethodName()
+    {
+        return $this->methodName;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php
new file mode 100644
index 000000000000..ac9fe4dd997c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception;
+
+/**
+ * Core Prophecy exception interface.
+ * All Prophecy exceptions implement it.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface Exception
+{
+    /**
+     * @return string
+     */
+    public function getMessage();
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php
new file mode 100644
index 000000000000..bc91c690fa23
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php
@@ -0,0 +1,16 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception;
+
+class InvalidArgumentException extends \InvalidArgumentException implements Exception
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php
new file mode 100644
index 000000000000..44b598a440e6
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php
@@ -0,0 +1,50 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prediction;
+
+use Prophecy\Prophecy\ObjectProphecy;
+
+class AggregateException extends \RuntimeException implements PredictionException
+{
+    private $exceptions = array();
+    private $objectProphecy;
+
+    public function append(PredictionException $exception)
+    {
+        $message = $exception->getMessage();
+        $message = '  '.strtr($message, array("\n" => "\n  "))."\n";
+
+        $this->message      = rtrim($this->message.$message);
+        $this->exceptions[] = $exception;
+    }
+
+    /**
+     * @return PredictionException[]
+     */
+    public function getExceptions()
+    {
+        return $this->exceptions;
+    }
+
+    public function setObjectProphecy(ObjectProphecy $objectProphecy)
+    {
+        $this->objectProphecy = $objectProphecy;
+    }
+
+    /**
+     * @return ObjectProphecy
+     */
+    public function getObjectProphecy()
+    {
+        return $this->objectProphecy;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php
new file mode 100644
index 000000000000..bbbbc3d97a19
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php
@@ -0,0 +1,24 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prediction;
+
+use RuntimeException;
+
+/**
+ * Basic failed prediction exception.
+ * Use it for custom prediction failures.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class FailedPredictionException extends RuntimeException implements PredictionException
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php
new file mode 100644
index 000000000000..05ea4aad862e
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php
@@ -0,0 +1,18 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prediction;
+
+use Prophecy\Exception\Prophecy\MethodProphecyException;
+
+class NoCallsException extends MethodProphecyException implements PredictionException
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php
new file mode 100644
index 000000000000..2596b1ef1f16
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php
@@ -0,0 +1,18 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prediction;
+
+use Prophecy\Exception\Exception;
+
+interface PredictionException extends Exception
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php
new file mode 100644
index 000000000000..9d905431f8db
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prediction;
+
+use Prophecy\Prophecy\MethodProphecy;
+
+class UnexpectedCallsCountException extends UnexpectedCallsException
+{
+    private $expectedCount;
+
+    public function __construct($message, MethodProphecy $methodProphecy, $count, array $calls)
+    {
+        parent::__construct($message, $methodProphecy, $calls);
+
+        $this->expectedCount = intval($count);
+    }
+
+    public function getExpectedCount()
+    {
+        return $this->expectedCount;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php
new file mode 100644
index 000000000000..7a99c2d7963e
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prediction;
+
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Exception\Prophecy\MethodProphecyException;
+
+class UnexpectedCallsException extends MethodProphecyException implements PredictionException
+{
+    private $calls = array();
+
+    public function __construct($message, MethodProphecy $methodProphecy, array $calls)
+    {
+        parent::__construct($message, $methodProphecy);
+
+        $this->calls = $calls;
+    }
+
+    public function getCalls()
+    {
+        return $this->calls;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php
new file mode 100644
index 000000000000..1b03eaf4726c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php
@@ -0,0 +1,34 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prophecy;
+
+use Prophecy\Prophecy\MethodProphecy;
+
+class MethodProphecyException extends ObjectProphecyException
+{
+    private $methodProphecy;
+
+    public function __construct($message, MethodProphecy $methodProphecy)
+    {
+        parent::__construct($message, $methodProphecy->getObjectProphecy());
+
+        $this->methodProphecy = $methodProphecy;
+    }
+
+    /**
+     * @return MethodProphecy
+     */
+    public function getMethodProphecy()
+    {
+        return $this->methodProphecy;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php
new file mode 100644
index 000000000000..e345402e016e
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php
@@ -0,0 +1,34 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prophecy;
+
+use Prophecy\Prophecy\ObjectProphecy;
+
+class ObjectProphecyException extends \RuntimeException implements ProphecyException
+{
+    private $objectProphecy;
+
+    public function __construct($message, ObjectProphecy $objectProphecy)
+    {
+        parent::__construct($message);
+
+        $this->objectProphecy = $objectProphecy;
+    }
+
+    /**
+     * @return ObjectProphecy
+     */
+    public function getObjectProphecy()
+    {
+        return $this->objectProphecy;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php
new file mode 100644
index 000000000000..91573328724e
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php
@@ -0,0 +1,18 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Exception\Prophecy;
+
+use Prophecy\Exception\Exception;
+
+interface ProphecyException extends Exception
+{
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php
new file mode 100644
index 000000000000..5bdcdc4c3fcb
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php
@@ -0,0 +1,86 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prediction;
+
+use Prophecy\Call\Call;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Argument\ArgumentsWildcard;
+use Prophecy\Argument\Token\AnyValuesToken;
+use Prophecy\Util\StringUtil;
+use Prophecy\Exception\Prediction\NoCallsException;
+
+/**
+ * Call prediction.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class CallPrediction implements PredictionInterface
+{
+    private $util;
+
+    /**
+     * Initializes prediction.
+     *
+     * @param StringUtil $util
+     */
+    public function __construct(StringUtil $util = null)
+    {
+        $this->util = $util ?: new StringUtil;
+    }
+
+    /**
+     * Tests that there was at least one call.
+     *
+     * @param Call[]         $calls
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @throws \Prophecy\Exception\Prediction\NoCallsException
+     */
+    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
+    {
+        if (count($calls)) {
+            return;
+        }
+
+        $methodCalls = $object->findProphecyMethodCalls(
+            $method->getMethodName(),
+            new ArgumentsWildcard(array(new AnyValuesToken))
+        );
+
+        if (count($methodCalls)) {
+            throw new NoCallsException(sprintf(
+                "No calls been made that match:\n".
+                "  %s->%s(%s)\n".
+                "but expected at least one.\n".
+                "Recorded `%s(...)` calls:\n%s",
+
+                get_class($object->reveal()),
+                $method->getMethodName(),
+                $method->getArgumentsWildcard(),
+                $method->getMethodName(),
+                $this->util->stringifyCalls($methodCalls)
+            ), $method);
+        }
+
+        throw new NoCallsException(sprintf(
+            "No calls been made that match:\n".
+            "  %s->%s(%s)\n".
+            "but expected at least one.",
+
+            get_class($object->reveal()),
+            $method->getMethodName(),
+            $method->getArgumentsWildcard()
+        ), $method);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php
new file mode 100644
index 000000000000..31c6c575acd2
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php
@@ -0,0 +1,107 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prediction;
+
+use Prophecy\Call\Call;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Argument\ArgumentsWildcard;
+use Prophecy\Argument\Token\AnyValuesToken;
+use Prophecy\Util\StringUtil;
+use Prophecy\Exception\Prediction\UnexpectedCallsCountException;
+
+/**
+ * Prediction interface.
+ * Predictions are logical test blocks, tied to `should...` keyword.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class CallTimesPrediction implements PredictionInterface
+{
+    private $times;
+    private $util;
+
+    /**
+     * Initializes prediction.
+     *
+     * @param int        $times
+     * @param StringUtil $util
+     */
+    public function __construct($times, StringUtil $util = null)
+    {
+        $this->times = intval($times);
+        $this->util  = $util ?: new StringUtil;
+    }
+
+    /**
+     * Tests that there was exact amount of calls made.
+     *
+     * @param Call[]         $calls
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @throws \Prophecy\Exception\Prediction\UnexpectedCallsCountException
+     */
+    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
+    {
+        if ($this->times == count($calls)) {
+            return;
+        }
+
+        $methodCalls = $object->findProphecyMethodCalls(
+            $method->getMethodName(),
+            new ArgumentsWildcard(array(new AnyValuesToken))
+        );
+
+        if (count($calls)) {
+            $message = sprintf(
+                "Expected exactly %d calls that match:\n".
+                "  %s->%s(%s)\n".
+                "but %d were made:\n%s",
+
+                $this->times,
+                get_class($object->reveal()),
+                $method->getMethodName(),
+                $method->getArgumentsWildcard(),
+                count($calls),
+                $this->util->stringifyCalls($calls)
+            );
+        } elseif (count($methodCalls)) {
+            $message = sprintf(
+                "Expected exactly %d calls that match:\n".
+                "  %s->%s(%s)\n".
+                "but none were made.\n".
+                "Recorded `%s(...)` calls:\n%s",
+
+                $this->times,
+                get_class($object->reveal()),
+                $method->getMethodName(),
+                $method->getArgumentsWildcard(),
+                $method->getMethodName(),
+                $this->util->stringifyCalls($methodCalls)
+            );
+        } else {
+            $message = sprintf(
+                "Expected exactly %d calls that match:\n".
+                "  %s->%s(%s)\n".
+                "but none were made.",
+
+                $this->times,
+                get_class($object->reveal()),
+                $method->getMethodName(),
+                $method->getArgumentsWildcard()
+            );
+        }
+
+        throw new UnexpectedCallsCountException($message, $method, $this->times, $calls);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php
new file mode 100644
index 000000000000..44bc782c8a15
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php
@@ -0,0 +1,65 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prediction;
+
+use Prophecy\Call\Call;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Exception\InvalidArgumentException;
+use Closure;
+
+/**
+ * Callback prediction.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class CallbackPrediction implements PredictionInterface
+{
+    private $callback;
+
+    /**
+     * Initializes callback prediction.
+     *
+     * @param callable $callback Custom callback
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function __construct($callback)
+    {
+        if (!is_callable($callback)) {
+            throw new InvalidArgumentException(sprintf(
+                'Callable expected as an argument to CallbackPrediction, but got %s.',
+                gettype($callback)
+            ));
+        }
+
+        $this->callback = $callback;
+    }
+
+    /**
+     * Executes preset callback.
+     *
+     * @param Call[]         $calls
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     */
+    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
+    {
+        $callback = $this->callback;
+
+        if ($callback instanceof Closure && method_exists('Closure', 'bind')) {
+            $callback = Closure::bind($callback, $object);
+        }
+
+        call_user_func($callback, $calls, $object, $method);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php
new file mode 100644
index 000000000000..46ac5bfc062d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php
@@ -0,0 +1,68 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prediction;
+
+use Prophecy\Call\Call;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Util\StringUtil;
+use Prophecy\Exception\Prediction\UnexpectedCallsException;
+
+/**
+ * No calls prediction.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class NoCallsPrediction implements PredictionInterface
+{
+    private $util;
+
+    /**
+     * Initializes prediction.
+     *
+     * @param null|StringUtil $util
+     */
+    public function __construct(StringUtil $util = null)
+    {
+        $this->util = $util ?: new StringUtil;
+    }
+
+    /**
+     * Tests that there were no calls made.
+     *
+     * @param Call[]         $calls
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @throws \Prophecy\Exception\Prediction\UnexpectedCallsException
+     */
+    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
+    {
+        if (!count($calls)) {
+            return;
+        }
+
+        $verb = count($calls) === 1 ? 'was' : 'were';
+
+        throw new UnexpectedCallsException(sprintf(
+            "No calls expected that match:\n".
+            "  %s->%s(%s)\n".
+            "but %d %s made:\n%s",
+            get_class($object->reveal()),
+            $method->getMethodName(),
+            $method->getArgumentsWildcard(),
+            count($calls),
+            $verb,
+            $this->util->stringifyCalls($calls)
+        ), $method, $calls);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php
new file mode 100644
index 000000000000..f7fb06a9963c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php
@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prediction;
+
+use Prophecy\Call\Call;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+
+/**
+ * Prediction interface.
+ * Predictions are logical test blocks, tied to `should...` keyword.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface PredictionInterface
+{
+    /**
+     * Tests that double fulfilled prediction.
+     *
+     * @param Call[]        $calls
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @throws object
+     * @return void
+     */
+    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method);
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php
new file mode 100644
index 000000000000..5f406bf7a8ce
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php
@@ -0,0 +1,66 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Promise;
+
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Exception\InvalidArgumentException;
+use Closure;
+
+/**
+ * Callback promise.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class CallbackPromise implements PromiseInterface
+{
+    private $callback;
+
+    /**
+     * Initializes callback promise.
+     *
+     * @param callable $callback Custom callback
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function __construct($callback)
+    {
+        if (!is_callable($callback)) {
+            throw new InvalidArgumentException(sprintf(
+                'Callable expected as an argument to CallbackPromise, but got %s.',
+                gettype($callback)
+            ));
+        }
+
+        $this->callback = $callback;
+    }
+
+    /**
+     * Evaluates promise callback.
+     *
+     * @param array          $args
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @return mixed
+     */
+    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
+    {
+        $callback = $this->callback;
+
+        if ($callback instanceof Closure && method_exists('Closure', 'bind')) {
+            $callback = Closure::bind($callback, $object);
+        }
+
+        return call_user_func($callback, $args, $object, $method);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php
new file mode 100644
index 000000000000..382537b47da8
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php
@@ -0,0 +1,35 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Promise;
+
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+
+/**
+ * Promise interface.
+ * Promises are logical blocks, tied to `will...` keyword.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface PromiseInterface
+{
+    /**
+     * Evaluates promise.
+     *
+     * @param array          $args
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @return mixed
+     */
+    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method);
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php
new file mode 100644
index 000000000000..a06724bc7bfd
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php
@@ -0,0 +1,61 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Promise;
+
+use Prophecy\Exception\InvalidArgumentException;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+
+/**
+ * Return argument promise.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ReturnArgumentPromise implements PromiseInterface
+{
+    /**
+     * @var int
+     */
+    private $index;
+
+    /**
+     * Initializes callback promise.
+     *
+     * @param int $index The zero-indexed number of the argument to return
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function __construct($index = 0)
+    {
+        if (!is_int($index) || $index < 0) {
+            throw new InvalidArgumentException(
+                'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.',
+                $index
+            );
+        }
+        $this->index = $index;
+    }
+
+    /**
+     * Returns nth argument if has one, null otherwise.
+     *
+     * @param array          $args
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @return null|mixed
+     */
+    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
+    {
+        return count($args) > $this->index ? $args[$this->index] : null;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php
new file mode 100644
index 000000000000..c7d5ac598834
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php
@@ -0,0 +1,55 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Promise;
+
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+
+/**
+ * Return promise.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ReturnPromise implements PromiseInterface
+{
+    private $returnValues = array();
+
+    /**
+     * Initializes promise.
+     *
+     * @param array $returnValues Array of values
+     */
+    public function __construct(array $returnValues)
+    {
+        $this->returnValues = $returnValues;
+    }
+
+    /**
+     * Returns saved values one by one until last one, then continuously returns last value.
+     *
+     * @param array          $args
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @return mixed
+     */
+    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
+    {
+        $value = array_shift($this->returnValues);
+
+        if (!count($this->returnValues)) {
+            $this->returnValues[] = $value;
+        }
+
+        return $value;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php
new file mode 100644
index 000000000000..8007330ac4bb
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Promise;
+
+use Doctrine\Instantiator\Instantiator;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\MethodProphecy;
+use Prophecy\Exception\InvalidArgumentException;
+use ReflectionClass;
+
+/**
+ * Throw promise.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ThrowPromise implements PromiseInterface
+{
+    private $exception;
+
+    /**
+     * @var \Doctrine\Instantiator\Instantiator
+     */
+    private $instantiator;
+
+    /**
+     * Initializes promise.
+     *
+     * @param string|\Exception $exception Exception class name or instance
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function __construct($exception)
+    {
+        if (is_string($exception)) {
+            if (!class_exists($exception)
+             && 'Exception' !== $exception
+             && !is_subclass_of($exception, 'Exception')) {
+                throw new InvalidArgumentException(sprintf(
+                    'Exception class or instance expected as argument to ThrowPromise, but got %s.',
+                    gettype($exception)
+                ));
+            }
+        } elseif (!$exception instanceof \Exception) {
+            throw new InvalidArgumentException(sprintf(
+                'Exception class or instance expected as argument to ThrowPromise, but got %s.',
+                gettype($exception)
+            ));
+        }
+
+        $this->exception = $exception;
+    }
+
+    /**
+     * Throws predefined exception.
+     *
+     * @param array          $args
+     * @param ObjectProphecy $object
+     * @param MethodProphecy $method
+     *
+     * @throws object
+     */
+    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
+    {
+        if (is_string($this->exception)) {
+            $classname   = $this->exception;
+            $reflection  = new ReflectionClass($classname);
+            $constructor = $reflection->getConstructor();
+
+            if ($constructor->isPublic() && 0 == $constructor->getNumberOfRequiredParameters()) {
+                throw $reflection->newInstance();
+            }
+
+            if (!$this->instantiator) {
+                $this->instantiator = new Instantiator();
+            }
+
+            throw $this->instantiator->instantiate($classname);
+        }
+
+        throw $this->exception;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php
new file mode 100644
index 000000000000..9af03b9a625f
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php
@@ -0,0 +1,409 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prophecy;
+
+use Prophecy\Argument;
+use Prophecy\Promise;
+use Prophecy\Prediction;
+use Prophecy\Exception\Doubler\MethodNotFoundException;
+use Prophecy\Exception\InvalidArgumentException;
+use Prophecy\Exception\Prophecy\MethodProphecyException;
+
+/**
+ * Method prophecy.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class MethodProphecy
+{
+    private $objectProphecy;
+    private $methodName;
+    private $argumentsWildcard;
+    private $promise;
+    private $prediction;
+    private $checkedPredictions = array();
+    private $bound = false;
+
+    /**
+     * Initializes method prophecy.
+     *
+     * @param ObjectProphecy                        $objectProphecy
+     * @param string                                $methodName
+     * @param null|Argument\ArgumentsWildcard|array $arguments
+     *
+     * @throws \Prophecy\Exception\Doubler\MethodNotFoundException If method not found
+     */
+    public function __construct(ObjectProphecy $objectProphecy, $methodName, $arguments = null)
+    {
+        $double = $objectProphecy->reveal();
+        if (!method_exists($double, $methodName)) {
+            throw new MethodNotFoundException(sprintf(
+                'Method `%s::%s()` is not defined.', get_class($double), $methodName
+            ), get_class($double), $methodName, $arguments);
+        }
+
+        $this->objectProphecy = $objectProphecy;
+        $this->methodName     = $methodName;
+
+        $reflectedMethod = new \ReflectionMethod($double, $methodName);
+        if ($reflectedMethod->isFinal()) {
+            throw new MethodProphecyException(sprintf(
+                "Can not add prophecy for a method `%s::%s()`\n".
+                "as it is a final method.",
+                get_class($double),
+                $methodName
+            ), $this);
+        }
+
+        if (null !== $arguments) {
+            $this->withArguments($arguments);
+        }
+    }
+
+    /**
+     * Sets argument wildcard.
+     *
+     * @param array|Argument\ArgumentsWildcard $arguments
+     *
+     * @return $this
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function withArguments($arguments)
+    {
+        if (is_array($arguments)) {
+            $arguments = new Argument\ArgumentsWildcard($arguments);
+        }
+
+        if (!$arguments instanceof Argument\ArgumentsWildcard) {
+            throw new InvalidArgumentException(sprintf(
+                "Either an array or an instance of ArgumentsWildcard expected as\n".
+                'a `MethodProphecy::withArguments()` argument, but got %s.',
+                gettype($arguments)
+            ));
+        }
+
+        $this->argumentsWildcard = $arguments;
+
+        return $this;
+    }
+
+    /**
+     * Sets custom promise to the prophecy.
+     *
+     * @param callable|Promise\PromiseInterface $promise
+     *
+     * @return $this
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function will($promise)
+    {
+        if (is_callable($promise)) {
+            $promise = new Promise\CallbackPromise($promise);
+        }
+
+        if (!$promise instanceof Promise\PromiseInterface) {
+            throw new InvalidArgumentException(sprintf(
+                'Expected callable or instance of PromiseInterface, but got %s.',
+                gettype($promise)
+            ));
+        }
+
+        $this->bindToObjectProphecy();
+        $this->promise = $promise;
+
+        return $this;
+    }
+
+    /**
+     * Sets return promise to the prophecy.
+     *
+     * @see Prophecy\Promise\ReturnPromise
+     *
+     * @return $this
+     */
+    public function willReturn()
+    {
+        return $this->will(new Promise\ReturnPromise(func_get_args()));
+    }
+
+    /**
+     * Sets return argument promise to the prophecy.
+     *
+     * @param int $index The zero-indexed number of the argument to return
+     *
+     * @see Prophecy\Promise\ReturnArgumentPromise
+     *
+     * @return $this
+     */
+    public function willReturnArgument($index = 0)
+    {
+        return $this->will(new Promise\ReturnArgumentPromise($index));
+    }
+
+    /**
+     * Sets throw promise to the prophecy.
+     *
+     * @see Prophecy\Promise\ThrowPromise
+     *
+     * @param string|\Exception $exception Exception class or instance
+     *
+     * @return $this
+     */
+    public function willThrow($exception)
+    {
+        return $this->will(new Promise\ThrowPromise($exception));
+    }
+
+    /**
+     * Sets custom prediction to the prophecy.
+     *
+     * @param callable|Prediction\PredictionInterface $prediction
+     *
+     * @return $this
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function should($prediction)
+    {
+        if (is_callable($prediction)) {
+            $prediction = new Prediction\CallbackPrediction($prediction);
+        }
+
+        if (!$prediction instanceof Prediction\PredictionInterface) {
+            throw new InvalidArgumentException(sprintf(
+                'Expected callable or instance of PredictionInterface, but got %s.',
+                gettype($prediction)
+            ));
+        }
+
+        $this->bindToObjectProphecy();
+        $this->prediction = $prediction;
+
+        return $this;
+    }
+
+    /**
+     * Sets call prediction to the prophecy.
+     *
+     * @see Prophecy\Prediction\CallPrediction
+     *
+     * @return $this
+     */
+    public function shouldBeCalled()
+    {
+        return $this->should(new Prediction\CallPrediction);
+    }
+
+    /**
+     * Sets no calls prediction to the prophecy.
+     *
+     * @see Prophecy\Prediction\NoCallsPrediction
+     *
+     * @return $this
+     */
+    public function shouldNotBeCalled()
+    {
+        return $this->should(new Prediction\NoCallsPrediction);
+    }
+
+    /**
+     * Sets call times prediction to the prophecy.
+     *
+     * @see Prophecy\Prediction\CallTimesPrediction
+     *
+     * @param $count
+     *
+     * @return $this
+     */
+    public function shouldBeCalledTimes($count)
+    {
+        return $this->should(new Prediction\CallTimesPrediction($count));
+    }
+
+    /**
+     * Checks provided prediction immediately.
+     *
+     * @param callable|Prediction\PredictionInterface $prediction
+     *
+     * @return $this
+     *
+     * @throws \Prophecy\Exception\InvalidArgumentException
+     */
+    public function shouldHave($prediction)
+    {
+        if (is_callable($prediction)) {
+            $prediction = new Prediction\CallbackPrediction($prediction);
+        }
+
+        if (!$prediction instanceof Prediction\PredictionInterface) {
+            throw new InvalidArgumentException(sprintf(
+                'Expected callable or instance of PredictionInterface, but got %s.',
+                gettype($prediction)
+            ));
+        }
+
+        if (null === $this->promise) {
+            $this->willReturn();
+        }
+
+        $calls = $this->getObjectProphecy()->findProphecyMethodCalls(
+            $this->getMethodName(),
+            $this->getArgumentsWildcard()
+        );
+
+        try {
+            $prediction->check($calls, $this->getObjectProphecy(), $this);
+            $this->checkedPredictions[] = $prediction;
+        } catch (\Exception $e) {
+            $this->checkedPredictions[] = $prediction;
+
+            throw $e;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Checks call prediction.
+     *
+     * @see Prophecy\Prediction\CallPrediction
+     *
+     * @return $this
+     */
+    public function shouldHaveBeenCalled()
+    {
+        return $this->shouldHave(new Prediction\CallPrediction);
+    }
+
+    /**
+     * Checks no calls prediction.
+     *
+     * @see Prophecy\Prediction\NoCallsPrediction
+     *
+     * @return $this
+     */
+    public function shouldNotHaveBeenCalled()
+    {
+        return $this->shouldHave(new Prediction\NoCallsPrediction);
+    }
+
+    /**
+     * Checks no calls prediction.
+     *
+     * @see Prophecy\Prediction\NoCallsPrediction
+     * @deprecated
+     *
+     * @return $this
+     */
+    public function shouldNotBeenCalled()
+    {
+        return $this->shouldNotHaveBeenCalled();
+    }
+
+    /**
+     * Checks call times prediction.
+     *
+     * @see Prophecy\Prediction\CallTimesPrediction
+     *
+     * @param int $count
+     *
+     * @return $this
+     */
+    public function shouldHaveBeenCalledTimes($count)
+    {
+        return $this->shouldHave(new Prediction\CallTimesPrediction($count));
+    }
+
+    /**
+     * Checks currently registered [with should(...)] prediction.
+     */
+    public function checkPrediction()
+    {
+        if (null === $this->prediction) {
+            return;
+        }
+
+        $this->shouldHave($this->prediction);
+    }
+
+    /**
+     * Returns currently registered promise.
+     *
+     * @return null|Promise\PromiseInterface
+     */
+    public function getPromise()
+    {
+        return $this->promise;
+    }
+
+    /**
+     * Returns currently registered prediction.
+     *
+     * @return null|Prediction\PredictionInterface
+     */
+    public function getPrediction()
+    {
+        return $this->prediction;
+    }
+
+    /**
+     * Returns predictions that were checked on this object.
+     *
+     * @return Prediction\PredictionInterface[]
+     */
+    public function getCheckedPredictions()
+    {
+        return $this->checkedPredictions;
+    }
+
+    /**
+     * Returns object prophecy this method prophecy is tied to.
+     *
+     * @return ObjectProphecy
+     */
+    public function getObjectProphecy()
+    {
+        return $this->objectProphecy;
+    }
+
+    /**
+     * Returns method name.
+     *
+     * @return string
+     */
+    public function getMethodName()
+    {
+        return $this->methodName;
+    }
+
+    /**
+     * Returns arguments wildcard.
+     *
+     * @return Argument\ArgumentsWildcard
+     */
+    public function getArgumentsWildcard()
+    {
+        return $this->argumentsWildcard;
+    }
+
+    private function bindToObjectProphecy()
+    {
+        if ($this->bound) {
+            return;
+        }
+
+        $this->getObjectProphecy()->addMethodProphecy($this);
+        $this->bound = true;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php
new file mode 100644
index 000000000000..e85c9d51c966
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php
@@ -0,0 +1,279 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prophecy;
+
+use SebastianBergmann\Comparator\Factory as ComparatorFactory;
+use SebastianBergmann\Comparator\ComparisonFailure;
+use Prophecy\Call\Call;
+use Prophecy\Doubler\LazyDouble;
+use Prophecy\Argument\ArgumentsWildcard;
+use Prophecy\Call\CallCenter;
+use Prophecy\Exception\Prophecy\ObjectProphecyException;
+use Prophecy\Exception\Prophecy\MethodProphecyException;
+use Prophecy\Exception\Prediction\AggregateException;
+use Prophecy\Exception\Prediction\PredictionException;
+
+/**
+ * Object prophecy.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class ObjectProphecy implements ProphecyInterface
+{
+    private $lazyDouble;
+    private $callCenter;
+    private $revealer;
+    private $comparatorFactory;
+
+    /**
+     * @var MethodProphecy[][]
+     */
+    private $methodProphecies = array();
+
+    /**
+     * Initializes object prophecy.
+     *
+     * @param LazyDouble        $lazyDouble
+     * @param CallCenter        $callCenter
+     * @param RevealerInterface $revealer
+     * @param ComparatorFactory $comparatorFactory
+     */
+    public function __construct(
+        LazyDouble $lazyDouble,
+        CallCenter $callCenter = null,
+        RevealerInterface $revealer = null,
+        ComparatorFactory $comparatorFactory = null
+    ) {
+        $this->lazyDouble = $lazyDouble;
+        $this->callCenter = $callCenter ?: new CallCenter;
+        $this->revealer   = $revealer ?: new Revealer;
+
+        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();
+    }
+
+    /**
+     * Forces double to extend specific class.
+     *
+     * @param string $class
+     *
+     * @return $this
+     */
+    public function willExtend($class)
+    {
+        $this->lazyDouble->setParentClass($class);
+
+        return $this;
+    }
+
+    /**
+     * Forces double to implement specific interface.
+     *
+     * @param string $interface
+     *
+     * @return $this
+     */
+    public function willImplement($interface)
+    {
+        $this->lazyDouble->addInterface($interface);
+
+        return $this;
+    }
+
+    /**
+     * Sets constructor arguments.
+     *
+     * @param array $arguments
+     *
+     * @return $this
+     */
+    public function willBeConstructedWith(array $arguments = null)
+    {
+        $this->lazyDouble->setArguments($arguments);
+
+        return $this;
+    }
+
+    /**
+     * Reveals double.
+     *
+     * @return object
+     *
+     * @throws \Prophecy\Exception\Prophecy\ObjectProphecyException If double doesn't implement needed interface
+     */
+    public function reveal()
+    {
+        $double = $this->lazyDouble->getInstance();
+
+        if (null === $double || !$double instanceof ProphecySubjectInterface) {
+            throw new ObjectProphecyException(
+                "Generated double must implement ProphecySubjectInterface, but it does not.\n".
+                'It seems you have wrongly configured doubler without required ClassPatch.',
+                $this
+            );
+        }
+
+        $double->setProphecy($this);
+
+        return $double;
+    }
+
+    /**
+     * Adds method prophecy to object prophecy.
+     *
+     * @param MethodProphecy $methodProphecy
+     *
+     * @throws \Prophecy\Exception\Prophecy\MethodProphecyException If method prophecy doesn't
+     *                                                              have arguments wildcard
+     */
+    public function addMethodProphecy(MethodProphecy $methodProphecy)
+    {
+        $argumentsWildcard = $methodProphecy->getArgumentsWildcard();
+        if (null === $argumentsWildcard) {
+            throw new MethodProphecyException(sprintf(
+                "Can not add prophecy for a method `%s::%s()`\n".
+                "as you did not specify arguments wildcard for it.",
+                get_class($this->reveal()),
+                $methodProphecy->getMethodName()
+            ), $methodProphecy);
+        }
+
+        $methodName = $methodProphecy->getMethodName();
+
+        if (!isset($this->methodProphecies[$methodName])) {
+            $this->methodProphecies[$methodName] = array();
+        }
+
+        $this->methodProphecies[$methodName][] = $methodProphecy;
+    }
+
+    /**
+     * Returns either all or related to single method prophecies.
+     *
+     * @param null|string $methodName
+     *
+     * @return MethodProphecy[]
+     */
+    public function getMethodProphecies($methodName = null)
+    {
+        if (null === $methodName) {
+            return $this->methodProphecies;
+        }
+
+        if (!isset($this->methodProphecies[$methodName])) {
+            return array();
+        }
+
+        return $this->methodProphecies[$methodName];
+    }
+
+    /**
+     * Makes specific method call.
+     *
+     * @param string $methodName
+     * @param array  $arguments
+     *
+     * @return mixed
+     */
+    public function makeProphecyMethodCall($methodName, array $arguments)
+    {
+        $arguments = $this->revealer->reveal($arguments);
+        $return    = $this->callCenter->makeCall($this, $methodName, $arguments);
+
+        return $this->revealer->reveal($return);
+    }
+
+    /**
+     * Finds calls by method name & arguments wildcard.
+     *
+     * @param string            $methodName
+     * @param ArgumentsWildcard $wildcard
+     *
+     * @return Call[]
+     */
+    public function findProphecyMethodCalls($methodName, ArgumentsWildcard $wildcard)
+    {
+        return $this->callCenter->findCalls($methodName, $wildcard);
+    }
+
+    /**
+     * Checks that registered method predictions do not fail.
+     *
+     * @throws \Prophecy\Exception\Prediction\AggregateException If any of registered predictions fail
+     */
+    public function checkProphecyMethodsPredictions()
+    {
+        $exception = new AggregateException(sprintf("%s:\n", get_class($this->reveal())));
+        $exception->setObjectProphecy($this);
+
+        foreach ($this->methodProphecies as $prophecies) {
+            foreach ($prophecies as $prophecy) {
+                try {
+                    $prophecy->checkPrediction();
+                } catch (PredictionException $e) {
+                    $exception->append($e);
+                }
+            }
+        }
+
+        if (count($exception->getExceptions())) {
+            throw $exception;
+        }
+    }
+
+    /**
+     * Creates new method prophecy using specified method name and arguments.
+     *
+     * @param string $methodName
+     * @param array  $arguments
+     *
+     * @return MethodProphecy
+     */
+    public function __call($methodName, array $arguments)
+    {
+        $arguments = new ArgumentsWildcard($this->revealer->reveal($arguments));
+
+        foreach ($this->getMethodProphecies($methodName) as $prophecy) {
+            $argumentsWildcard = $prophecy->getArgumentsWildcard();
+            $comparator = $this->comparatorFactory->getComparatorFor(
+                $argumentsWildcard, $arguments
+            );
+
+            try {
+                $comparator->assertEquals($argumentsWildcard, $arguments);
+                return $prophecy;
+            } catch (ComparisonFailure $failure) {}
+        }
+
+        return new MethodProphecy($this, $methodName, $arguments);
+    }
+
+    /**
+     * Tries to get property value from double.
+     *
+     * @param string $name
+     */
+    public function __get($name)
+    {
+        return $this->reveal()->$name;
+    }
+
+    /**
+     * Tries to set property value to double.
+     *
+     * @param string $name
+     * @param string $value
+     */
+    public function __set($name, $value)
+    {
+        $this->reveal()->$name = $this->revealer->reveal($value);
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php
new file mode 100644
index 000000000000..462f15a90275
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prophecy;
+
+/**
+ * Core Prophecy interface.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface ProphecyInterface
+{
+    /**
+     * Reveals prophecy object (double) .
+     *
+     * @return object
+     */
+    public function reveal();
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php
new file mode 100644
index 000000000000..2d839585f90c
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php
@@ -0,0 +1,34 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prophecy;
+
+/**
+ * Controllable doubles interface.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface ProphecySubjectInterface
+{
+    /**
+     * Sets subject prophecy.
+     *
+     * @param ProphecyInterface $prophecy
+     */
+    public function setProphecy(ProphecyInterface $prophecy);
+
+    /**
+     * Returns subject prophecy.
+     *
+     * @return ProphecyInterface
+     */
+    public function getProphecy();
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php
new file mode 100644
index 000000000000..60ecdac814eb
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php
@@ -0,0 +1,44 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prophecy;
+
+/**
+ * Basic prophecies revealer.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class Revealer implements RevealerInterface
+{
+    /**
+     * Unwraps value(s).
+     *
+     * @param mixed $value
+     *
+     * @return mixed
+     */
+    public function reveal($value)
+    {
+        if (is_array($value)) {
+            return array_map(array($this, __FUNCTION__), $value);
+        }
+
+        if (!is_object($value)) {
+            return $value;
+        }
+
+        if ($value instanceof ProphecyInterface) {
+            $value = $value->reveal();
+        }
+
+        return $value;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php
new file mode 100644
index 000000000000..ffc82bb6f57a
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php
@@ -0,0 +1,29 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Prophecy;
+
+/**
+ * Prophecies revealer interface.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+interface RevealerInterface
+{
+    /**
+     * Unwraps value(s).
+     *
+     * @param mixed $value
+     *
+     * @return mixed
+     */
+    public function reveal($value);
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophet.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophet.php
new file mode 100644
index 000000000000..ac649234845d
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Prophet.php
@@ -0,0 +1,134 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy;
+
+use Prophecy\Doubler\Doubler;
+use Prophecy\Doubler\LazyDouble;
+use Prophecy\Doubler\ClassPatch;
+use Prophecy\Prophecy\ObjectProphecy;
+use Prophecy\Prophecy\RevealerInterface;
+use Prophecy\Prophecy\Revealer;
+use Prophecy\Call\CallCenter;
+use Prophecy\Util\StringUtil;
+use Prophecy\Exception\Prediction\PredictionException;
+use Prophecy\Exception\Prediction\AggregateException;
+
+/**
+ * Prophet creates prophecies.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class Prophet
+{
+    private $doubler;
+    private $revealer;
+    private $util;
+
+    /**
+     * @var ObjectProphecy[]
+     */
+    private $prophecies = array();
+
+    /**
+     * Initializes Prophet.
+     *
+     * @param null|Doubler           $doubler
+     * @param null|RevealerInterface $revealer
+     * @param null|StringUtil        $util
+     */
+    public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null,
+                                StringUtil $util = null)
+    {
+        if (null === $doubler) {
+            $doubler = new Doubler;
+            $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch);
+            $doubler->registerClassPatch(new ClassPatch\TraversablePatch);
+            $doubler->registerClassPatch(new ClassPatch\DisableConstructorPatch);
+            $doubler->registerClassPatch(new ClassPatch\ProphecySubjectPatch);
+            $doubler->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch);
+            $doubler->registerClassPatch(new ClassPatch\HhvmExceptionPatch());
+            $doubler->registerClassPatch(new ClassPatch\MagicCallPatch);
+            $doubler->registerClassPatch(new ClassPatch\KeywordPatch);
+        }
+
+        $this->doubler  = $doubler;
+        $this->revealer = $revealer ?: new Revealer;
+        $this->util     = $util ?: new StringUtil;
+    }
+
+    /**
+     * Creates new object prophecy.
+     *
+     * @param null|string $classOrInterface Class or interface name
+     *
+     * @return ObjectProphecy
+     */
+    public function prophesize($classOrInterface = null)
+    {
+        $this->prophecies[] = $prophecy = new ObjectProphecy(
+            new LazyDouble($this->doubler),
+            new CallCenter($this->util),
+            $this->revealer
+        );
+
+        if ($classOrInterface && class_exists($classOrInterface)) {
+            return $prophecy->willExtend($classOrInterface);
+        }
+
+        if ($classOrInterface && interface_exists($classOrInterface)) {
+            return $prophecy->willImplement($classOrInterface);
+        }
+
+        return $prophecy;
+    }
+
+    /**
+     * Returns all created object prophecies.
+     *
+     * @return ObjectProphecy[]
+     */
+    public function getProphecies()
+    {
+        return $this->prophecies;
+    }
+
+    /**
+     * Returns Doubler instance assigned to this Prophet.
+     *
+     * @return Doubler
+     */
+    public function getDoubler()
+    {
+        return $this->doubler;
+    }
+
+    /**
+     * Checks all predictions defined by prophecies of this Prophet.
+     *
+     * @throws Exception\Prediction\AggregateException If any prediction fails
+     */
+    public function checkPredictions()
+    {
+        $exception = new AggregateException("Some predictions failed:\n");
+        foreach ($this->prophecies as $prophecy) {
+            try {
+                $prophecy->checkProphecyMethodsPredictions();
+            } catch (PredictionException $e) {
+                $exception->append($e);
+            }
+        }
+
+        if (count($exception->getExceptions())) {
+            throw $exception;
+        }
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php b/core/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php
new file mode 100644
index 000000000000..54d383218b9e
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php
@@ -0,0 +1,185 @@
+<?php
+
+namespace Prophecy\Util;
+
+use Prophecy\Prophecy\ProphecyInterface;
+use SplObjectStorage;
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Exporting utility.
+ *
+ * This class is derived from the PHPUnit testing framework.
+ *
+ * @author  Sebastiaan Stok <s.stok@rollerscapes.net
+ * @author  Sebastian Bergmann <sebastian@phpunit.de>
+ * @license http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License>
+ */
+class ExportUtil
+{
+    /**
+     * Exports a value into a string.
+     *
+     * The output of this method is similar to the output of print_r(), but
+     * improved in various aspects:
+     *
+     *  - NULL is rendered as "null" (instead of "")
+     *  - true is rendered as "true" (instead of "1")
+     *  - FALSE is rendered as "false" (instead of "")
+     *  - Strings are always quoted with single quotes
+     *  - Carriage returns and newlines are normalized to \n
+     *  - Recursion and repeated rendering is treated properly
+     *
+     * @param  mixed   $value       The value to export
+     * @param  integer $indentation The indentation level of the 2nd+ line
+     *
+     * @return string
+     */
+    public static function export($value, $indentation = 0)
+    {
+        return static::recursiveExport($value, $indentation);
+    }
+
+    /**
+     * Converts an object to an array containing all of its private, protected
+     * and public properties.
+     *
+     * @param  object $object
+     *
+     * @return array
+     */
+    public static function toArray($object)
+    {
+        $array = array();
+
+        foreach ((array) $object as $key => $value) {
+            // properties are transformed to keys in the following way:
+
+            // private   $property => "\0Classname\0property"
+            // protected $property => "\0*\0property"
+            // public    $property => "property"
+
+            if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) {
+                $key = $matches[1];
+            }
+
+            $array[$key] = $value;
+        }
+
+        // Some internal classes like SplObjectStorage don't work with the
+        // above (fast) mechanism nor with reflection
+        // Format the output similarly to print_r() in this case
+        if ($object instanceof SplObjectStorage) {
+            foreach ($object as $key => $value) {
+                $array[spl_object_hash($value)] = array(
+                    'obj' => $value,
+                    'inf' => $object->getInfo(),
+                );
+            }
+        }
+
+        return $array;
+    }
+
+    /**
+     * Recursive implementation of export.
+     *
+     * @param  mixed   $value            The value to export
+     * @param  integer $indentation      The indentation level of the 2nd+ line
+     * @param  array   $processedObjects Contains all objects that were already
+     *                                   rendered
+     *
+     * @return string
+     */
+    protected static function recursiveExport($value, $indentation, &$processedObjects = array())
+    {
+        if ($value === null) {
+            return 'null';
+        }
+
+        if ($value === true) {
+            return 'true';
+        }
+
+        if ($value === false) {
+            return 'false';
+        }
+
+        if (is_string($value)) {
+            // Match for most non printable chars somewhat taking multibyte chars into account
+            if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) {
+                return 'Binary String: 0x' . bin2hex($value);
+            }
+
+            return "'" . str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) . "'";
+        }
+
+        $origValue = $value;
+
+        if (is_object($value)) {
+            if ($value instanceof ProphecyInterface) {
+                return sprintf('%s Object (*Prophecy*)', get_class($value));
+            } elseif (in_array($value, $processedObjects, true)) {
+                return sprintf('%s Object (*RECURSION*)', get_class($value));
+            }
+
+            $processedObjects[] = $value;
+
+            // Convert object to array
+            $value = self::toArray($value);
+        }
+
+        if (is_array($value)) {
+            $whitespace = str_repeat('    ', $indentation);
+
+            // There seems to be no other way to check arrays for recursion
+            // http://www.php.net/manual/en/language.types.array.php#73936
+            preg_match_all('/\n            \[(\w+)\] => Array\s+\*RECURSION\*/', print_r($value, true), $matches);
+            $recursiveKeys = array_unique($matches[1]);
+
+            // Convert to valid array keys
+            // Numeric integer strings are automatically converted to integers
+            // by PHP
+            foreach ($recursiveKeys as $key => $recursiveKey) {
+                if ((string) (integer) $recursiveKey === $recursiveKey) {
+                    $recursiveKeys[$key] = (integer) $recursiveKey;
+                }
+            }
+
+            $content = '';
+
+            foreach ($value as $key => $val) {
+                if (in_array($key, $recursiveKeys, true)) {
+                    $val = 'Array (*RECURSION*)';
+                } else {
+                    $val = self::recursiveExport($val, $indentation + 1, $processedObjects);
+                }
+
+                $content .= $whitespace . '    ' . self::export($key) . ' => ' . $val . "\n";
+            }
+
+            if (strlen($content) > 0) {
+                $content = "\n" . $content . $whitespace;
+            }
+
+            return sprintf(
+                "%s (%s)",
+                is_object($origValue) ? sprintf('%s:%s', get_class($origValue), spl_object_hash($origValue)) . ' Object' : 'Array', $content
+            );
+        }
+
+        if (is_double($value) && (double)(integer) $value === $value) {
+            return $value . '.0';
+        }
+
+        return (string) $value;
+    }
+}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php b/core/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php
new file mode 100644
index 000000000000..bb90156a3f7f
--- /dev/null
+++ b/core/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php
@@ -0,0 +1,89 @@
+<?php
+
+/*
+ * This file is part of the Prophecy.
+ * (c) Konstantin Kudryashov <ever.zet@gmail.com>
+ *     Marcello Duarte <marcello.duarte@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Prophecy\Util;
+
+use Prophecy\Call\Call;
+
+/**
+ * String utility.
+ *
+ * @author Konstantin Kudryashov <ever.zet@gmail.com>
+ */
+class StringUtil
+{
+    /**
+     * Stringifies any provided value.
+     *
+     * @param mixed   $value
+     * @param boolean $exportObject
+     *
+     * @return string
+     */
+    public function stringify($value, $exportObject = true)
+    {
+        if (is_array($value)) {
+            if (range(0, count($value) - 1) === array_keys($value)) {
+                return '['.implode(', ', array_map(array($this, __FUNCTION__), $value)).']';
+            }
+
+            $stringify = array($this, __FUNCTION__);
+
+            return '['.implode(', ', array_map(function ($item, $key) use ($stringify) {
+                return (is_integer($key) ? $key : '"'.$key.'"').
+                    ' => '.call_user_func($stringify, $item);
+            }, $value, array_keys($value))).']';
+        }
+        if (is_resource($value)) {
+            return get_resource_type($value).':'.$value;
+        }
+        if (is_object($value)) {
+            return $exportObject ? ExportUtil::export($value) : sprintf('%s:%s', get_class($value), spl_object_hash($value));
+        }
+        if (true === $value || false === $value) {
+            return $value ? 'true' : 'false';
+        }
+        if (is_string($value)) {
+            $str = sprintf('"%s"', str_replace("\n", '\\n', $value));
+
+            if (50 <= strlen($str)) {
+                return substr($str, 0, 50).'"...';
+            }
+
+            return $str;
+        }
+        if (null === $value) {
+            return 'null';
+        }
+
+        return (string) $value;
+    }
+
+    /**
+     * Stringifies provided array of calls.
+     *
+     * @param Call[] $calls Array of Call instances
+     *
+     * @return string
+     */
+    public function stringifyCalls(array $calls)
+    {
+        $self = $this;
+
+        return implode(PHP_EOL, array_map(function (Call $call) use ($self) {
+            return sprintf('  - %s(%s) @ %s',
+                $call->getMethodName(),
+                implode(', ', array_map(array($self, 'stringify'), $call->getArguments())),
+                str_replace(GETCWD().DIRECTORY_SEPARATOR, '', $call->getCallPlace())
+            );
+        }, $calls));
+    }
+}
diff --git a/core/vendor/phpunit/php-code-coverage/CONTRIBUTING.md b/core/vendor/phpunit/php-code-coverage/CONTRIBUTING.md
index 6f6ef3445223..40dbc25e746d 100644
--- a/core/vendor/phpunit/php-code-coverage/CONTRIBUTING.md
+++ b/core/vendor/phpunit/php-code-coverage/CONTRIBUTING.md
@@ -1,4 +1,4 @@
-Pull Requests for bug fixes should be made against the current release branch (1.2).
+Pull Requests for bug fixes should be made against the current release branch (2.0).
 
 Pull Requests for new features should be made against master.
 
diff --git a/core/vendor/phpunit/php-code-coverage/LICENSE b/core/vendor/phpunit/php-code-coverage/LICENSE
index 02e6511bdae0..fcfa37e80492 100644
--- a/core/vendor/phpunit/php-code-coverage/LICENSE
+++ b/core/vendor/phpunit/php-code-coverage/LICENSE
@@ -1,6 +1,6 @@
 PHP_CodeCoverage
 
-Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2009-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/php-code-coverage/README.md b/core/vendor/phpunit/php-code-coverage/README.md
index 603d623a4ed7..6ca608a40d65 100644
--- a/core/vendor/phpunit/php-code-coverage/README.md
+++ b/core/vendor/phpunit/php-code-coverage/README.md
@@ -1,5 +1,5 @@
 [![Latest Stable Version](https://poser.pugx.org/phpunit/php-code-coverage/v/stable.png)](https://packagist.org/packages/phpunit/php-code-coverage)
-[![Build Status](https://travis-ci.org/sebastianbergmann/php-code-coverage.png?branch=master)](https://travis-ci.org/sebastianbergmann/php-code-coverage)
+[![Build Status](https://travis-ci.org/sebastianbergmann/php-code-coverage.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-code-coverage)
 
 # PHP_CodeCoverage
 
@@ -12,11 +12,11 @@
 
 ## Installation
 
-To add PHP_CodeCoverage as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-code-coverage` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on PHP_CodeCoverage 2.1:
+To add PHP_CodeCoverage as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-code-coverage` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on PHP_CodeCoverage 2.0:
 
     {
         "require": {
-            "phpunit/php-code-coverage": "2.1.*"
+            "phpunit/php-code-coverage": "~2.0"
         }
     }
 
diff --git a/core/vendor/phpunit/php-code-coverage/build.xml b/core/vendor/phpunit/php-code-coverage/build.xml
index 6604b76b8f6b..c335d1587c6b 100644
--- a/core/vendor/phpunit/php-code-coverage/build.xml
+++ b/core/vendor/phpunit/php-code-coverage/build.xml
@@ -39,4 +39,3 @@
   </exec>
  </target>
 </project>
-
diff --git a/core/vendor/phpunit/php-code-coverage/composer.json b/core/vendor/phpunit/php-code-coverage/composer.json
index fb00ddd7b73b..23df5ba38572 100644
--- a/core/vendor/phpunit/php-code-coverage/composer.json
+++ b/core/vendor/phpunit/php-code-coverage/composer.json
@@ -29,7 +29,7 @@
         "sebastian/version": "~1.0"
     },
     "require-dev": {
-        "phpunit/phpunit": "~4.1",
+        "phpunit/phpunit": "~4",
         "ext-xdebug": ">=2.1.4"
     },
     "suggest": {
@@ -46,8 +46,5 @@
         "branch-alias": {
             "dev-master": "2.0.x-dev"
         }
-    },
-    "include-path": [
-        ""
-    ]
+    }
 }
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage.php
index 06161e2992fb..54f0f6ac9834 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 use SebastianBergmann\Environment\Runtime;
@@ -51,7 +16,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
@@ -370,9 +335,9 @@ public function append(array $data, $id = null, $append = true, $linesToBeCovere
      */
     public function merge(PHP_CodeCoverage $that)
     {
-        foreach ($that->data as $file => $lines) {
+        foreach ($that->getData() as $file => $lines) {
             if (!isset($this->data[$file])) {
-                if (!$this->filter->isFiltered($file)) {
+                if (!$that->filter()->isFiltered($file)) {
                     $this->data[$file] = $lines;
                 }
 
@@ -571,10 +536,6 @@ private function applyIgnoredLinesFilter(array &$data)
             foreach ($this->getLinesToBeIgnored($filename) as $line) {
                 unset($data[$filename][$line]);
             }
-
-            if (empty($data[$filename])) {
-                unset($data[$filename]);
-            }
         }
     }
 
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver.php
index e9bd69991f62..fd2ead8eaacd 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php
index cc370e76e7a1..324a99f518dd 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.3.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.3.0
@@ -82,7 +47,7 @@ public function start()
      */
     public function stop()
     {
-        $codeCoverage = fb_get_code_coverage(TRUE);
+        $codeCoverage = fb_get_code_coverage(true);
 
         fb_disable_code_coverage();
 
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php
index 3c2fb4c7bdb2..3b33188613ba 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception.php
index 9d302d0c3e30..a960c08b68c4 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php
index 323383d531c2..7f0950384dd8 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php
index aae37de41e3c..fce8461e6518 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
@@ -94,13 +59,16 @@ class PHP_CodeCoverage_Filter
         'Text_Template' => 1,
         'Symfony\Component\Yaml\Yaml' => 1,
         'SebastianBergmann\Diff\Diff' => 1,
-        'SebastianBergmann\Comparator\Comparator' => 1,
         'SebastianBergmann\Environment\Runtime' => 1,
+        'SebastianBergmann\Comparator\Comparator' => 1,
         'SebastianBergmann\Exporter\Exporter' => 1,
+        'SebastianBergmann\GlobalState\Snapshot' => 1,
+        'SebastianBergmann\RecursionContext\Context' => 1,
         'SebastianBergmann\Version' => 1,
         'Composer\Autoload\ClassLoader' => 1,
-        'Instantiator\Instantiator' => 1,
-        'LazyMap\AbstractLazyMap' => 1
+        'Doctrine\Instantiator\Instantiator' => 1,
+        'phpDocumentor\Reflection\DocBlock' => 1,
+        'Prophecy\Prophet' => 1
     );
 
     /**
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php
index f2c0242b30cd..c29e175555fd 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php
index a66adc16b6a3..8e1f11a992b2 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Zsolt Takács <zsolt@takacs.cc>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Zsolt Takács <zsolt@takacs.cc>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -74,18 +39,20 @@ public function process(PHP_CodeCoverage $coverage, $target = null, $name = null
         $root->appendChild($project);
         $root->appendChild($document->createElement('timestamp', date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME'])));
 
-        $stats = $document->createElement('stats');
+        $stats       = $document->createElement('stats');
         $methodsNode = $document->createElement('methods');
 
-        $report   = $coverage->getReport();
+        $report = $coverage->getReport();
         unset($coverage);
 
-        $fullMethodCount = 0;
+        $fullMethodCount     = 0;
         $fullCrapMethodCount = 0;
-        $fullCrapLoad = 0;
-        $fullCrap = 0;
+        $fullCrapLoad        = 0;
+        $fullCrap            = 0;
 
         foreach ($report as $item) {
+            $namespace = 'global';
+
             if (!$item instanceof PHP_CodeCoverage_Report_Node_File) {
                 continue;
             }
@@ -99,7 +66,7 @@ public function process(PHP_CodeCoverage $coverage, $target = null, $name = null
                 foreach ($class['methods'] as $methodName => $method) {
                     $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']);
 
-                    $fullCrap += $method['crap'];
+                    $fullCrap     += $method['crap'];
                     $fullCrapLoad += $crapLoad;
                     $fullMethodCount++;
 
@@ -109,7 +76,11 @@ public function process(PHP_CodeCoverage $coverage, $target = null, $name = null
 
                     $methodNode = $document->createElement('method');
 
-                    $methodNode->appendChild($document->createElement('package', ''));
+                    if (!empty($class['package']['namespace'])) {
+                        $namespace = $class['package']['namespace'];
+                    }
+
+                    $methodNode->appendChild($document->createElement('package', $namespace));
                     $methodNode->appendChild($document->createElement('className', $className));
                     $methodNode->appendChild($document->createElement('methodName', $methodName));
                     $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method['signature'])));
@@ -148,7 +119,7 @@ public function process(PHP_CodeCoverage $coverage, $target = null, $name = null
     private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent)
     {
         $crapLoad = 0;
-        if ($crapValue > $this->threshold) {
+        if ($crapValue >= $this->threshold) {
             $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100);
             $crapLoad += $cyclomaticComplexity / $this->threshold;
         }
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php
index c8cb63b4b30d..b9bffdf9414d 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
@@ -57,14 +22,16 @@
 class PHP_CodeCoverage_Report_Factory
 {
     /**
-     * @param PHP_CodeCoverage $coverage
+     * @param  PHP_CodeCoverage $coverage
+     * @return PHP_CodeCoverage_Report_Node_Directory
      */
     public function create(PHP_CodeCoverage $coverage)
     {
         $files      = $coverage->getData();
         $commonPath = $this->reducePaths($files);
         $root       = new PHP_CodeCoverage_Report_Node_Directory(
-            $commonPath, null
+            $commonPath,
+            null
         );
 
         $this->addItems(
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php
index 148cb5297acd..c67db46a8db8 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
@@ -91,7 +56,6 @@ public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generato
 
         $this->templatePath = sprintf(
             '%s%sHTML%sRenderer%sTemplate%s',
-
             dirname(__FILE__),
             DIRECTORY_SEPARATOR,
             DIRECTORY_SEPARATOR,
@@ -182,6 +146,7 @@ private function copyFiles($target)
         copy($this->templatePath . 'fonts/glyphicons-halflings-regular.svg', $dir . 'glyphicons-halflings-regular.svg');
         copy($this->templatePath . 'fonts/glyphicons-halflings-regular.ttf', $dir . 'glyphicons-halflings-regular.ttf');
         copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff', $dir . 'glyphicons-halflings-regular.woff');
+        copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff2', $dir . 'glyphicons-halflings-regular.woff2');
 
         $dir = $this->getDirectory($target . 'js');
         copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js');
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php
index 55ebabc0c27f..2b35f68c51ab 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 use SebastianBergmann\Environment\Runtime;
@@ -51,7 +16,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
@@ -99,7 +64,7 @@ abstract class PHP_CodeCoverage_Report_HTML_Renderer
      */
     public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound)
     {
-        $version = new SebastianBergmann\Version('2.0.11', dirname(dirname(dirname(dirname(__DIR__)))));
+        $version = new SebastianBergmann\Version('2.0.16', dirname(dirname(dirname(dirname(__DIR__)))));
 
         $this->templatePath   = $templatePath;
         $this->generator      = $generator;
@@ -229,7 +194,8 @@ protected function getBreadcrumbs(PHP_CodeCoverage_Report_Node $node)
         foreach ($path as $step) {
             if ($step !== $node) {
                 $breadcrumbs .= $this->getInactiveBreadcrumb(
-                    $step, array_pop($pathToRoot)
+                    $step,
+                    array_pop($pathToRoot)
                 );
             } else {
                 $breadcrumbs .= $this->getActiveBreadcrumb($step);
@@ -280,7 +246,9 @@ protected function getCoverageBar($percent)
         $level = $this->getColorLevel($percent);
 
         $template = new Text_Template(
-            $this->templatePath . 'coverage_bar.html', '{{', '}}'
+            $this->templatePath . 'coverage_bar.html',
+            '{{',
+            '}}'
         );
 
         $template->setVar(array('level' => $level, 'percent' => sprintf("%.2F", $percent)));
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php
index b913c4262d9a..deac0b77e710 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
@@ -64,15 +29,18 @@ public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file)
     {
         $classes  = $node->getClassesAndTraits();
         $template = new Text_Template(
-            $this->templatePath . 'dashboard.html', '{{', '}}'
+            $this->templatePath . 'dashboard.html',
+            '{{',
+            '}}'
         );
 
         $this->setCommonTemplateVariables($template, $node);
 
-        $complexity           = $this->complexity($classes);
+        $baseLink             = $node->getId() . '/';
+        $complexity           = $this->complexity($classes, $baseLink);
         $coverageDistribution = $this->coverageDistribution($classes);
-        $insufficientCoverage = $this->insufficientCoverage($classes);
-        $projectRisks         = $this->projectRisks($classes);
+        $insufficientCoverage = $this->insufficientCoverage($classes, $baseLink);
+        $projectRisks         = $this->projectRisks($classes, $baseLink);
 
         $template->setVar(
             array(
@@ -93,10 +61,11 @@ public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file)
     /**
      * Returns the data for the Class/Method Complexity charts.
      *
-     * @param  array $classes
+     * @param  array  $classes
+     * @param  string $baseLink
      * @return array
      */
-    protected function complexity(array $classes)
+    protected function complexity(array $classes, $baseLink)
     {
         $result = array('class' => array(), 'method' => array());
 
@@ -111,7 +80,7 @@ protected function complexity(array $classes)
                     $method['ccn'],
                     sprintf(
                         '<a href="%s">%s</a>',
-                        $method['link'],
+                        str_replace($baseLink, '', $method['link']),
                         $methodName
                     )
                 );
@@ -122,7 +91,7 @@ protected function complexity(array $classes)
                 $class['ccn'],
                 sprintf(
                     '<a href="%s">%s</a>',
-                    $class['link'],
+                    str_replace($baseLink, '', $class['link']),
                     $className
                 )
             );
@@ -206,10 +175,11 @@ protected function coverageDistribution(array $classes)
     /**
      * Returns the classes / methods with insufficient coverage.
      *
-     * @param  array $classes
+     * @param  array  $classes
+     * @param  string $baseLink
      * @return array
      */
-    protected function insufficientCoverage(array $classes)
+    protected function insufficientCoverage(array $classes, $baseLink)
     {
         $leastTestedClasses = array();
         $leastTestedMethods = array();
@@ -239,7 +209,7 @@ protected function insufficientCoverage(array $classes)
         foreach ($leastTestedClasses as $className => $coverage) {
             $result['class'] .= sprintf(
                 '       <tr><td><a href="%s">%s</a></td><td class="text-right">%d%%</td></tr>' . "\n",
-                $classes[$className]['link'],
+                str_replace($baseLink, '', $classes[$className]['link']),
                 $className,
                 $coverage
             );
@@ -250,7 +220,7 @@ protected function insufficientCoverage(array $classes)
 
             $result['method'] .= sprintf(
                 '       <tr><td><a href="%s"><abbr title="%s">%s</a></a></td><td class="text-right">%d%%</td></tr>' . "\n",
-                $classes[$class]['methods'][$method]['link'],
+                str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']),
                 $methodName,
                 $method,
                 $coverage
@@ -263,10 +233,11 @@ protected function insufficientCoverage(array $classes)
     /**
      * Returns the project risks according to the CRAP index.
      *
-     * @param  array $classes
+     * @param  array  $classes
+     * @param  string $baseLink
      * @return array
      */
-    protected function projectRisks(array $classes)
+    protected function projectRisks(array $classes, $baseLink)
     {
         $classRisks  = array();
         $methodRisks = array();
@@ -298,7 +269,7 @@ protected function projectRisks(array $classes)
         foreach ($classRisks as $className => $crap) {
             $result['class'] .= sprintf(
                 '       <tr><td><a href="%s">%s</a></td><td class="text-right">%d</td></tr>' . "\n",
-                $classes[$className]['link'],
+                str_replace($baseLink, '', $classes[$className]['link']),
                 $className,
                 $crap
             );
@@ -309,7 +280,7 @@ protected function projectRisks(array $classes)
 
             $result['method'] .= sprintf(
                 '       <tr><td><a href="%s"><abbr title="%s">%s</abbr></a></td><td class="text-right">%d</td></tr>' . "\n",
-                $classes[$class]['methods'][$method]['link'],
+                str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']),
                 $methodName,
                 $method,
                 $crap
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php
index 4cf6000ca965..1e21d26a7dbb 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php
index 8c73f8f63d2f..907a39f0e56f 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 // @codeCoverageIgnoreStart
@@ -71,7 +36,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css
index a9f35ceedfac..28f154dec4aa 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css
@@ -1,5 +1,5 @@
 /*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100% \9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
+ *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.eot b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.eot
index 4a4ca865d67e..b93a4953fff6 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.eot
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.eot
@@ -1,109 +1,106 @@
-oO��N��������������������LP�����������������������Œòÿ¥������������������(�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s����R�e�g�u�l�a�r���x�V�e�r�s�i�o�n� �1�.�0�0�1�;�P�S� �0�0�1�.�0�0�1�;�h�o�t�c�o�n�v� �1�.�0�.�7�0�;�m�a�k�e�o�t�f�.�l�i�b�2�.�5�.�5�8�3�2�9���8�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s� �R�e�g�u�l�a�r�����BSGP�����������������v¸�5v�5|�-\ÍéŠÈ`ØWÉhKqJx"U:r,/–4\›ÜliÒÛÓñˆÊšEÇLFM´Æ€çV(gÔW\Óò+rK0
-QÁ¯È3-O>‚CÇdŠg¤e}\ø4–ã[Dd…‹pÇWQ õ@ÚõJ[¨M’¦†º¥UAƒÐÇjù­.pÂå`k‰*CñI4Ø«Ÿo\ö	•Àw›âÀfvÅÅXDöµlB‹g1‰[/a¸“2Àlõ–Eÿ±ŸÊ2äóø�g2µ9¬MÊ»
‡‘zGDUB¯µæA¦$L¹‘}XÊ•füz;N2Þ_¿žà“;(Žk¤¼@B[º!˜6P§3»G
-‡E]{ÈõÀJW/s’«4ª%êŠÛß™£è„Â_Û}}cðO-4lPÑaDXÈ[ÂÊq¤v�›*ÛX,Áu
*
-†ÖÀ·îz 3JLÚ}ò
-0åƒÕÑVjUyjn¾)¡†äÓO0;ù0!ä-!r�"&b�bl,-`ãQ”œ|/^ÝL¸þ¨ðVßRªuzüÔªëI°Ö÷Ъå¡!ãìkŠ&)J{.tS?™«iS½€¤ÌdiVDö1w b•œ]”­Dê*‹%qsËPD¿¢«Òẍ�Ôp
-EG`˜üé+öw: V¸Ø*X<[Þlñ‚M©à
-ö.ßÐΡSh¢®Ïqk™½"½
-ÂJ ¢¡MT6Ó c´ýk‰aúzÔª´nq¹ïm0ãàpDJÅÌvú咽ÎÁÿÒØFçv(‚S¿Ž(âÔMI†Ó¶F•™áK»Ím<H´Å÷Ðq~|M²X`~Is€"’ÐÁ;Œ#‚8³ËxƘ†+†ÚÊÞÛíîm`ÅÈ-I`ó>ç"Ëå=Ú-…‹B(>óQe²YegŠäœŠ7¦.û_ªj‚&LKß	9zR¼uC£Î
-é”Rȍ&B™0
’è‡â”ÒÝ_C_§ƒˆœ¬{4µW?š„Nè„Í"$ø#äýD“¹	:J4À/¨›ôƒíš¶GÜJ;]ÄwèìÛd´:˜H9€´Â®î[Ô¨* KÍ
-™#û8A$a`]Úž-TE7$:¥sp†f	L$}Z––­b]ãbî6Ôç¾Hýôƒrx-t
ƒšjViMj‘N^[£³8 >Cn7L
œ&+3W6G<ÝB¬O«‚õÙ2A:ªå³Š’K†='’=ùJ¿þBƃh2´Ê"d†²×ïý	Ê	Î ÛO<iÜŠÛ¢Åà¥ÈKpi,µ¬VíýNª^ 4Rhx-Š BSÙ’”êß[9U› "An¤	èäoh+�†F«ùÛÞ1£«—°r<~{N¦Ä9
ó—4rI–˜ÌېUý`póztÉÁËÙmÃñgu’¨;¾ŒZ²Õ|8DŸSM×K;™È©¦üË«@~%
-úxv@A†iI•&ÓÀûڊˆ4‚¶ùc±Q2}0¹.—G²~ž˜ãy ÍÂ#  ¥ÿZ-¿—¥Î-¡�«Êž Œ%jÔ)u/­œv†a™¤I,g҂àÖ�Ç"¯l&â8Ü@±Q'“
?±ÎáqO8lG‡OeÆ”œjjKj &¨ÑÖûÿÿ¸
-‰í£ÓcÎ
¢FëÏG[x±Hç™M}
Ȑ]8¢yÀ¢eñˆØ6°[=3[þ‚ÒšFøÑVèH]êpó&YÈ\Wó¯VÕY	_ÊPètP[„ ßýPuÞ>8Õ×6¯áâÀX‚nf¦Çÿîiø?4	õ¹Ì}Ôé<€4	 ãζfVá‘ìGeb}‘š£ó¿†siÒª’{OEôÌn#…&QP6D*BLB�„­1…SRk÷D÷µ‚¸XX³><|0;•´ëÚˆ€5í5ÙC~øÔ4¤úóºËÉ?ìÈ:P¹}"´Û%ÙÕut5—¼ŠIè!´…œ9¾lÃþ$! ²ŽyMÅTÔ>€ñ'·	OÞtqa?^âøŸEm› ß²²CÚ”sêS|-nH¶ºøq”·#Yt€
äì…k	“ñ¹ðŽ¢ÜÇ®Ÿs¥%}ÇŠ™bCW/|©`F•\²b,‰‰É2H¢õ2ª/ö94#~Ýe¸à‡ý†Êcˆ±Ä©"ÝQãâÀà‰7ä:ÒZ¤IÖ‹]%¢ÜàY›*ÌB;8aFxŠÊ©bã_ÍŸ²ß-
*·ì)”4Û?Âj£@—•5Q'ªìP8ôÂíGr´£Ë)ŸÐ<GˆF”4¶ÍG{÷µ6‹òè—;ã£ÞÔ‰sžŠ$z%öq¹É[­
-BŸ‰ONDM#ü<0*0‘.3.ñùNÁÉ6FQg,ö4VÕÖ¹ßÀ¹¶'ñ,Íʲ²G�¹�U
XüÔÑ�BiUèë=M	ÉK¸õ@óü¸Øb�oB<ô’”ƒ‚º€@Í]è̈„�¬†½aéÐæè7î`<ÐÇT²&r1=Õìîœû„V¤Ãþ4DaD 2ƒÃxù¼u‰×)Ÿ ÚŽ‘ši…ÑOv”—
-dbHöié—ÅΓ"ñ F]@¦ÙÀÀºÄ„ê­!6&á
-G-‹°’¿Ì踃/tè€C°ïÇxÈ4;œDí¡ ëÛ§SUS–[˜O/¨²½›'ºuKR-lûkÖƯ'^[€BV½„©,ˆRáJKØ°T^Eg Ò\�Š2Ú˜,ïU&Ñ™+u ÷¶wííõ•„bªº„èrK‹HñËÄrµû }F‡Ý*‘èw÷ð¾"æÁžŠ½R9DµA¿¡Y	
-¨=7G ÚP*=+Ù;N+�P
->Õ ¸²xìl֏¸("ºc{ã‡G݇û_ÁxۢƴHE-Bᔡ`\_«`úT‘X‹ißCõOÏèëñ!;ŽÊý³ëäàÖ#›’è$ŽQC”Už(áº75D´
-Ѥƒâd´„=Ê´>dZ¾0tïàj¥¡gÈv2»-Ä“xU	ô3,7tÂÎð¡aï,(â5ò¶ˆ„ˆœ�ŽYÐùÀEÁ†Ã$—6ÖsÌâòŠB܉O°µÇ	cª:
-¸ˆõ:Ç ÒÚ×R.yaHXì%¯1yL7ÐAÑáýz5Œ³ oè*�”±n5óe¯˜)oFÆ·¼aDe`hp"Q›·”ÃÙYo¦˜O‚ç ¢4o¡¾”p§s0‘¥OE
-Y)b¯8xÈ.�¯kÓ+8U)+­6-]K9ŒïpQt&´äž}¿‘Snmb²tºø¢°LM¢Úwõ÷ÉXsSIj·>õI¦Sj
2`%ËŠáÞ9ì4‘Ÿ™}éà=J½A…v×D
jŠ—Ò踠‚Ø“ÕàààTÂ[��P½#™ça¬W­0Tt-~z©¯I„,‘6›‘U2ü)—'ô\‚œ”vºý
-ðüS•‘RŠïPæ Znqç"abE´érwL1õˆU[Ôn@G[9y3s¹É;!r퐽"04{™…2
faJ
ÊÜ)„"P:€¿6™©3'Z7\‘H5à9»þNT¿t
-ù®}‚ü 損;wLœ.´¹tdÉúqî‚wŽ’„o
-ŠÎ‰µ)ì×"f.dúxìCz
-KFNÇ¢hœF“™@�Êá¡°)1V´ìa·ãPžJV‹Û,ºB{&Žîƒýñ®f¡p¤ËphóÆx¡O2È�%8ºÃQ´ÀPL:eэ’‚ϨiNâÒ`ߟñ§—ÔÒ’Ä]ŽQ$ý{3›qNÊôâ%‚–šOtˆƒ=jxgPô܍ΰ FKüäè^{²¥f…’£?^Ù/¢ OŒ\è“:„JD;™³Q`cÙž^!ÓÎdvèk€“¿	åe½3庑’aêICö †d6 ʐÃûIÈš#\},Ú?HüÄf3ØcéU¬áw²³+ôÍ$ŒU[":ˆ¨Â’}]j•±b(Es�)‡`»%\Â¥þÍU˜.#]v/)ûáÔ¡K:I×ðc´4¡Ã³.c$þCðÞ?fî `+È6ùcx$#[ߺŒ	f&h,ÈA4Ó-Ág`É?Ý$±ñ11ÒbB5‹Ñ}ËŸ
-X`h‚¼^ÏÎø2·*•ÒÂä"º¥`§P°¡ùRºoµžoë¯פ)jk½7šL"¶3Þ|{y@ªÕºi²û¬w@&º}g$Æs’uÙñÃ"ò©„•_†õ›††[n
-7(¯Ãå)ÅD`´æQ¸éò´Å”ôm>·@òÙcgDD~xp™ë’ ¶}`‰tð‚oÖHªT«u¼õ˜Ò)ÔÏÉÄm7$'ý,h¹XNârl’uÿ5_<ƒgßÀªLÌ,Ô¢¨ÿ+Í^àðˆÓā-,å,ééii΃Ċ°ÜÙB¨2Š´øÓ�.¼ ¬éD¬š!^ò	ÿB*Î&h“£®‘¶z€[s¬–בrIXe·>@>[ƍäÁ<h³Bܧp¶n¸[*²´áÕdƒ¦Îp,Ö‹èÜç¾ö@K\Æ
’D$SLÁ)¨ÅBËÖD®‡º/ÜoW T»fŽ²á“„"@õFT‚ŠP¯QA*Ù/‰Ր‘›¼ZK¥3A_šÉ^+¶µ²[9	ì×°ÊßßCf¿í›µ Á¡ÍÕB¡PxT´ˆÒ="0èÒjýìU£aàÑJ½é²ÖSUž§•i܆ì°màÒ¿DÙ䦏{-Š sçi
-“õåcÖ· KÁÞ-ލsø˜eDxÌ·ƒz€D–•
D„̶ÑBÁ‹pÙ…­
ËA=%aâ, 	ÅTÎ$Öl9±"ºÒêÂŒ~3mîòP„›h¹m6¸ʈR:ˆÖÂý¥ak¥: õmà”0‹ŸÿúQ,±ÊeÍ•ùÕŠy
¼¦FR<ôbˆ‘ái¿ ?áiƒÔTϐ“ñƒ–Dz%i8›‹}ÁÆíòà.s·Æ™®Ä3L]ðGvœÇ4c¬qÚêu<($)¥`U¤ŸÙxêÛ¿&¶„ß®À1 &ÝÆp<>ÍĬ]6”Éݏ ÂS@Ý&®Æ›2 ©@‡Ò4·Ùôw|{‡ˆߤ9°.ÎFí¶d°…éÏæœq¬r€(…AÖ1Æ´¾#ADp#6ËÁÕí=rRï
-{�úxêP»(­ìQ@"œÕÿ×Þ¥&Ï ]<‰­p3{ô>ôaºy[µ¹J(‡”%;MAÔç~NdR;ÇÇ>4hàYôjçQœ=¥yæ[´`\Žh:L]²í }‚~0MŠ”ºÖÃl<»T¤·+L(XBE‚šWrKü´äKòۦ@ßm±ÍHSJ&€9¨)1_zD¸¦	OùMK‚ÂGC� ¹&N!€Ö¶e|ɹl^„‡º‡›8$5Ë,» ,¢k²À<Á0‰Øæ	Ù
-‘nË+šYxÊ2ãOcÛZ#VÆ–‹žæ*‡—öù°Ï¦Â0¡¨lYúôaÈñÐCBÈ~PœÌ8LÅ5a6Ä´ûYù‘º*˜Ö\ëz…lqzŒ¾ýÿÇhR„o³ š›)(]ðtÍh¿±Fê(ÝY¼TûÅ/h¥bâ5´¶/O]³`ОVÌZ5ëšFs
-bªÅºŠþKÈaiâieúÐùåéÅJÌ€O/L¢sWP•yC·€¢ìÑüþ”XXŽn$ûNŸC›®mF*wgFž¿øÅÓ;†uìiyÆ(Šá¡?èN«_ÀZh13Á´Àá¸ÄžyX`]#§œ¡¸+àX•†ÖÏH­#zn‡ÅçþP)zÚun„“ØZ­ÈL%4ºnÕAzž�Žü3y˜VÌa÷}£/V'¶ð Ï2ÞGEœÌ©t'ˆ<ÆèêžK:Éi`8MÙȇ>0FÈ#’µ—©„ë—¸S±Ó2•zB! °TCµl-Ëc:Tl占b”äPÞáðIÙS;¥¢¡K×ÎœïêNW pw}’ÍR#Õä;À~ºÀ-b;§§}¥3@Â=6]¯Ó¦Ø’Ayà0¦h½)º?›Ï(o^é2ÚRi}l[È=ÏqÄ´ãP41”¨ÐÇ8ó…·žÐé8‡@B‰BÂ8¿Rjp>ÐÞŠÎvÂïPÁ-'•KUþ”ÇL–´Rå€Còa=¤ú¬ËÈr'}ݨkœ§·áŒFp÷Ð6”H‹bI,FÈo¦1‰¼Ærú'"¬Õ¹¸&þ&lI{&Qfú†2a”\L)AÉRہÁQùDX‘‘Û:Ûõv¯ÎaiGGwÞ¶
-öâ/˜ò0$×O0&›#ôH9¦±o(ÐïòäsQƬ÷"šÆòÿMðøþLj¿¬Lêú›Ç7ÐL5
-žy—¼€*Éšâ¿	ÁYºƒ%Çw¾t+55Z·(“)ØÍŠÓBvM»õKâ¸0:$ÕË»Ñ8!0áAbñ°šJÃ#9pB́²½Êü@E(ïC¢u…OØP<|hœ
œ	™sïRùyén’x@¨Šž“fr:„iˆ1—ZÇ®BLnÑ«Âä°rtI-1äxê,ýFÞ 1Sœb'öç1CþòîI¶	YÅå^Â\©UÈüõF;üŒ¿òÂÎâ•=òã6-Tè-½HÀ2G'Í8™’•H¨9­&$+dk?K¬(ˆJ'Êqæj	ÿs`â¸Ôñ£*L9y‚2@�º™¡a•-¾ó*Pýk‹úþvWèú2–Fã·ª§ìŸ¿”0(ÙÚÅû¡è™Øåö—ètTülh‹Ñˆ%q †¤A.§[±ÅÌ_g>9dàêêMõxî,mw•¹첌-{
-Á£Ø3tûw¾á61}­ßLÈð¼w¡f±é¦µîÝÚêGƒé‡ìˆ,h•<?ã‘"@9“?Õê(>ŽÔjZÚZ8‡H¿5¨tó…éãÇÁ”Ùæ‘ɇø@wƒºiª„ôýã
Ku|”AÔIÍgµnûô«)€•´”¥.}88F@Ê*­ÿÊ øtxV«~JêÆÿœUw6A.„‰Œ¸‹0n*‘"è�1-ü¢­5’9•dqüÖ°?�ï5î˜LžôðÎ8«vº&
-ã€|¤ûÉÖ“I4è©$Hã«Ê]Ž¬ëZÝMUj/R-l\w×­OëŒ�åU LQÏ*µ`¤r	}krmVÓ›èk^vÕJÃø¹ÂSÚ''Ãx¯ÙQi_Üá­’d©4(QnËá¼\T½–-œ‹†­VBÒ+
u×xd±FȘW‡¬€`¾q¸¢	ŠNB
-\Øä5ª#3v±Á$ŽO#¾ȧ,Á’”*(w\©¿üÁh;^Ê»ð©ÆªŒš'’NYmLÊ¿ìí”"ÃóêTúRº
Š£CyÕÇ.³è åê>f
®DˆüªkÒ²DÙè‰o—ÐÖ9ð¶øÎ/ã†Îމ׮—=4fQ•Ø€‰ä'k5B$rL•“줁tÐïä‚éI§L½éõÿ?P„!>Mf0¤+‘^˪!Ñ µ�>5Ĩ&y˜¹í_’d‘A”+ÚÕÂ1žœf+Ð#¨X@Ö×—‰ÜÖč´‘㍊Å»S.r;0~RP72Å™|$˜ÿøoªÀ‘V³X§BaÌ?¸²^	b~šþô¡*<…ÈL~»0˜ª$è)ú¡Ý 	Êè„yÐdȼJƒU_ÍÓ$DEËÃË2c±{A!;’öZO	5eþû6¬åÏ	ãîZeéUÿC¾-Z¥Í¢³‹žÖ˜kô\f3\üeî%Jµå3œ+	KEöÀVä”�äÆ“ÉAøp4bsÅœwIï=?…’"ñx¸Ó –×úÑ„-EëÉÆçÿ³Á
-ã
-8Ybß$êߣ:å‰êê‚e)
yYPë‹;¡Ì°ã�bŠédáO)ówûBAe777|ý­*ÿbÔ<AÔê[ùü€ß˜�%	O–þWk^—T+µ±†¦5ß‹„	M,!çܪ…Ïâ õí‚懽è»)ÔÁÄñ5“‰9¶Eÿ¡œÒŠ$1]ú²(Ô¬�­±Ä–õPÚ²©jc3yC¡F¤Q?esîÀŸft¾:×, a¡lGØlÑ:ÍŸkÆ×þÞ`¼õ—˜£ºfÞÕÚîÁ¡Í6c·~ŸºZe£»aÇéq_ý’µ‰A4Âa5õå«ò1à3Ue‘§¾¦ÖÉ«6ž’£‡ƒðjoßVçús¸Xo΃ð{Ž’7y’÷Ã×0ζ_2fÔJNNˆ]ÐǶÐbôV…@ýÇš›5lCAM*�šVÂvøˆSŒØsÀÿ5ŠUg‡VȺMõw¾ÖDŠü¯Ì`è{¼†»‚†¬ÂˆzÞ†ÍÜZsç96’ô*Œ>FT@€áJ‰•ô…ƪ3¡„ææ¤}/ÃËS®a‚ó…èUÕȪŒj1SaB7~Ð&FMs§¯Ïœƒ¬[¹>…+¹ {ø1¿Ys‰Âêý‚È @¼óz(¾¼=!؆Ý73ðÞ‰�Çf‹zŠeÆ(Ã<;oeÁ3_'DÙøZÞóͼs5"b4gèdHC„²™oL†5.þ6Ö:ª5è}9$M‡Q——'$ÂÂ¥9DÛscM	Æ|èõ)lIšE9€Ð…Ÿ#C¾½5LÉJ½`¸ýfK¯ˆ¯%ò<¶G�ì'¹š…ªÙPO®y�‘`¤5¦5:„×k¨¼Ÿ¥'‰äúÜqg÷uuq˜ˆ[,ˆ)µ¿Zb†q|+	×<ÂØo[˜È!Î'´™ƒ„NÒ¨K¥HX…¸Á®™‘Éœ"rÔþÈ„	fŽŽl¿eh¬)(à˜î>{P,e&
×'Á°S7aŽ¡Ê:˜nœpé-Ä…Kzµ Hhw%ɹmÝ|lߝʍȝt»€Že£ãã0q9S_z/L[×P{)ž…x·�¾ì.Æê£{h´õŒLƒÙ·V)kŠÙ®˜Êq€™Êó‘ÁÞ;jz¨@bÒ2ˆQ€`”9~'3ãÈ2¢jõ‰FØÖ
-v“QÓÑèTdMñ@>ܹ÷ PÄNüq‰ ÓÞº¥¥°HÑ–ï³ÖJ‰M¨ÔrN2åQ�9}lÌ€
-’(6’,ÔA–Ú; +Ö"øÚ:«(‰-$VñÙ3x6²ATÂ\™"ªãzœ¨n Ú÷%Ø*bo™„@oÌÇJLB ³qÿIziœTÄN›óê²9Xåæj’º<Š39‰»ò'‘�“›LüR»°B$eY¢ÒÄža€‚+ŽÁ(õŒ©n2uÃCc<bMlò‰!K¢Áê瑽I–zÁÊVøvJJ;,'t3ÖÐFIt$KYéè^VGÜ.Œ¾<ˬAàΘìS'_·öØž…æ˜T­–ÅUÅRà½ë†—ª¨SåÅü]¦oæsy5;m*2ãD.Lå#-T¡eX¹‰bL±a’îåŽ×›çzÉ9^ÈçÏ
-�"É—VÖȆP¹¬.VåîGÀÊ÷iV$:Í­±m5°£æÄÓÞÙfôS'mmŸô	"ìéÕ!F{p7xÍ9Ø{œjfš¯Blµ¸¶Ÿ2›kÊ3Çží)‘.�¾ÎqòIÔ‘|\O’¬Ü@ÙI¹_‡q•xH\§ÆÃ( 2¡*4¬î$$ÞÛÕ4_O¼GJàŽïfº¥*6Â?ipf(l[`\rsÅñ£óê!…¾Ü‰l¿ÅÈ{1ÅË`,•)¢ƒ_Ï’Ø*f£l(àÓä ^}áû‚Ñ%"³ªnçM©O2Ë'°U™Þ){³9°”ÅN[ÚלM®ÉŸ´„éIR`Ää1ð¬ÝßT&ª+™:¥ÿöÁoÿ¢Â	·²E
òoë�‹0×2Ž'!;—%ä‘ÈÞt&
ëÔZL™¤R_iÍ2Ÿ#n/K——ÿ"X”ÅK/^èš(hùû~+†á,q à	škkÎr•$‰ËW ·×†%ѶP¾ª–6õA]Y†³\ç,Ò=ªo˜/¡Îé‡A€B\ß/*Šd$)'­¡ÖúQÇ~ É9ò6×FòÅtöÜ™PT„
-Ĺ2î{Ј%yòÉßGV™P-Çmï i…ìÞš¹SieDÙ€”h#5ëyÖV‰€´¥örÄ*/
-iEè„©ÐÕ&…AÓå­vý‘%<NTï@Vr©iíÃæYU½p+AH{„ðÅ<_ÒÃÎt#ziXŒ#r«õRÂÉ£MÑÒ
-Õ8th€¢aZÊþ¡A>a«%Ë‚¾ƒÄ*wõ¹ `‰‹õBƒ=óUÇf{¬(…IãNq_zh.3fKHÚüf]§NÉòLÔ©éXʍ‘Ÿ=¦zRÛg}퇍�áZéUÛÖŸJˆ"yˆxÁqŠEøSZDºÃX´åú´¦J’N4¸HÖO§V_²X/óbñãÒÅèYmOt)î®rî!)ÌçÚmFL.œP@0ªcàù³grT‡Ãxgƒ�ç=±˜]
-°3A?)zõUaµ0‘@µ z×Åd0Ïw"ŸjZpL_äT_CÅÄ e)~óo�Á«¯Q¢RÈÓN½ü¿x3ÃŽ§ò€|˜T"b, ‰Ð2&
-ßcTš6²ù@1# ˆ,@€-ŠãÜ™#¼’çzÂ| VcXœ“­ðk5ž8ÊW¨ŽúYP!„ž¼ÙàÌ\-û`ñÁ¥ »|˜)<SNæ ßÎd8,Nð) ²Kð,é^n HtžÜì¾µ„N4ùE$	¶è<F1çÆâ~¤ò\·ÐY/©Uqbæ›:I$pªdI{*p­Ýï6rÁ™*®˜Êð÷?ø€1Ý}Ć:ÿÌ’P¯»o䇍 œˆo$6_
-"’áðî"Fë"¹­ÊÒz× ¯AA…˜,DX‘•	¤7œ+T¹1Ü%+”1·�µâRì£+#öØý2iQ½í
-úpðLûY½´•òr¯úÀaH¬ Î;M,¨	 «ÃÇdM[˜ÂìXZêý3Ö£æ~¤3)o¢ö
$Iiõ½ªhœšLû†²p&Ú>2oo¬®ÙD�ù4}„ئ–´=Lg}˜‡š÷ãëÆPiÊ9І«.ˆïx¸×ÓÏpT†sqþõúÕÿÖ2†âyÇ¿a-GuNŽhXH›8uüçO­­i%œ(Ck¶%Ë‹·b9Ïî†÷|©ìB½ˆ(#©½U€ íYt=â¸'`Òƒ ÆÒ>÷»NÔ-£‰'­׿²]ï69A¥0&!Ge!Ê	mÜ¥#<*Lð£U.Ž1à¨=RIª‡2'½)<W1OÕÂ<¼¼mt;Çß›Ìȸ™I
-µTªVmd{Ô£·ÙZ9.ØõŠ”‘y]¥ (¡ò¦PÛ1Ð>Þ`·>²›
-lîõ©Ù¦hh%�˜èâHú^YÈY-aA“‘øx‹ðq¶…ì[Ð'±@L^ q=BÅQ¾ÜGͱ2•Ðï‰ï\¬™KˆÓõo»ŸD9xõxÛ³I
‰¡8,ÐOäºÈ‰¹Cé¬;¥'–å…˜2o™ÁuéPÝp«¸CRÔÌÔËô
-ÉÌéûÄ{œ|®“ë…´pó`¸4…štãvƒÿ–Xªˆ	@Xþ+ŠŽ¬µ6zP?,ãÁœJú®À*´ÄlKh:›M�Ñ°§ÝdCù^Þfh³·DÒ¿á]wÄJ¦ã´ÙãÒ¯ƒ²¦!£÷}7?fYÙƉAº”Ç"SûEîëµ´ièÙÒD2#Õ¥Ñ$=¹³ðçòØä4ˆ:{ÿpÛ¿sšðÇë>
-ÎÅ�ÑirræT׎­;›	�õq³!÷u_ðé¤n&5ҁW×%å7
-ÄÁÄ_´cÄ5ÑâðË÷9ôf5‹£r¯~J­°D¥RÑ5Â甿eƒ„?[™T6Ÿ²Çmf8Oªrž“ô*¹~$QcᆍڏƁ;B¿Ð=®E_MŠ®ÂèhhR¤` >~»<@34®TG™’aì8´Î°vfÔÿö&ÞG[º®Uú”%Hú-XP@ ˜K/ÓÒ›ýÍ@^0í›Ý©Œ'Øfã܍kl—ÊØ´–\™ŽBç ûG]ùüW?s´ÄÌXé(V×…zÁ$Fþ;ž§]ÌHP½{*6ËDècb-7|ŠX€|Žo~mŠôÐÁ¼sÚásiBôÕJ[0{Vµ’Ñå©\=T%ΤCJ͵m9<é?ÇfKþ]ÔÉ’Cy‰“ñ{ö‹®
Püˆ±ÅâƏ뇰G¶^JH ¢@
-\ì“šcå~RôbÊ‚î@mhµVSœè#4œ£xSkÐÈ—ÐÊ~”y‡*æƒqõ6ÿá&g——YÏÁ?“Ågð‹bÜ	Xn!ç$Ÿ8[‘E'(´)‰ýøC7"ÃONh§C3üVÐ,•‘%âÇëä(eR39Iç†H©C̼_YDb‚;s~“L¹¸\úÏedê5èièÎ3þƒÀ”±¥s§•Ñ’9I§’tÐÔrÒôÏô‹‹‚ikX‚Ñó®JÎÁBŸ¢5Fò“Þ¾UÖ°Öu\Þ-öñ*/Usw×üÞ
-¥ìÆb OÄ¿¥mûOÙéÿ¨ƒn<Vøý¢ÓlÀ~ð©=‰—#™� 0~÷î=Š&•²¸ó'€_©Äˆ“‰ec½ÜyO¹4wc‚2ë-Y¶òo×,×ã‘#³’ˆw…©àÅã¿Õ’Å€q#Ö¤ø;+U3À”Å™³“…»±vE£
-Ñ°´~Íi™ l_®
b�®¸L-–1´	�Q\‹E=$Pó£­R¹ÏHààDOኖ�påXòÔ£ÔFé¡Ü²S„çhsSëI$¬×E!ÍTͧÆe
ß|€X ŒøãäéðÎï›�L&qT Ôq†!c`gp$=c @3Ê%K•5ù!–¹›%°›…#ÐfSËN³	8ÎyY	)œê“IÄãíÑšX’p(é|HAûÄÐ+´zN"/ù3O3Z¨é^
-X_Ì5
-oŠ–Ià¦_ȯÄ%òŠp×£c0?¤‚×Üò‘©²7nåúå·:8Î
-y]K§8ÀaÐh‡vôÊæ$.>Üê,1GÓG[ՁxeXŽö“ujÚßz
z¾Ò³Ý˜-6â`¦9Íe„¹º$vñ:ŸÐ]]@—âÂ/yB(zå©ÃŽ
-ôí½ò/	oZÀm'N;=3Ü%)y»ºÎ19¢ðFÞL(»gÔRÀK@; È\'Ç'ó]ç̱…2i¬e‚vu•#qΗ³Zë~1àËÛ5I]9,¶°í† 7J·i)ˆH)j§ý-j´–uô·Õ˜ 	ëO¯Oõ¾Óà/±pŒæ:“±/º‡ç(‹;ÞRBUš7e™dÂIèÔNþRH£?�>X0y8P¿Ær#çb_®®·8i؍Cf`È‘Öai«2Uºy±d= Ã2¬_ÆDb…9±Ê@ê…:q “"ÚŒSp…F¸~«ÚÛ"6TDgªtÓ†Á
-´¸+t‡òÐöHh7>ÒT ´LÒŒ	Ò$ýAÇQ+’ Š@;;¢×÷M°½´ò~o ¤S<:.¥gÀù&Œ`$¶"C¸PbQ,`¾$ä`™½Þ|ʛٹ·W×18õÖ<à…~ü$Ãì+òtÉ
-ƒ>Nø–Û]-m‰­�£e	±B5ñÉPü¿ÇßÚNcxÑq‘E}nÛ›ýñÿðB68¢È5	‹É}‰ŠUfâ<±)ùSbãQ°¦‡¾R¢­±Ukö)LGS*²’F:”Hpƒ%xسRÅ)ÝÂæs¨Äò.Í€ÆRqÁÉWjÊÐG“éãõýiÕËÓ<š5)æ
-/òˆˆ³2`¨Þ²©»æîßìh‘ò§¿6«`눯LüT ¦ÁõŒÅÉ–ªn•Q�üÐYë\„Î;uthšÏ2Ð6WZa²fQ¥°¨r`¹dÚ­1t°Ç-1Ž‘­a§·ì|Ò°¥ÿŸ g0ñÛCüÆðùi‘[[ü^;Ø`FOpb^Å«¡—^nÌÃÅçPmJSr4K*X³‹Ë“	.cönÀnm¸âEõ€ñPéçüŽ‹h”šJ­ëülÕ|–®£˜cšû!	!áZœ–çI>NbáºT†¡pùŠáPÐíu$k[C®%û-QÕ»ªÒQLã¹Ø&Ûìô×ÃB88÷öJòt¨çí¦qÇiÛá¥c™2HŽÅ¡E/'W«^Ÿyñö©RrnÕ¦*p¡aK€#51å=û̺6Ùõj‘Cæ¥#Ü<È
/IÍ‘2 ;Ä‹ `SXèÇÔ™”®$jîïªØjÛgóI\d¯å¥OÚÀ�¢Ý‹Ì<g³¯HEƪê(1HHx¿’u1À¿ä-ÛÐÈ!ôœ1´L¬/<J·/ÄÄÂÐ?»¶p{@Ôeˆh–—CnVrc´ÁþSÙ`Á_O>X°Üú%´›=‚gr�½jž°É{yV¨ËÔ¾PßsJIfõMõ!à<a••~4v,”Ÿ©}h¿‡Û
-LëÂD(þxR½Eèlì€Æ±å„¡F„è°ÖüŠR#L€ÝäôÚ5õD¥ß™ZcS–_K¾ýÀq
-½¢”ðÑËh°bÀ‰v~á³â®ý£GâT‡i�TíÉÆÖ1-HL.=ÿ’@…üs¡)©2‰ÁBÒ5Šþ'Ó½!ÜÒú¸—ÈL”ÖþŠ}Á€X&ªþ9‰‘ë	ÚÕJè«iOÕË#o‘B¸‡°y:�ådÏ!$AÜ	ñˆ[uæE{DÞPcgCš{LÕ_E<‘ùqu˜}–ÌFÅ¿¾˜v–ÇÝÜR*eU±¹Y[l]¼ìjH„*owèa$¨D-¨”Á·-
-‡SÞùcÇ€Ipµõ¡(r$[áëÁLS”q1Ãll	nPîÔ˜øp3°9t]tø:;š4	¢
„J•Áèà\zÖ¿-#”ɇ]·8Yã=ù)¾ÄgÂÓ3"
-�5xü/Ÿ+/í\
-?8Q¤9È1-”Þ¬<ÊZãmF~âð›Ð.¥Ð¬h³46Û¶•JGª—Þ>]IˆN§F¨Øân
˜1D“aâ6-4¹™KXÕ8)©¼„Û>8	¯„)qô@ŒÞ™ˆçÀPÈ’R—2¸GÑ”´I8C@ó¸hW	ˆÒT¾Q];K<E§’v“’Çørž#˜NÁ*…ÒÙµeRˆ:„@Îì²8¢¿¤]1:ÌÚ85G™"”´~ÐòU8_Û4#´¸÷ã¡jŽj Õq¼A% ,ñ}!¦8ö?,5'\2ÒañS׍MdK)´\\µ2.¾å:Gÿý‘¨ÐAë¨aûtI¬#è�ÑEé|ÜÏИ+Ûh\þˆ•1Q†á¡ï=Û‡ù«<èD|vL «%nÛŸ´ë²L Z"úR_ D Šâ„“0¤sC@ªµ_À7Íy¯€P:úYdœ%¬ÑLj%Eâéòô<°[súž†RNèÃ94ÂóùŸÄï¯
¨ Ê/©co<[)ÉÔ$ö*¯~£ªá•JQjÛ"Æœ&>«Ã=_õ1a²À¾Åð•—ñ–	ü‰È±@ÚÎx¢ZçƒÒu rd¶`_1±T¨*†KêbÕãÕò{
-–p-n—•+êµØW9?¢ä×é.¡W*mŸ*n„Í÷Ô¤'Ó‘Ô.CAèCd’­Ã½D€C1‡n*’k]F‚•
Ü´Ol7iò�ê% cXkÔº%i(¯ÎµÚ=Är$DyãU6òʉ;Ñc†aŽþ
k|¨Gr:âž9£mm•ÒWš‘´^ސÙX¹Æe¤UAíŽDžQ·_«èt¢ýj´¹$Uh½¢‘”å›4’èañ¸»|	a
üeB´„¾óêð¡ ÓCUMÒµñh¨Þƒ8—û­wÇƤiiâÆp­`¤Œêgî‘6ρÝ#‘Mtʍ”?<×8W€Üê¦^ê%xpf1ìSq
iX¥YÈZðKT6
/5Qt‡ŸšÎ¦£ÕhEzp)HçJè äXC‘ˆΐR[S}
qœT/ùE†:E,´2P!äZÓN€Ä‚–Táý¶sÕÓ=4Ì阃RNðÁÒÈS ‹wÐèy#dïý8G6<`ì
3Ã…YˤM�‹Ä=9fts4¬qÎ9 xì…þ�0Å¡ÃaEÐgŒE7ˆ½Ó [ëÃ3‰n(™)* œlŸ<–Á`öT±&v­¹}™ÀÚåOu™×(ªÄ!`™4ðHA”XOÁþ„’еƒŠ¨>!ð	ð+Ò†€5!¼
-´0`!WB4€—�â`1@à
�¹X�€Ì@Ð( à8	 L@M@÷æ9zîOk¿Uð¯áý;<÷?¹^¯ñLJ¿ÏïœæìóòÝÃÏœrãî s_¶üJä×B¼<ñû΍Iì͵}Àès´ÿ­4yÜWMmQjݯ6®Àç%¸ÃŒ¸ÎŒñЈýýc¶¹FÝ(6nÆñ]:œ—?w¢ r4'}p$¦ã«j.¶cb%¦,·¶ü«Ù[P!C‡Î´ˆLDî$¨WÉÈrbG|TX!ÕbFT#åVL.4ƒCp<$Ä*YÁ& ¶"¥Ä˜ªÐˆªT€©¤€©@€ªHÑS±‚¦"ÅJEŠ”#*F Tl8¨ÀaQ ¡` À¢¿azÁŠî‚Ó+f�V³ñZoÅf¿†x*èìUØª¿±TçB§ÎEJ|
-’7ê*%ÔT‰¨¨ãQ6¡ËEA¶Š€­ò°W²º¹Õº®¨Êª¢z¾‡jú§èŸ¾4}ãŸîLßnfû:—ëþ?®xê´¢ª¶Šª>¦Xj•!ªI‚¨Ö
-¬X*¬^ªžv©éÚ¥Wj’ª:v¨¥Ú¡çjƒÜªìn«5º«†ª¦Zªgj©Yš¤¶jØ‘V->ø"^Ì¡²Öĵ²+J£�!:¸¾<T4»âõEkÕ¯T"µPÕ|Ö«Ôµ\¥*â)TAJ¢
-UN¨Ju@Òª_hUô…_ÕäuX“jÃUäÚ¯Ur2«I•XKªº]URꨗT ]PAu~
-«ÎU\²ªÝ•VЪµ¤ýŸ'íYjû$GØÁþõè¯#ýoë`ÕX†«X5ZQªÉ‹V,Z±Õ{«Ðµ]ªÖ%V1*Œª*¨`J q*û‰W¸:¹ÁÕ­¨ukƒ«î^ªæ…W¶ÀÕ¯­5g«
XpjŒ€ª+ýPïê„¿Tú¾Ÿ«Áÿ¹ûoñúÕl’™Ùà”Äp¾ý‹ˆ+£M* 2$ä;‚pú·@&–¬8A2$J"0$N���`�’-3a…ÝÍÖp8Ì‚¡àÐYú‚¢Šˆ#Uâ@X'`°lŽÚP)û¥âªo‘üùº»n‚+�¸lñxÑЇP;ÝXxtm?49@«R;ðS›pèŽÊÛxêêBkqÂ’¯L«^s;˜$<æË71^Ó·%’�Øí'U7—ZHíê叆”�b»¬Ãá÷õÌšÖë-`mußǯȜè}…ËÇÀF,
-Ž¾½\šW‹×G®GveFoB^qezñ‡‰.¥J¸Ì-?7øÞÑg¤.ôgÑ2áù“3VãŒç.‡¿Ã„ˆÎ �L®Ú¯ ˜JåÑ*�ÊñßÒŽK‘”JAD
!¸$<ßÀbÞftÙÄ!ŠÏ”&¢é
ßñ“%^º>ʯ�ù	€�£dId‡×rúRZZë$=†	èbtÒóÅȨÔ΋\rCA¼t_X¼Ö'.Äz´bf0^ûf¥¦ „£žDVè¯7‚6Ž7f/¦>/ˆI¬“ÃW+ü	A¾˜'6•N¡Aڹ‚²g"˜•	täêT¨úÒ¹DLêød@C[1ÉåÎMÌ.yæžXÁ-'G<­côŠØGìʶ°Dѐ٠aÍÀe+º€¿‚“‚„ûGGN{^lY³—§35;!kv0å¸j=Óô˜f±ãðBæ¼ïwóf$îŠüAMûB=>LïB_‰|Ö¾Eúäg\«MÆ—üMù¾ï!P×S–¶ˆ=*÷yˆU؆û<úf…¯)¡¸kuTf
-W,þPG»”y½fSýÕ•?wYV¹åk^æÝšæ†jåæºÒáö®k¥xÿ·ˆü¥¼AŠÌÀ=•pTµÇR{(Ìá×&®{A½—�·„KšåÇn›Á¯Ôë î­Ñ¢¿LDz30 ü¹XèÌßGÁ£Ì|á³M÷còùèàLª_Kÿ
–VMe2jÏí$än$$y’=™Fó·	–?Ù!e!•t•t(œ¯@ÑC[Ra£l‚¡nž’O\؁úBxnЙKÜh…™·:¤Á¼›0I²„b×=ÙäÔÌÑýgt1cr&”B«
ƒ«ªÝø¼tU�Xä³UWñxKkézcáœ[	àBiåófÉBÊŸaðý4ñéÉÐÒÄÒ¹‹ãHFãÒþš»7F€¸‚ƒŠ2@µÚWÆHÒ±WXƒ-Ú–êÞ¸¼P™”͵zè…Qæ�P¡$p+A)+‘K>\Ï	
ü;”9BâGºDx•jØ*–º˜eË™ÂäƒÂN-ÈbË
„^€I®âêÕÂNÛ¶gW`À®“Ž—)˜N
-\Ú$¯x+ç.¥ÁŒ0Ñ›¤¢«2ˆ‚Q[ÌS†Cû[gX
%ŒàÍ|ž;›dDsƒ­j¸|[!Ò8d·”„…&ù§y~ï:¡<ðÎÅÄ9ý\H¼Þ�—@0wßAT)C|%33¢H>0ræÐ=è161•P.*¿y©4[Ŧkñ¿D˜4>‰0ؘ¥ùB‘láåab
ƒÁ"8>ÚOƒˆ'ò'FdAŠ­7ÅbÁ²ÃmInv>„Ãä¬Ï)FZS2y‘bçÉ2j/3Ö(ùæ¢Ñ7¾FĬ$GÑ52	¼f›·(ŒÎŽ94ÊIµ%*2˲"vÎX-B¬xp:íÊkԝò™¬Ú\”„Ò ¾Ñ%²(Œ±ºÒ"@x—/gžF	»§ÅŽT‘ì3
-ñ³¤)¤|;oXïï9�R(o°ágŽœP©¨Q*:¬î™ •©p•æJfuvXص©!œRzϵ™Q#A–™C•q‰i¼­!P¤aY¡2]b3ÃÍE<y Ø•BP¨3&Q‡6Fꓵ÷‹B':q™âb8*�^`šJ¦ãbZ+�ÏE4Ò‘û‡ÞnÉ™4ƒ`¾Ô{²ÖV"$©½4ŒÂ°N"APšÇO*DÐ5VÍ°ˆ½ˆÉ©Ÿ
-˜>•œ¼ê6°PÜHu~¥sFxRÈô÷§È§$ÜHìT¶Š“•`w,ò^[4‡:)6l~s þ9_†„2¿¤ÿÃ!Œí‰.¯¨ÃÀ	g ?i)ehÎ|Ga
#‹iÝejDñš¨dAo`–…	9$÷S©æ)LE¨v�òƒ“B‰²ú‚±,/µèÏeò·PÊa
-Ì窀J‚ÊëIØÍ??Qg*’[9ÆÄ9îêÿ‚®{	¢²•Ó¦3Ê{ƒC×Kñ%:ÃàGíJÙõù…xI|ѳ`©ˆNŒeL輺œt½r¨6ÓºÛ-í«�\¤¤jpþ¹þú-ãQ áƬSŽl|Àȃ·6³š2˜Ê«™Öy¢8£�ù_$*(Ÿ#€œÐ+[Œ£6ðí V#ëi²S7Œ…²u>Äz&¦Îšq¶™…%]üPÑ€6ö`žØFþób"2'©-‡H‡ú¶Q{
-¨¿/ÏWkïîcð$ëú¬‡/sت°yçn
ˆŠÈúüâ[@ÆÖ7 w„î 0µa×ÀV˜GΙ٠·ƒëÖ}¯'	ÒC)Ñ
-à�xÃU"!9¤¾[ßϳëˆàP(pæ—±ˆæòCZ,*ÌBFÏ‚È!ns#P—�À©#È¢Þ¨>|Eˆ+ßëZÞSn¦ËdMOH2ÀƒµËLÏ•ú7æZCCˆßS_#¬N‰K¦2Ûæò èD›<sT)Ĩ
-xy+ëYD–ÅÕ«ÔKùÃjzoý‘ZÝQö$Š¹:°¶À<X:deþA"¾Hؐc£Á&¸äæÿÏá#¦ÁA9FÜUÈznØi#|ìF	$?à la_¸X.-´H-ï‹ÀÖh¦“dwqVbGÿJA‘:×Ë]­åO%<åxÖÂŒ[œ´çè†x2«…ÚÕO³ŒæWf¥hÖ3’øöõŠ’HvÕÂtB×äxÞä%
-%d"»ê)i;oîåñ!“µ`]1É#E,"¤¢˜¡÷­‚°ºÐYxÁú…°)f¦¾‘”'Â4R2|›‰#*6„‘.i‘TGh—Z€Ð£†Ã—Ýg+vrî*•zSÿø=Ž^fà5XNv‰8
-*ï8Þd3<‘œ8Å(m�'&Òæpwº‘R�€
-–
-¼�Ù;‚yþ•±›a#y—¦‹H€rY;fÍö,ˆéeœGâyÒ¥ƒD¬À¢;IÇÍô˜Gêq*‡D´FII©"HXðW„½áç@²#çΞB™ZïIØ)MÄ9ƒRb5G˜33,¡1ñú,Š;ò¶Òðz
-\פ+@½1¸˜ô•´«s`Kø*}?t¢ŒêŸ›��ÀÙšš7QJ¾¶‚�„°ŠÓ-&©[TÏÀwzDÞµ7Ü +i½
-ÞÁS+{\=™í靻­Õp&õ«|o°V&Á°/‘ʉÔ'Àë*ÜĸúgÇu~BÅMäBÄóOûyŠ@…Gߧ`n‰…
-߈…J	s5…BÜ›ôóù87Jš„i@v¹ˆ¯Œ}uí\Ô&ý‡r<\XX†‚†äº2×®o›'±Íï
-7XäèŒv/.Y@~´Â⯈u³aKÉ5¤´€mÓú= Ò=æÓ{¢ÎñÜÎñÕÎh|/#<M–ÈÌX†ÄÃEmŒ´-1²¨S&ŽÁ“AÐG€k*ÖÎPÌ…¬ÐÇÁ‚Ï—dŽ²B¡Xg7PÞóÖc´X,K7'Èèq¥7ålídý%‰,ŒµdôPÆþ¨Câžc!Äl2§ËXº¦F*K±Èò7͹ŠtÄÌ#Å{Úý™CÄu¥˜â¨çtBDI4Eš‹À:Å9&ú‚@§çú·ÑgìÛ´55}ÏP±Y
-⵺‚]ƒ‰.üÅø
-w¢Ë´VâQ¦çŒIMãIùXr^û˜AåÔBÊ+ ±é€DÔòÂRJ&^ºŽ@‰èNdêê0Š3U‚ !
¬Z7ØJå¶g9¢“fÐ ™ÎÊ5ùsÌÝ?ä!ÌÉÑÂ"X·Ûl1¯ÔfÍŽ[VÊ]"^”¦"£g{®=eè•9æ²ëh*Xpd' ð¥"Ž1®Ñø!~”3~Ø@Ãׇ¤/–™<ox!V�Þ,'Bü.뚢å	2lzp#/CÐì½O‹Èf—N¨â^VŽÄ³ÎuÍâÁ„ëLùf_­¶kSd–W>^ôH1‹´°©d)ýº‚&II]£uÛ2æ0è‘.ŸPU¹V£Yžzs¦F;·&np*Z—í­8PN`DœÉ@Ü?#x…ç"pLÙB^Ã{¨ÜëýZ-‚ED]†vÕ¢ƒ¾(Ðœ<dÞÕœ
%X%Vy<;r\¹a½Á®DºZ½ÔØ*©ž@ãÀ¦O‹çH7,C¬Hx0¤oם¬ÈtJvŸÑÄ¡Ìâ	v,afÏxÌÓDf,p_YZ4‰ue\s‚Hænu<n}ÁUÐìtE„Qœl¼ö¢9¢H&N›RÖ`ï'在†Ò[­œúâd(èÑ9J„pþ2é`ÎLRÅ	+îÁK¸fo$üXÃﳉ-n@f�ocÞ‹ÆÍN-´AWK]™,È‚]ßÒe*#ºd­Ñ=“3˜·Kg/‰4-™2³�P|@G‘š¸bbL5`´´)¬ß·æ¾±ð5	iQÞGê<v6H\†Ê¢¢KŸ–¿š1ñ&�äk'áµðpÝhèžAF¡¶
-tÆQæÄŽ,ØaÁRg*eD·éêS{Ï›�1…qøõ¥U„ŒÈi£sQ°¬�Á,Ä’¡zŠ^é›#¢Œ)ăÒ˜j­º×t242X€Ì™ŸªH»0Æ„@‚]¼^,[cEœpª™h<ª<HgJ(=@ï$r¹.�!­zGTú@s¶‚é/F3j{Ô-ëlã@bröÈÁåçÍ"=ÿÊý«ë?’3üîMkÜ'~îÚ·˳úJõ™¨+„$«oŒjµÀs#FµN–°ô;
Ø âR+íÂh#åObœ¹ø.¨¾¢4xTìáýðِ ³–ÄÜ	ˆü0–wõ@-¨	¸bèaGe¨CŸÄD=âá{‰²&Ä£z•Ç…Ÿ“@Jh~³#f4’v!D¿|Y
-DÙôpKÒŠŽž“³†ìeŒ[ê6^ŒH&;
-{¶ƒä�B"2‚±i˜<‰qQÕC?úQg
-‡ËØʈ(÷¯"ÖŽÑ¥`7^Á0,Oü­€æJ n£
ÿÔÌOƒ
-düü|÷R‰ïÙ§s†kðøÂÁùÖ NÓÏ•¡ávN–ƒ
- X‰±}$&ùóÙ)r`º2¨�­
ÁÈþœk½…ˆì‡È‰€ô!8r\»¾;n§E6ejO/,uqÊ4-Iථ¥Fd¬ŽgÔ8E
-€ŠZè/c¶jÝcG©â­›8úý
-¡ÛCb=B­›(tD1Ù;¤SoÌòr>ä`
 ¼Ò1ú îCm+KJÈ]ð
Í5í«ØÕ]½’ÒMýi¹
ãÓhõ0jxy¾Û›HyºÔ:ÂT…ò¡AåãßïãuacÆ)y´Ž‘€ìs’ãoܘ¼aËSG)$Ùõ­uxù·÷º½"³«mTq�v’³ÏâŽN@[U·j4è3ùÔY
-n1i
-{N/ÊTj5ÍfÏø–§c絋Xµ£̽å99@06Œ¡¼—|æñ=¿RâˆùðŸ	¸Ø<É
vælbÒ2ä8Ýo†à
ßæQþ…@»F;Dû:løýÛ�’,ecd·-¬ÀB™lÀ
-ò‰üÌômåñ—çˆX´LL=#¹…žˆÀ+ÞY€$Â}²n£®{éñ¨¸)pñBSБå4¥†ïJw.d«DÛÔPÝï#Ô|”%ã�JÛp+ÂTøí UYïï4°6?Ÿô…qj,ä¹s噦JT`Jb L(7ºq‰ yùKÁ®&M³¹¬Â~
-é]g7óÆW§Õà<„U‚y3ÃKC
m±¢'�*àª	ÐãÃQøÆŒdkFÙý‚Dvö™JtÁ¾S„¨0L…þ‹di²SÀB:Ag£Çïå‡RXY–»Â¢µ^ƒ‚¼@™K
-	S$jˆ-ƒW'¿9ƒ#Z¹K¢¼ÌÔç…I •eh6§Gt™ƒAq§~Þ3ùÍ9•¶/BH!Óþ¡©I[ňcã$q·†àÔõgFd…è “§ÐuMc÷‹¡âHç·æÉ´»0™ïT2Fm„Œ¬ž¼¨õ`ß6k{ùºÑ:<šnã¯kÄdDÃÍdâFÞ
qKMCOídFß…>ê–E8E¥²r®Ýtšy.¼G„çx¡ù›B5Cf§‡¦øír!ù»h{øêb#ÊzpZÓِzNd²,ŠgMYýŠ••­–}—)í$¨O;ú¼¶-À µyq}fq7¡³šÖµHS¬„öÍ1ý™R‘&ñ~ZïõO(劼à]4žfœFN¢ƒØHPg6µyºúÎ�þ1Õà–”’K¬½*†R[A•1¤à““¥„APÈ”«ñSçæ$Ã,	A'£bCp´³¡	éPæ4‘>Y!OvË^\s(r¿ÂЊˆÛ¨n™
p)
-pi”5€UÀY¨ZÍDótYˆ:è1èŽìQ«–šq7/Rk
-æ@"B¥?А†ïÓo¬êx4	Ùs(Jî(qoc^EcÑ¢4,ˆœ˜Ð“mXh¸®íˆ(ób‡Ø Éiåm“E
±e& 5C‰–1©Ây¡™vÎI ZÃ&°ye‚‘Q`oôvYÔÝIHÞ¸XùBë{Π	0ª\Ï#A§4$æÿÄ8ЃΨÍã¥µZh²N}hØ©ì%P»}@ï
à
-¥?ú5dŠ‰1¦9ˆ.PÅ jcoìÀŽÌÅWHÂW	G‘°˜Ç!N¤4K�©šèñ)fÓ>¿-÷tìnôY¸4Ë*Ùãc¨NÃ	ØaöÖ‡D'à¹&_0éM& ^Ú˜Äb-Â9€¨?e±½n¦×‘Þ·
„ïò‚‡¥E,¯d!™E|KOPÐ œæ:êY‚jÙ­O{¬Cfm!X„í
w¼º2\~•€¶h&Þ;ꍝgPÒ²x¡z»_™9ÓuDy¹"ÄÆÌH„Ê
-ey|Ê '°Ä[qªr|#äšRr²_šüŠ•¶ª¦ÍkðR=y8˜íX]°8w鎷¨=Q-Ó×Í^fê6,J”E’C•0 GÔ/I�”Ñ‚0–4åØÄ€úöc�9]�‘“"…9ÄPŽ*ÂðR#ˆLÉ»Xz¢À43„8É/´ß¹zeF$1ª_ÀùIVÄÿFÖ2QÉX).˜TäcfgWÒóùU½†êøv!²¸!ÍÀ
Ëí6ÈB"&àÅžgt…9êœh£ ´¶dEpj-ہʁ+ ~™^FãìsR%a4í/}0�𤛡–ˆQ'”`áEæµÁnɸÛÙ•tÕ±€ÌW}9
Õ_¤2PS0ÔžÇä¤ì!%RpýBñ	©q	<—$ ‰Âñ¨«"ñÑŠm|¸ªBpZ*d£õÄŸ_~Ö/à“â`
-ä»è%¤7y+M"úòªó¨ŽfflÝn©¹“Y½lÞ SyaÆUä¹’Í+NPZ¿@_ہŸ£«;¨ê÷úDT¤ù�ÌYG:I•ÝòD"i¡	žæ+Ø9À·IL{Ћ>ò“Aô°D½4EøÇE“q	W’J“eÑE|¤96p¿â¤X"HËMI'$Û|°K'<¸®t†N{I7i`…¥«<Jøo‘-¶ Ÿ 1"nHà‡Æ=CaùiéÇ/	ƒhƒš2mÞÊÄšP8½¬S-'¼¥»lý˜£p{ávàu˜63Hß:}{rN˜ˆ2,3/Åú}?�Ä_x‡žŸðqKx?¡ONr##œäl@Ûµ`>¯ÍöìFqÖB?ÓÀY‰fš"%0q?F=ÈÌO*„‡Ã¦:Cx*㺌hXÔ ™~Uó„»ÄŒ>žà‚
\ No newline at end of file
+ŸN��AM��������������������LP����������������������',������������������(�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s����R�e�g�u�l�a�r���x�V�e�r�s�i�o�n� �1�.�0�0�9�;�P�S� �0�0�1�.�0�0�9�;�h�o�t�c�o�n�v� �1�.�0�.�7�0�;�m�a�k�e�o�t�f�.�l�i�b�2�.�5�.�5�8�3�2�9���8�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s� �R�e�g�u�l�a�r�����BSGP�����������������©Ü�M�M�FîÍéŒÏÒÙ£(uÊŒ<0DãB/X
ïNïˆ�CCê^ÇrmR2skÉËPJ"5+–gléW*iÕW–/Eî‘œÓ4#¬Ô£U¦~²f‰‘UDÜĹ÷ˆ«±àJ·1á/!þþ/žºÊsª7’“kŠ•”(ºˆ¡hNøé8oíd$yqŽ¹1³âÖ9ƒ@-‰‚HG’ôµS"øFjôØ 6C3”¤&ž‡ÁøªW51ÁÓÜ×BŸ¯aËêQaR†U/õ¶{*¿‚Ëï�‚=–@dôøh$¡1ÉTÛ—nc+c’ÞA¡§¼	•ZÉ€¤@QÑc­a‡ÕÞl÷2>ÊK°Èmó' “ËC‡HMĬfB‰X,¾YòÂp¨e¢
+UøØ*Ò”zÿ
+m‚ËËiO1nEÆ.›„ä
hx!aC
+XTÚV¢Å©Â‹–—éR¥š%¥|Iä HðÅÕPƒ5"Åb’N²µ=âøƒrÙ/_åRŒ›”™_à%Ò„uzÉéÒ˜Ö5’2Ä¡ÒãPÚ)žÔþžÆÃFƒ7S‹q„FÀ{náia·¸@DÐsˆ;š}9⬥?ź‘§ÂR{¦Tkí;޵ǜ×U\NžZø›Q-»^Ôs7òf0˜ÊÆS3AÜ
_n`W7Pp˜»ôài«í³!ðgØ/à_p»ÁÒZ€-=Ã×¥~WZ#/á4 KF�`´ »ŒzßÒ0Û|	D‚ѵ�ì�‚&däI‰´ŽüÏÁ;·Mì”{'¶om†”m¢I!wi9|H:§Û§À»ç÷Êþ¾{û~ö¹ýqº¸©Oøåôî© ú›,˜ ‚L]&„J0ñ•Ù9/í9&ÌYøè“°{;÷ú'À3`’e�@vH„yDZ$º�„3ËˆDx28ƒW€ Cx5xw‚B`£$C$'ãÊEl…y Õh¿ëÔ€
DJ
+$(p½îQA”A܉A–@'Ç$
hpÊ0ÎV0 `ºs¾ªeÒ$É4$"t2=f´˜4„A„{Tk–0|rH¤öÄУï`L&±´sÔh¦]”§A<£¡‹²`R´'£•!ƒ‹1N¦;£_Št3Û#  âòëúØêVãê*veÑF`E O$Ž{)ÙW=p:®ÞÖF`Š¾2ÆÄ2Ú“CëÁŒÒ^×.Êć˜¡ø–øGþ<<?¢éç~zк¢©å¥>û.pçNe2ê‹ïÖ´ºÞ+YìsÛl:ÂÃ˼ïµÜ«u5©¦ÞîÐtÀu•^8¾Ì6èóÈ„TmyðQÉ%þu~ôòš%~1rÒ˜aýwßš^ù_©Z£Za¢ƒ²0!Ù荡·úNö`¥.Ž
uqÀ±çêYB¥\™¨ó…„ÊᨀÔê…[eð‹îîþ:@ êJ'Eہ,¯3ubj@p¨ÁÆäð´f¨Éßóîµ·eW9(	óºå ´Þ…‰³æ=‹l”G¦à7gj âSƒM6Æ° ô0ƒÿ9ò§–OË‘¨üíl§®B¼aªÝò¯ ƒ<¦çžÇBÕ™(VRAp¡fù^°ú¯+g9 qÓݹŠMÆt]»ØªpëE•r@]‡@ó©VŸkV¥
+uêädé^ÑX å–—R@?EÕöY2ô¨˜Éï]#àǼš4ÀJÞåKöÁäÖ'ÃÁ¾d²âPC|mãmånä#¾‚$+48u'…çe&û¿€[n[LáÈù’ž±%{BCDÚL:^! ‹‚ÓbÆ™:&Éÿˆî‚g3“-3Ðøu´è­ÇæÐð¹ƒb
iLZéÚ‚W‚FSÉäIdÍñ¡6.‘k5Pî„l7ž7üUz’T:NýN¡‘—.ý"€ªåü)‰Å—ì’['ß|U"Aƒ€³—‚I•Ûv©wÐÛØpë™í­t¹dk‚ˆž9Ø›Šå««Í9�n¨D‹mq¹—7I|6›Kbcƒ]¶Mô“©²ÄÎ÷—è¶BA€BøȪ�_ôJºTÙüq Ð 6@—§„¸F—‡ƒžhd`G®Tëñ·:MÅ7'à…L,éIh—ÆFP	»Ê~j�½ŠŒíÄ¬$¡„ Ä3™hAÝä�’-SŒ^ûÚ†…Ðä-%qeÏìë~ÀÆQq«§¬ln"i¾ž&‘æÑQe?FlKï¨"úAsÀ(Ý3Y;"¡LžÚÔe€tå'ÄRz<MW!¬ßSŠ3$rZ:ˆ’b¥-^Ç„/ƒ$Qý·qõJB'WdáGAO³¨Êã`.Í(	ßž±o¤3öB0øÌÊÉ‘ø1å Ìp(®Äí(*–oõ^ÉǪk“†J`vñŒâ±[‘‹¡C|9œ=ðÙåé#„œAöÂQ˜‰ã# ¢òÉ7;.]L:î¿Äϸc®ç€ÐdŸÂêi€ˆEsr¯¡âó6?æ}¯†eÇ@H-š�b»…ÑÆ–C¶1;®”™è.
�v.±É¾$`T‘ùöÂüù JW¼ÄÜÙ%BËZ¯I04ÄÙøÆ^:kU,èöC‰^êWVF©ÿ¥Ú`£F¬b‘¾(ñOÙÊO©È2<Åß@ÔX™u‘�ðg~ÖÉ‘ÎW št‘&1\ô1§LŒ:φ„"‡!‘P¶Æ¢Ãè3/ØþÔ^¤øÇ°qˆw`IA¼äD
+˜)°q£CÐfâ€ÑO“× ±é0õ2Y29®3N°‰fãpà„¨‰é\�˜CÐÃÆahö÷&°6åpË`âځz³g‚B
+hRf­�ž­];]Ì#pw_t(›pq꿏ٷ,ÏÎíbdk‹R‰ÕBŽËèÚT?Ùì2¡Œ—À2¯cåF„y2˜™%¬ÍÏCÏnÁ9 ÐŒ…0›ñÜ÷9E&#×l’T__ÀSлg¶)eh/Ú·+÷#:FGot÷k5Gbr;CbË´Ü:ÄÊÒ#½¼Éœ	&�Õã�QC ñwÿ’…™mxlN‡«qˆª€éPÇ´)͐3f-v5K‰¸¨hý·0A×›¢§Ðj»nSp¬	ÿœ^HªÐG·FŠÀfÝ�¾ó‚HŽ	 "%[Ñ»‰ßÍ @�Ûèp ÉaÁ¦Î±�ì$$œÍ‚Å*âÂ_Ü\Àï@>Mœª10¨{=æ÷)ž€³K %$C
+Âø‘9ŠMðö¼ë¼4c	ê€EotjÍÂV§GDŽ)lñ8“¯,˜\wÀ¥à!�%$¿×3tÉ		TBz’žÒ´	iUJÒÝ[¢Çxgd„Brï$Å!eqˆ’"J>à£	)\~¡‚Š‰3(^
â R€8#>Öb›äH€âG'7_fÓ«cκtD�oAA߃†(q™B<ý`Ç­`VˆüøéΫ”©Ö˜Â*úbÞÏu‹P­4v@—+•Ê.’îQåÔ¥$V‚¡•í@C0
+íR¢ÓܐP[‘z:X¦H#eäÁòs >?úEÈWO>@IØ$|s¬žiâ
+ES¥²)0AŒ?£9•ab,¶@KšñÌ©o&îþüˆ¬Q´%¬ÏžLu+›
+Â+H|ÌƐ?´NKÌ4ŒÆ’ÓCnPtè³
'OTòœÒ.j5àÄ´8ÈÜv¶wÖœ«I¥&•+ß`¼ŠyScaO[#¡g°§Q§œ€¸Údª[îK½I矗`ôÄŒLPýÓ¸	#°Áœ½ ©)2Ò7aTƒäëi@c\ސ‘îÂâÈ0nêC»pòߖ運4͵Žxö*ñËÐR”zÕYâ„b‡ÀúÛT[\úkU™vìHʈÜq’p঄IÂíIëÅ—)‹bB
	X”PºN´…štzí	2
Iæ==¤ ¦³ˆý¨Ã;}†bŠœàqþÓjiÞ†§a²#"	¬Ÿ>1¼‚°1äA›£p1ÖíÝP‚§OÇèO—ux÷Qôù°¹Î
+Fϲ(úhÝ„©O'MDxÊLíK$ȵœhæ&
ù‹¦Ð�1ŒïÄ4››Si ÜãrHJ’P°t�DMË;rMã‚+”ö—
+*–àŸíØ—5u2$ªf3’K ß<ùP²LçrÑc‹I)˜Öå^ëda>
+%Åàѳb(Ÿú–@,‘2f,~"¦7ÛR;®EÑŽ;¬­”HXå(ú¹Ÿ4Š2ZäÝ'�TªÛ¿ö‹„”½2J+ÿ^!#oŽ„›”Y~4Ø-׃òGW*ð!ßÃA•0&8€fä{`¼½øàWö=’DP8’'ÿ= ÖR¦ g©}ôiP>“Ê#¹Ëå¹4ÃÒEÐBRY®Æ^4eóý‚§N8¸V,[B‹†ĨîD#X†ø]²,Öèâ«LBsNC>
+¢íoÍê^x¨ì§
+ ÷•újCì.4ÀYa‰_{e¦A2=rŽðØ+�‰­´Ö9PO»A!!
+×}´YÊPJe„—çGnš±%xü1¬/}RgHØšaŽ^3-Š© ‹5
+¶|‹qS§ÐðaWK{1al`IÀ1Ó™ÆQé¾ëf_yyCZ)ÄL3X±]W6@DM™Tø<.„«uëGÎKŒì8ÙDsôÚбWæ‘r…Ý\ß7Z\ÕËÿòVÓ"I¦¢ŒõS¡§®dµ‰>CŽ¦ÈUjßÉežÉÈÓD	®3MÇtWcP﯆–òÓ‰6#3Qךnቩ…°J\º¡Ã7ž#磱`Ø€Këë¤ ©×lV6&ÓTŽ’	Þ~îÚl.’¾¡ <˜˜BP
+£*´!zRZÄäeÑ™»¾¾Ù·T±#£CéLH±¬ÈªWÅ)ÚD›†÷“p®YU#ÉÊ51{WJ€Ž¤4^Äf³Ì¼Z°öÌÑy6–Ó‘T2™dÎ4H=êB„Ҋɬ}œ&݃êÂ,aPçv+:2æ~òÁ*0¼°¢ˆd¦É“ÂõÖƒd	‚øáË!"A+‰r�Hn¡ÇàsAäÁÈÚ—U
€ýø¤b H“ÛN6þ$.ÐlÀ};½@£¡âiKà \¬Ò‚:v‰QEÇ�:,|ýªQ  Y0|Ç%Ö@í° ܁äqcçÓÑdqh¯«è«¹vÜCÍGV†°©¸¯-(шm…’1»®âq89KF–Öä
+"2±ò}RrzóŽ,j^¥ÀqË\…Ý–#pƒ»+õ`flš³½â:k´t–5E„OaIÃJ¬P
@ps­E™j1ä4;6öô/aHÎ.¼ÏÓ°T�X¤p“L‹¸ÄL8¤½Fç„Üši¨lí1–²YØŠ8É
%!/Áù{­¨ÒÅñ éœ‹ÙåÆXœ€ºbˆ•½…�NÉÂxp»ºäPWê½ÛíèÄcI9g²*þº¿îƒ¹œ%:Ö»LËÞuŠ‚CAOÂŒ­™%¬/Å“´(Y¢³^ï? Þã&I'ˆÈuh[x‹´–Qô$ÇzҵŽø‚	ß³ž‚(=V×€Ÿê
¾mð­ÅU)»ílΠΒ¾Ìiœ•d㦈™¨½~f¦ùjGíµÖR{D€%>®¥@”…”6‚¥¤1‚œ`Æ!Î ` ņ¶wYó§‰Õàk/a0A†«Â¹ŸÔ´ÊYh²¯—µòˆdìæxš‘k:fšƒÿ漣<ÕØÙWL4`8IYMBÁSlcäÖßÈà™-»EÒ‚'ÎÚŒÅ:,ÿD¬°çÑÙøÆ©84Ó)~÷ÿ2·j€Ÿ–Ç i¶·B(Lãµ|"a©š¦¯4,¦b8§”¥Ô“i 94¦åÔŒÒjWщ°©6*ÐTð£†c4gŠÌ“¢×UMÉb³RÇE�²þª‹ò…C5‘Æ)jäÈ´ ‘­16pbÃëÛÆŽH÷§ªFxòˆñ¹¿—¯«Ä£%4âòQÙÄC‰Êˆ§Å	$9Ò:ÅM>òEÖÝaÜÆo«ÌŸ^ÂØ<IwÞ�Ygq7s[†ð’ð	-yÐ1ع5†äaÄãMKš×æRBÇY€†óFq}¹âç±ô8ïÀ²*ÈNtå'.Yb„”›¤ÍðZÍûvÅK
+(Ê]&ÉœŠ( Õ™¥ý2¯:0Õ
€äo¤ÎÑ…PKiBH4Uð¹X,Ž¢[ˆð$
+0­mX±å»Ø´‚ ò¥fë5ð0± VR
©8ê%ÙÑñÊÞ§§Dt°ÃUŒ‘s`ô·-BPÈzôP”së°Á¦vIë¶8z-¥t1DiB
+ÒÝ"˶ÜÈYTJ	ƒÄ.š?Ô0Ç7à€jL¢ÃNžú[2ÿtÈÂĮ̎†æ�ù#þ6?E×»†”Œ×¡®ˆ:ÉžÎY;ƒç¬A&q…êSØIRÈ)Éss
+9*xÒß0Bj)mìáH§A¾öhyЏhòMm¤&4ÅŠ…4€€‡ÜÚg¸ŸVæ&tYóÚ¦ÏOCS0³Y²ô‚d7MvNïj)wë÷AÉ(¬âo
"Í¢É[¦Ö
+E`›”þŠë7ez¸Ä†»Þ-·QÀ]¦6Û+BcaÍ@^IÂ:²Ò»´Þþ¾=ƒ—š­ˆsSŸäÏncÇùÓ	6
‚ÍçOã¡B„4½ˆŸç L¥¨ÀGpãB‰q/<•zAãÓCÁ¥» €ÔA~¹ÉxÐ06rih£Íh¤IìØ·O‚N,:oÇÁkìçÚöÅ/ó¸{H°,ÛzЂgÚfÈ»z—¯Ó΀5ýFõ²TrÀn/ät``l†Á™*H6jT¡tG/xøË@P@(„ÄIèp
Òeº!ùê`wv,:Aì‘œ¹N£ 4}09zÇqCìä$r�ìüM`Y†Q”’ øMää•«³÷Ä(|éB!í>¢ÁØ>«O	pwj A*@›ªŸJäC[h&3üëB QbýÏ©8…:ñ“%f~v/‹lâSäÐèÒ0ÝèþÐð0a“·¶"<TX§@Ç&°ôà°Jg€
3Ï•ì¤éHFÕÐoï–éI8«¡{þ¸:YTèób(ˆ°Pëjþ<za{¸…wX¥oa•04 ž3ƒÌlÊøGȶN’à0>ŽBæ8(f	úuGoÇšÈgyñÅ×t£_Ãy~ÀÍ”Ž
+Ã%ä…°ûm†L
+èà!I$äX<T+Ê3­œdqó
+DöMåÔtÌõ2|fEV([â]‘NdbœD3Sp'RŸG¬m—K¢›<œTäÙ°�}½5iÜ·µʹ—àÌp¸ˆ«¿#Ä&jF
ôZµ'”®’2ï%y9¡Q#2ñH]w¬Aˆ}Ævf§âØжè%ú³éòöX¡Óš·ì)”X_ S0åt£(±¤“-Ôî€â°“jHpÔ÷Ó–vœï/—Îô詵 ,9®w<`øE“ˆ
+íìF°agAÐÙ“ Ð‰t©´)lœe
+›øÌ;é¶ö$9ºŸ×ñ{æCù¨‰�œú()ªÇ?¯ñžÃpƒ¿¼IFã’ø¬‡‹¬¦—žb3”Òñl[):˜drr]Ÿ?†ŸÕ–˜ö?¸ÉBdÀiå¶DÕåÖÅõñ7ýühJ¤Ñ:
+½ÀU%næ3aƬJ.Ì>t0ƒÏ€~ÀeŒPˆzËÍ]¢Uìg
Н=_±?ñºµº.j#+`li‘¡	BŠñâM5›Ò º¿Å‘GÒpŒž7«a
+†Ö’%Y[UG9æ™òÆÓ@\bDêÐY…’{‰{¤ðED0®—
+Ö$ Qø+FvCð`ݨì3°ýQ¥	“î±E\àÐuC9ÍáÃ![€$êlïßõšúêù6ßD¨oÙDgÀGˆ*+X!¸%#‚C€q‘?é­8ZUB)U@o¢ÏpgÞ©¶ZØq…¡¡É8ŽÊ9øžÇ|ucácAÑœ¶­é°•W;©@á" €Ø>P‚Óïåh_™Ç9}.6€„V/ÇO:à3´}Ž¡ZS±µœ{:ØÚ~’óþœÅyŠk¦cO6;OÎBá=—bVñ.	R¿k‹
+oñ¤ÿ^±GV=áØ }ïoI"+
ô
+]w‡×FªÁzÏ·ä®ö`<“Éõ²30ûh÷ŒÅ3]êRfú—¿859s¼`K…M€¤8ñË
+X»Uqˆ<‰˜¥\˜“ÆZOàssè¿M’·&j&Ï
ÄÖ÷	.§%Ÿ ÒPÊBL~^äßÿùGˆËˆ‘3páD‡¬•:í¸×£Z¿£Á¹¨©<\ñ«Ç i¯¨ÛW̆¨ÈÂ"(”ƒ:áÅâz‹©–X–~êÎ0PG]8ï‚¼ª¬ƒŒˆRQMNT�¦qfÝW~!Ý0”R%Õ‘0ðxvGFy/Fø-›Ïwúu‚/ôî*ë+’Æ	\õÂ8@ˆ6¢«Âþ©´‹»c<´àLƒ;c[šû÷ŠÛÙºnr	ŸQS'o£QuòT®{qҐ_œÍ¿ƒƒSdª»A*ð:mò8Yuz2ÿPB«
ìHh`l´k’pèÿLLh
+cEb6eۏ�Ò‹ ?!„™>|*=Vü­»Kî@žë“rx‘0ÓG`%ryr[6êŠY3Œ7ŒÅ‡f*—*n•à%9™ÚdfÃè1ó1ޢځ^'Ìý]‰š–
RÍßèqÜÔ.Øê÷�,œö•‰Ó^%„¯lÂÚâ
ã½eØØ#wWÂÑsó56!Ù=âå!q[ö°ÄØÃ�%ÈÔ®]ó‹5^:€½m¨5©)?Vb|šuÀ7f“ºìw°œæÄð,:çYeæ†R%”
+ò[À›î
Éo gæF«AzµFP¥›òŸÀÔx›¶î{Ïíöd‚xíÖwÃ8Ž˜–Ù”{{L> ®‚d¬2Cä�L‘º¨äLÞ,œLÜè,„ò(àmSìø›ÃØåå$=Ñ|%֝luè&	Ä…”83ãÚ
+N¢XåŠxë\VnõÍïžJ[)I›êwŒÄ/Ñé¹»²Ú²| GźÙØY×Áð÷DHµ˜½*›Sýªîè¤æ’p6®0ÓcJ2ã@ÅW´%Ѧcï¼_^Ó$Ñç#*:G§®æ6Ž¡ïn>ÍD;úù¥~¤`9ëhXB ñUŽ«JB_вˆ˜ùˈî%ªý’´w'¹$³èv|#T<68çªKM¶Ï‘-Ù5U+¾¶¡'íB
+ËĪN…‘øŽbJìÃOv'Èì|‹„+*MŒ¼k(dˆ
}›CÚ˱@ ³Áq°³¹&ùaR%}´
+Ë!ÖVЃ‘s3w2¦ŽÑa²2²ÿŽawHæz¡/Q0ðF¦ Ù]~;ž¥Ã¤ËÖ NDùP
+mü˜K3xÞŠke_™£
 ñóþS¯!¡V&=²²ª²ºvç_PÀL9؃Y£¡i¿
+§NU­Ó_¶¬¯)–ƒJ6Ý9‘f*ÊðS	± 1�7ÚF|¸BR$É·y,Ʊ.¿ÀÕ&=uqsáó¡ODÅòB›ÈôR„=çÙɳ—eøؽɇàB®¬ä¬ÖH­¡®ˆ
+ª2lu'h7^#ÿS…)£Xi2..P�e¡/@FÕKÉ‘$é](Ø%à|–2ÉðY1pC±8tÁùIøã11N//+\»“p¥jÔÄïôd€”Îá�WÊmé›ÃI=ß½·ÓY“Zx¡ÔMЉPý8²“1/JG«õÄ^U	,PÈd1O®ó^¬yßpq”l¿£2hÝÑ$øjvñø‹þª­ÌõžIšö%‡Š¨§áèÔ]VæÎÖ
+.�'[+WU8Á­[Žå†Dê’³è,ß»¾-=[ÀåÙÂO
+
+wÿƒ ¿Eê)å3±ø¬äó¿J&¥dïقݶR¡¬—S–\.° •5J$I&ó‘Ýoª·Hȳ~› l‡½Îz>€
+Ux/õHñÐu;š?Gt®{?à³;óT¡ŒªH äLþ|Fú8á†ð²}ˆ¡{ú˜p:ß2tì͆<L¤CA`²¼ÓʘÆâÇ득§„+'	‰—‰‚¹ªoR0D?AûClIþç¯Z1¬¶›F?j᧴ùõä{^�œEµdGIœµT°º¡&#eJ}ÖÄÉ£_m¦Ü�i’³ÐA3÷K["ošCÙTJEßž4Ëc$ô„jݍbYËnathY�„`YGÈãei‚µ¨ñ(…aº#ps¼Wò±Âi-1òÇÑb™«,ÊŽTécmªåbhv9jhÜô3«tè4Î@zöK±±æꙆfÑjÄ–Å\$5Pü…!¼hR¶“$Pé
+M“Ñš`’³ÿªÀCôC^%2Ù]uOs•‡LTx“íÝp¦Y€Ü!›UÆœ{°Í'�Ð’á¤ÏyLð +Ž°lÈJé‹8ª�Êß)@öw„$F5t4ÕÛ¾­$Ã,£²34aTþ˜&‰†ÕÝ„¨UiõÚ+¿äì-಑-›ç,®ð{!/\ÅÂüÏ‚ŸÂŸ±'&¿S¬Å�™Á0xkÀYÿ‘Å0I¶)«'Ýöíâ~¿Ö ´ê«•jƒõ#±m!–-TQ`•‹‰=¶=œKRÔèÕ,.is¡gI&jf‰-IÍ(ÿª~²Ž³o¨‹,èiž€©å‚Œt&Ú\íèØ`Íž¹¹éÒ•,äY†çGÜ‘uÁ I(~[Á!2=ÊÍýâø¸“¤hÙåˆ&I™¤ê{8~4œŒ
+ðj(*aA…TîRþ?bÚ0„I“³Kë¾Pÿ
+¸¬ž€M‹û^c³œ´Yf3Œâ-®¹J¸óºc±÷rø;þružêGuAÁT1?Q‚‰à8DŠpy‚y†+‘Òcž¦ìŠ@6!Ë[oËÄÔf£×Zp­�×âɲè`$ÆQõÈ!†²O­‚ á4«Š»|¬ÇqiùŠL^·Ø_Ç€M+žÆ¾Qb²¹#7ÕƒØìX
5=žÚqQ¿çî¬!¼iëçùm~•‡ù÷Å÷ÔÜ÷‡u…Ý¢êçÓÜ	r(48zrŒY;ã*1ÃyNkÖ$9jÖôÊip+ˆq] æ°gèi™f”ÑîùÒ¦f…Ô¥×¾ ¨¤×»‘>a·Ëѧp6ÑÏíÔû·¶øè5Y"LÚD“Œù.Šr¼ØV“ß‘²ßS_
ºÚÊkþÏ]»n&úH¸z§~¦9‘æ
+¦p
$§4Ù‚”'¢{º& ¸«ÿËM\ŸÎ°éч¨®!ìq®ià ÏÄ(.hš'ËB±T­²Ÿ|ž{I„6cLò¡.¹ž£빍iI¾ê«¿\!à;§àg`1âᾕ˜j%C ¹o3*60÷·EŒ˜ØŽž]tä‰.×-%0
Y‰KÇ_nft] ·*VFCÆtJ’°ÄTÔ+¤\WZ8áòÄâ×gFвàÙ^
+Þžf¶ 5šI=¶×ù#6ö.@õ2zÒÃ;Wš`ÿB/Ä™QøŠgí°ühŠjyJÓ°€N²AX¤3ªÝ,õ¤›�Kä6è’ë6Ú²ØM0®T@ Ž…O{¡£˜4kj£|"¬ftÑŸ”Û„Uü‚<-üÞa†®Õæ5bú)í^R±°8™„ÎÁž:†§il¾­ÀKaÇ6@µæ”Ã!ÀÍÃ] buvΏ$	‡oUÇÂœ~:.…Lût–èêe—ü Ç€¢JξP
+l$S[z–~Rq39é’ºô¶9ëQïË/m"•%ʤ‰¯†¼7Ÿš	Ãî5MKLŸé‘§"IߏG„	èXTÞŽXL¿FðݧV
j‘p^¡/MÃgÁÛ»{¶¹»wô
+ì*øº€ž9ÿð—ÊO¾Êˆ<Ë"aôÁþ÷Aáîïˆq¿»¢†.M—�2@möë‡p¿^Ú'“wß•möÇkxO8ü$[ó«&Áü|Y‚Zyý`2_|%r—“/åJ?¡QùÃṈl‰3ÞÎßK¡E$–wÿvCËh£ûa@÷U€1©Mø¾%0?1*¥–$GÓZÓ{!|ÇÊ¿À$ÃßÛ•Â-òÙªEv;‹Í“:佋Ÿ`BlÏ˸ ìŒ§Çɬ›oQÝ0&‹•ûþñ,†F?¡ýÆä„^s,‡c“™ÁhË•ÿ$ÃEücl0åºw`ý⏺¹Åˆ©@/€r^l˜8cT·3™Ük@›ÜúJÂÝ”´uPÐ&ʪNÉódùJjTK¸ªi	·é*u§»éX–{t“j~½É¡}ùñi\BÈKenâ‹Èµ|NëÖêšu’ï#Ã]@lõCZ$iPæa½ã¸©t04y20ü
sØÖªâ,AuÆ!QÒØBäÏ–ö–^ìˆ@VsÉ‘€‚\ÞZßaã7©ì¾‰©¸âш³»6-Tïr±ÀäU˜àu“Œ~ë°1HÂJ¨(<αŽ‚ò½Ó³bRÔ–¸qiÏé梬J?íeÿG�Á
§*jVħ"áØã†:Y);-Fådô!ðH£»ÙG~´•u¦x	cb6m•¼ø)&;ñ0‡ÏdU?‡8ÅX~ïŸ1Ñ2šÛ¼¨t€ˆI�Øxè5ÄÀ{(ëz„ê
+Ü'¿ûÿ[ ÅƒkŽèZÐ…ØìéÍi,ðÅb™1̇‹¢Íá`º±(ôªmHáNðìüe‰K¤°ßÔ/
+[à´(õö#Qô—GdÊuÎT©½^øm³¢¿%ù†ŒÅ!(˜7Kgé…P=èhøÏ•ákɐU+ŒÂÆ.[Òe¯‹Ïм³CÁžÿå"GDÿΨ£›<*<ÖÏþéh«)¤` A˜U@O]hýlÅf2”…!HžçÏF#�QBÂé=uȾ9f´h€ó;"R„¥Ú�’KÜ3-‚(G	)¼P±áø¡¨ž¦²T],7ÁecÞ
+ë	F4hHÓs³73á–Ÿ ¡²âÛ`àºR–¡Tíwfͳ;6Bó>Ř
9&ÈâÛÑÚÜ‚Î?’—÷ø)À\¨Œ€<&Ŏ™ð5	LÃJu¥@YžÝÝ,ëƒ²Ú¾Û_wÂ0˜^é17ñððöìpÞ»‡*>D”8㟘ü°_)$UźóÊR´!jOFôÖ>{ˆÐ’‘»t,¯-…bPµ,m`D"/ŸzðAâ
͔إêßQZGÕ&U]xejxæåLwvõ~²œ=)@ØB¯Ö6Ê?!;53/ps@tƒOZS7©”§Ø™®’nŸØlxèûîÿZ?áƒZù—j
a²–{ýû6—¥ÿL4›Š«1Ÿ2¹´ù¯‹Q‡iÜý&Ö¥lƒˆá½Åì]o= 7Äļ	ofüЖürMEV@ƒâHõ¦èòû/èýaD¥Ù¦ëH•ƒ®®lK5)ÂŒZ	OE´œ˜„3Á¦IG©'г;îD'¶zl(‘ ÷EŸÏÑ$Š.Ùœð-WR'\w+)Âw3æ꺾ù¸ @Û%RÔ)ÿ.ò~Š9;]ô.šg+)Ø%ȝökÕÎÀÒ‰³¨^ÒöN€W·>b1z:s†¨oD
+Kö²ºÂ2w[|>9â®vWMFâ¯uÞ`¹ëÍax‡chÕ«õU·`*ʆeû]O V'6ý‡ÀƒxÔd?¼H]_rõA»£+zÀd­F›¯H	ÄÊ‹<¤…Ç´£ÕÆkUsFzÀºòÏaHÖÇ9-³œ�˜ƒgv‚b‹=ÓëL/žE»)°Ä.˜½x9j%Bã) $—ŒéAËB¢æì	ƒÛŸt b.bÒAE¨žZRböH(‘£õJÿyaãˆÒ9Wj0f¤ßF'›°Xàz¾Ãï$DQ­6´ëžqƒØ`	oÊÐ	i=áÁ{#4¤©FYHù@ØJÐ3
3i~‘tYТÙhkH‡PÏñ×÷ý17ÓàॆYÜD—"Üp—Ħ;'³16€Æf—pu‹ ô¾>þF›oDÅQi¨náÌ’-Ïç@P#äš«‡ ¦h“j Þ‚ˆÅ€f´¶C– –ƒ7°”T5HVXÉpíöÉklÄ­Œ³®]™ÚyXrÆ)?ͺÓBNJšBƒ÷øä½#Ë›9e”�&&»_0•Ó=®špZÉ6§ªh¤Ù)ð
Ì—ƒa bÀŒí=(p)‡âÙåí¬;Š.N•,“ÃWí^*hÔºŠC—îm}E™7�iõà‡6Á‚Ã÷aËIívͲxpƒ*Ac#4‚ÿýûŒ³Ç Nö&ð`)®Ä‰ˆ£H£We›ƒy7jl¡ï°�oÝEh_n3 ­	‹jp?ª4èp2WÀE'kT_ã
&£°!È–jVl˜HíÓ»_kÉšáÈâöʳùaYùŒ ¡ sÎ@ä[…G"ÊÓbYÕLÛÜ«X¦ªi
ÕC˜q8ñ&úzVaY{èÆ#I@µ§­2˜Žmó!ôdŒ[1	…AàÆ¢šÿnKèðòÕÆeם²å/>ßdƒm†uX:xÊ·\„âpòN‘ûý©l+ƒH+cÇtSǶ‚æCÀ±[íà~3ŒÍeÀ}6° \³,ÎñÉ„˜×|¤Yòݧçø˜§v]¬'û|¿žŸë&í–ìMô2° dõ¬�dsàx-((76”©aX›½m=ÕîÓŠ¿ãQˆ—<$ªª�€üóQ†˜„º\“
+ÔªqiéH阇¬‹‰i'i¤”$"£{S*VwF‹“/°t<ìÊÁáQ`Ê’Z¸š+ðpr)›(¹.jµé¸«Iük5õ	<ä´ʆ±Ë®ÉÖ, kO‘‡œDTˆÊJ&^7º£‡ÄªQþ¤ËÏvße
+&žZØ’
^4úÆ^s°ñD+`WHµ™®bì6ÙÄ©˜ ¸®ÈL˜W{ZZ ¦@°ämqáûv¦É·(DÁ\+Ôlåéû0*¥V¥ß‡°VmÕŠ§æhƏæØ/S`|³^\<-™„©Ã6ë¸2©N3‚"
ToŸóŒlräÅe ‚!õÅH2‹pƒA Ö›¨ ‡ÞÃÏ{›È¼þ/£òŸÑ�çœudU2*2ò"c«Ì"p…${©€y,饋ö&\àm¾&º`Ð|x ¦p…ˆCªÒw#ÂÉûW9D­IiñÑ–Cˆ›Ksï–燝S¶“ã3ï,¶‘–þM›’;j¨þBë§4š›P›2ÙÙiµîïf¶®�É¿íÁbA­]a¢idíÂðŠ­¨†"Äò×i!aQhÔCNO½±žŠï‚õYí
+“xF$Äøg—9ž¥‘Z`W«°…VBâg¸± ìÚ#j\Ë‚—¨€eùGñû[³.à¾]‹ª0º~X{2›D©„?Šø"óŠ3ÄBáj,ÀK~Æ�b#„0¬É’L˜kcÍ(6 ¸
+±aüE7λ/ÕŽ¯%�­ ü±œ·ï àÉÄ¡Rë^JûëÅCϏZ+71XÛ´ÐUO,Á„öá}#-”eÙ¤ 4ö3Å‚ðítÃ8§™Z7†Îià¬Ê<:iÑ?Ft‹Fk–CW'˜êf0i<âXdj—ùŒ”0ÛW#i‹‹š–eCÏ
+zI7ˆÎB°s·¬˜.Kƒ  *ëÝV‘°«dÿ‡ŸDljö@ì«ï%
+©Üˆå
ÎZˆÄsÝﮐsh̸%‡^ß
+ýèøÍ÷@8†ò§¤øÎ? Nº8gÔGøgr¨X°€Sƒ» üä•
Ap‘³º4‡z*ö¹4áÝà§,í¹Ät4GÙnÔè÷‘¼õdSå>fî”Q–CòÏWUZ{SÙ;Nxå½Ê}°ÇH&º¼*­�9׸¯q‹šU1 Êóa `(M-aÈG}Õn¶Ì½è¢Ú0	–¼pÊÔÇmcnñŽ
òð‚ɘÀ_ú\±ül¼ÞÛàþ»}Î	È�Þ9÷FávžHþkƒJZüNO å´mZáÁQžíÒ¤	aSûëfú
+)QC+2
+d’˜¡[¯ý»	ÌïÁõH"t*Þ
Ác*bÏÆÚ¢÷¯q°¨,µ™óã#S˜Ÿ#¢äu›'Ò¬õ:4©as¥©¾CDMF§|ɸm©_Ã1L]öáY˜Ê\À§ý*¤XœŠ>tú–¯¸Ìg‹§ØD‰Ÿ£Šøèd@&[°)8ÃÎ;<œ{óÊ8<–È+VG\°H˜®¦^¯a—‹aeÝ-4”úsÚJÔA	\àhM[‚\`ð“¼#¿pD5Z97g;²÷BWâmÎä‰qTXX‘%0¹�vºžã†ù&ù·]E¹Û4]ûFŸIJä¤ù–œ„&ÝSŽ_¦îƒ4ÈR‰0 ¯¥Dü+Ëme¹Ô¨Y	ƒg÷ÐOøñ+M{”03Ïv�'Í…f…ÁÅt¯á�è :;ôرÊ	Nô¦nà\Ç”^Ü,)1Þlãá’aBïZZÚ„[•à	¸	ûZSÒÒä¼UYhÜ߆ÏÊw€õ‹šS¸\®/¤*?zQЋÿ`X4ïg¹ríÛ[§ŠCWæÛGû.§Y„ì0Q|ûRÔƒ‚E[w¾¦î„yƒ)¸áï‘,шï$ËNK@c/b
+-#Z¯I
¹G$Æ—¯™‹tmçÊH#êð)X£wPZAD|¢S
oýfŠõT¤€ÝHÚë)¸ÎäÓçÇ>ªM1 b
7á°…ɆS‹uÐÃq×
+ö·öjK4[sð„‡	•—×xL ›Ö¼Ç¢©ë]5ú!M!A¾dƧN Ë><«:Ç»Z(°8†ø)e…„ß
 »¥™†/™WØÈÀ|
ý°bªØéˆú<é÷œƒ®T?%à ²:@±äÔ,-àø€ecMPð8u¤m°VÐgŒ9Héö6®Ëç‹}¾=³5�ƒ—AbÒÄŽæýÏ찁¬Î™ÀV:’…_ leɹß
+ÏÊî–•vý`Í0Žä!$`GÁéA"I;$ß^?ú®Ší‰Ke	O¢ Í÷³N(Õ½çö“YyÊ5Bç¡w¸ÐV¹%ˆju;)lFµoaåìË›7óxéÿ’Ú¸Ø4-‰É%ë †ð$ÏÖ¹/zskǘ(sh>»ÁDD©ÅƒÉt¥TÄ7örurÀœ¸0ÉÒ¢ `Ü´h5
5Œ¦Éä¶�“Sá}¸ÑÝÈÿÒ4hrva¼éléc!ZjB]¹Ž¦©ÎxâD¯¶ÿb–TxzYS‚ß6_ö)ƒÊo°Ôp>˜#@P¢SÓ*ýbÜS\qÆ‹xñYfQ><"ó·²ã¢
Y6‘ÅòIE�r_7ñˆÒ°VÔHÃ!�³ÅIçrŒELçŽ6ž!N»�öq"'’d “aþqMvºÅ‹A‚%íõºº¾	ñv³í½Žn<Eб‰;Ã,Úw®ß2pO%¬r’‡X“Hö`˜uI#™/šK¹Åò;‰56‡ßLL.œMI8ÔqÁ¤4U‘närÉ¡"s9¦(ûÜ@=¬ò}N¢¤)?S™ú‚….úr½0L3¯m7VÂýK HG°/®yQ¾Ãé2û/Ww«F)±Áãd)s•¬Fë7|óŽÆºvQÌ´ËAÝIz`€\‰†¸¾åÜ–Ðä„›<>ð.;šëA/Ïç°ô2ʲ‰œa8D$ÿGWv…#̏û
9®kÅÅ'ü‰ËoØŸœo€@âýÌ	(]gkí+}/	(nq‡ºìK(f¢ÍÖÝƟиžpüøÌ2ÔÈ3Y°ãÝéw�²pDþdG´q2$ÌÉ}‘KÓ¯A­"öE&N‚tg'NeýsÕó!Юð4qìœo}쿝¥Sµµë,oÕjr/sœTþMT—&öÐðQf\12¡h'&ctN¦ú'TÅx7¼]2û ;GÍ	Ê…ë¢ã|Tª++:%/ †è¦ûŠ³ÿ1T‘ÅúÏ“óË€Ÿ<ÔñÌ4ÂÓÔùŠÀÍ”×ÿ“Ë—	É,0~áò!¡W‹O©à'‰ áÍ:sñuÈÆÊÒ¦Ù†ù(´^ﮎµ¥œÂ)˜ø7èØ�fÁ€Ñml¥òÒ¹î1Å«tÜÒZƒèhÀ
ÊL0§£·–6ÒX"JÒ‚í
+Œˆ4§9ØÑ Ö©Bé}ƒÞÔ­`è`‘¥®ð„Ó’ç	#¦JÞïnéäôÑ_‘F­ H|š¡$OÈKÎú=¡Å“i1÷¡¦7Œ”o-HËq¡ªûp[É«%%:ˆä€Éˆi3Û ú„G C—�LL‰4ŠSÐ:ždBòj|‰ˆpYÓöSþDP>¶pÓv�Þ²5KLeè{t0®ò‘yÇEND$à*;z»5šŠN’áBIóÙgnŒ€.NÉ|׶àÑnЍ”RÈaS¤Z×ÂJcH² mÍÑXøÜÊßek;_6È,yÊÂb”0#¦Z„¸A
e|w‚ÔÌG
U½1l¸ËLDØ7ÄV£q’Ýt[­xuÝE”QULˆïðPBlZSh–’.áé1Q0UìÙ±8R„iúp;¦ñ{óôH#–GON!?ë£èt>©Q	|pÊk¤Ûó¨q!çgT,öÕjÇÐ2ÃÈsǍ4툊t”jä·nÆ›/IÉO˜E!Ë‹nFõ›4¨†·ˆM&Ô1„’—¾…xÓ$§ew+v™SðË
+bm]e%8²äPÌÂ
+!úﳐŒsÂó_06£ò)Q´2JB†êØý„[t9®–ƒ'”§³Ôœ,§¢Ìô[½f�Æג¶]˜ÂBŠBÃ@š¦îr&B„s|•Qš
°§™×g¨íOCˆž1‡ÜJ Dç<ÌÏâUÿ‡²Î¼Ó(o©!³h¦ÜK½Hüê 0q›ˆ’§AÑVˆ¼'p´fÌy"Q
+O…Û2ÇZ»¾ŸqÂà½#d"›@bQ»,®“Âw)îPÍ\b`xŠß�Oþ)Þ¢d¼MC€$[Ho¤WÞ¦Ñva4{äDZ`52íýº‡³5;‚…X°ÿao�K†;˜6“%ÁR(À‚ŒÓÆÑ…x9Š8À2rãDc÷¥@ÙˆŒæ¾É¤îF×<†d(ÈAN#FI·ž›zmEþ‰»F=©±…Æš­å•S‚€f
+4Ê8§<'´„íjêŽô-ª˜Ú'ǘ<ÒTbñ2Ýv€EÀt¸¿q¡Ò3qODd_íÐ{`/œhhê‚öÌ`Â’9_ü1hAY|/ùë«Þ·Uê-Í•ºÐÄAÞ”Õo(ñËê"“$r؆TÌ×PR;§.¸-w>&LJøiC`A£^±—Ó#‰€ÄX8—t—öâH?€dÁ¿aÃÄ–TSTÚa¨HŸ0@ÒîŠðóU)ˆ£æï^e}Jb7%×Ü”%:›ÓÆ¿@�—¯MŽ+ñ»y”sqŽ�ª¡ëLÌÒýø¿áÊYª00Ô÷GüD¡	>Ä©êAWˆ¶ð2IÛ:ÄÙF	žÈÇš3ãŸ2<k½}[{ç¼*™"Az0…Î:@ÞÀ¢1¨A:µðçŠíܤhÖXÃî£Cûñ““£9èˆ8ÈËèµÔE„ùòÉÅUÖØeu)[?©mt-5Ër”~J’ݪÓV2li)áÕž<¸Ò³?ò(D†¦î;)’o  (­¤˜ÊXI¿I$¦–’ñ$ª)À'i(Àª*’¦_µŸE	K´ª*½4C‹kàýÏ÷wkOIð˜FfQ$8γ;(0+.½9²ÃÂ9uÝ$áÂ0öìt‘170‰ìfȦ

Ç’ûaOµ=T,èm;°€ôn™‘�¥ø˸ÅýΧ—cí<9ð0ú<êÆð
_½=g ÀQV&ÞÅB±Ü€Á%fÒ3`5ÍF�ݶ–~‰§`6dÉ.ê2`?ÎÀé]„}ìO´0^­A¿K´N\Qç(I	{ÉÆŒïp[ꜪÒ4Å$6x§P&Õ :²'�7u„ÇêáßÔ	槴&éõŸRó®®dÀ'Ä
Í´#{*Wøµàâl ·DÆQ§ÕÌŽ.*ZEîÿ
šcƒÝé7µ¼|4€ã€Õ‚or\*öí
+HX¥³Ø'È#k?WRÀ‡‘mP�xÙ$Ù“]©¯�
ׄFKÁ ~È4;
[ÒŠh2ÇAÌɉf‰¨<P
dg¶é’÷)—!b#Z¥?0o´Ôá[¯¯E hXÜ$ö¶…ÓêSþí’ؾeþˆ½NÛì$ò–æð“Œ=Ÿ8Ш"^	‡VÙcFDÔïx˜Á§ýÑRX³CõX“ážÎ.:Fƒ¿q,†„æ1)b¡Bº1
ò§²+¡Qž)ò_ÆOyE£³	
+ôŸü‰¾º¹nTp „š}1`î#
+×£d-½Ö¥#„Oñáâ„štïÈ:5ЋŸ/<b0°'moqI£ßÁBâŒFW‰ü.‘\k¯cø5ߦ-v›T[Í‚àô°êà± ôü›-4­:dÝ—u”†[	8:P금ª£ªBT˜ûµUÌËçÆQð ,F24‚lÀEO÷?ªDþk£œ{
å±1¸k6)Rä̘GIÉË6§Yp^UÁ­!Aâ@é{xg#^/	‚×E‰Tz°ÇÄ’Ê»@:FŽ'\Q6ƒt,æÔpT!iõ
+N!¦dGÁBáÄ^
+ó$@ynˆ_uœUüºCÒàíK¨_K62˜ìB|
+^‡¢‚T²mr½Ž¡LDgÊ¿Ëf›)!-îúúÓoŠ¤ch»}Éí@oà[ràE] ë/iÚWJ8ÁOgbêӁFÖe‚(/”ÂEΠçyOñ™LBœ]IkTÚ‰aÌàbVŽÌÕ
+ÏÎ
+	2¼¹“™Ö%Íb»ŠÂjúªÔg†Œ'‚Àñ‡2…-6µÿ˜Düí»¢òJZe'	·oBi2üû+]x;S¾Pσ¥{£{Ju¤m²„f^L
+S0Ñ’ÍÄ~oÇÇëæü-ë÷ÐS¸Ecô*€vl��pOmó@�öv	-SãÿD;<UÈC¯Y×à¾îûÖnA)¤pxOý@¥iåLŠÂ7—E`K\‡J`ô9ÛU$ü	pº'°Õ Ý…ŒÓ3Áv
+�“nœ˜%§lSŠ}܉AÅìNj0*±¦è׳48ØÏÎi%чŠ”Ò8ÑãP5Âc‰Œ#ÅèT$F»?$²—€L~ªIžQN_òMC
+Tn‰LŠ`)e|Ȑ‹!dšäóÚòìÜ‘[ìsû‘D”\Vo‚gFûœŽG(1¨ ÆÌOJB™É�JÛFR%pᝎ3NðP CéSêóÒë@pM”�ÍÝvA�f,- +®HƒFt»,Ÿ¶‡ówfA¨€�©²‹æŽ)yÁóî^­Æ¸}ÈNÅ+s8Z‚$j‡NF³ñ×âi#ÚlÈÖâh–´ÿP!9ge]ði˨öhòïç€öf“v'ôƒláð!êèynÛOÛä]3ã�i†™ÑÀFÍ	›€ÈPkcœ\çˆ
+`çõÞ@Þ92Ä
z¿µXãú;]Û©áiª%[5‹”€àp¬8Q c‹ÈådÛð\ÑLo±ä;jPÚ/Š­ønýg¢ó[åÒqBÒQP;ö˜,V“eÙçÐ3ÜPr´'Ø·õ4Yÿ©† 8»÷[%Íö¦c“
+^ˆ`Õ÷°	š‹PjL>Ê íq€÷À”:6S•—ŽÑ]KÎÏ" ¥®g[¦	åÏ‘H“˜âB¬5ÈVEqÛLJŒ•X{C¼ˆ¹§B½ÅÙÒ!¥P«Iáq9»øLlx–®Êª7Ò>Ö¤–Û]@Õ!@9H”!ªíäÈpÀÉ™Õ$	â?ÞÕ)›«ÜŽ¨l°/"±”À́–¯+“@`}}:\÷•¯Ð	8•zQgS£¿+ò’¤¿Á’C„£}€R:ŸõHþUF\¡Xþ’göÀ/âë€AZ%c1ÕwlET�–wX ZNh¥ …Äyf2DÆ €Ã¸‰&v®L“qî4Æ7•ñ§ûÊzúð\iJyÀèJ-k¯NÄ3½ ë	£-¼s‘ÑJ5‰—)ÙV0™N0ÝdÚ\Ó›d0d-©ãEÚ[mf£\£UmÁx²ÒÒC«R<(`ªÑ•æƒp4^!hÔQè�`¢ù!l“ ~Æ™ì:J‡É ñlüW±þ€9˸ÌZXB=ëÈl)`jžªeVJ³àU€³†G!®sØç1Ô?Ƽ3„¨ÃŠ.³}bIaÙê6àÊ•
œt?èÀ€ÞSxZJ'Ãp
+ië,¦.ˆñ¬ØR2T`5�˜-R
+BxræWHöJP°e#Bb‰|“¯”-±þ¡ì‹[²„ ÆäPÂâý…¤¨Eh‹±³Â‹(5Sœ¢•fÕräÃ/]Ë°ÑIÆŠ
ÌÖd”ÞE#ú¢O®Sú3—9Ó»]¸º³€e‚¿Û®Õɹ.9_Œbêe§æ¾MŒ´9b#e©(’¦-ˆ 0§Ò×Ra±àÆ„9ùº–ˆ"þ‰±þýýU,áÂ%ú~¾XèÜ€ö—”ëz€Û½{'6[@„t[W%ýÑ*.d'vR {”ÒðhŠ¦!ÞAed’CªE}»x=E[|ïB$7J¡* B-á�,=k7”[_¶ê-ÐIô–¢«€’‡J5eÖ̶Ä´{
Èí(	´†;WMw§`«°€Ë~pÜA °z 8‡îfæ))âŒâÂ(Þü@	©ĪÙ……Ù<áî…ä.a%N òìné@bz­Ã‡ÈÑÀµ¿>Àëô%…‡€T*?lgb¿döÈ<‚ĵãúÀw9Na¬Å¼8;<^*%›yÒ:tD¥Ò•Z<@ü‰0ª¨«ä‚q4±äÐíl\
–†1†îÉŸÓ�`/ž$IJ Ò“sN)¼;:A;’)$ו
+°Ww¢y%KrÞIv\b¶V™£\n­d{ÀÞôÈ6t»ví×/~¢�ü*OÖí
+7U>£8ûr‚AC<ºjéŠEâ¢-jçØ牷¨üxsî)ÌD¢›–1¼ÃŒ/ÏÊq“p**̸À$Ù‘,Ûá
ƒ³BõȼpÄúk	MhpˆKê7ÆUè¤Ã]ðøáh&„-ž$ˆéŽ»¯”“Yꐣ;àqËé6w•zÝ÷ÖWûîË„Ö­A¦h²ìDœ‘^RöÞÉ"­Æs5�fýüîw
ˆ¿ä+çQ&’/9È‚–œ¸wNbÇëéü­ãü°Øz{åØ•ÓþYÅ>
+]NEÚÁ±c,ßž#BFý:0ÍØ/-EȾÆÂŒÇ׃ëF\êŒôäI§{tìäA»Z‰C™ORÃuk¥iú”ô)…ytkdN¸&›v§A±™ˆP{ÍÖîôËP'šó’>ÈêàxàƆ`.Üä%,;:Ô¿Ù:Ž©«­¿íaFñ§oTQ«}v#ôìš×£‘öÚQkèÆ'ÝsÄÔÓÖØ÷~…µÞÍz5hMÄQÊ’áY>C…èʍ™�„è¾i·ÌU± ÓNF#J0uŒÎCðäð8k“!
+f«éì§v¹{Eñ/ÏëæIKIEË>ºp·yd†Ìe	
+ʾ”=zô†:@7ÖJà÷ijÌ|ÆÆ5g8ÀîxÅ3çO±Œªþ€ÄÜÜ
+þ3€H1‹ó±Ø„F. y´fz´ìWIMñÙƒÆj[.wæ%„i?Ò†UÂè©f|}@+[8•k7Cx¤˜S…íEOÞ¯p $ä—üáç¾Qæ»+™Ê:¸<á]¶¸Kâ3‹T-y²ÂÍ[NÑÖz´µ„;y³Š¤-HZþªY^¡Ô.¥M�*Ô'h8ÒíA….°Nï2r‰œLBœ7:Or’©}‘C‰SËšS9äJq#ì£WI}*8ËD!ˆ¸#	g#Y>8`•
+ìÐ’Âñ?a…2H,^ñãÄ'ƒï?¸ÿ^¸ˆæ§nƒhãOÆ’­¿i<ѪæÝYa2É+™üÌ6a°F±âa<Ì!„Û0¬‰2½]c:ïe¼K¤¬X˜X˜[UgéO¯u5iÔyPcVÙTºž5RIúŸA6òOÔ¸i
¤ýCŽ\‡ñ…—ãQZM„DÄƃÓڐÏB!X–Ä:ôÐã\!Ç^Á…"{¡E Vax$P	\$³DBBTÞÓFtèŸ~™Ã{O‡�¼
w�ïøž5a#ø`«=�g€Ё°Yý2>‡±MG¯-G­kÃ¨ªÛ1T¾b¦ü…L
+¹`*Ù€«V¬X
+­Þ*¥xªe§֊Z*c`ªVÁSÕb¥ºÅJUŠ’ªÐ*6 TK@¨zqPÄâ¶ÉÅh“ŠÇg†Ì*ß”U§(ªöQU4‚§9L’
+­cMÆ*ŒT»©R!R,B£È…E°Šˆ ¾*C|TzøôpðôFèô@èô4èô*àôà÷õ±î±í…°–†Ø¬á±Xób°€L€.™�T2�y`�®ÀUpbàåÀë�
+�ª�T�, �%@`äÀ耐�# �?@�t€�¤øGLˆëÅž�SÀ)öžÃ¿ z“ÿtϲFy׎� �14�Lh�ŒÐ�ဃ�f�™�°ÈeÀ(.)pK€@\âà—�X¸e@�Tb v•h˜DÀÅ&ù0-IbD‰	d@�ZD1¤@‘�DàyÀ¸ó€Ñ§�CN|
9Ü4æØÓš#NclÂÀ°;¸,
`c‹XâÀ³@(„2$0"@-	�˜$èB@‰�<$�АÁÀø8p7C¦€àbè(@¥
+PA@…�F�¸0�Àõ�t‰üœÞ‹äG­éÔOR—‰éIJâIïTñySÍMW52\TÆoRå¥KV•0ÈŽ¬à»‚Œ(
+- $²€’š€”
¤!6¦„¢wˆêH¢©†£ùúGù­ O  r~àe~/à]þ·àV~/àP~7 Szï Kú— Fv`;ö¯`9vÑ#
+J¤Ü§BÍN‚,ä×ÎÅÓ­²'°��`��¡'⏂`\LTþðÙApBs)r…!Õ
+â(
+Òi‚`
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.svg b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.svg
index e3e2dc739dd8..94fb5490a2ed 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.svg
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.svg
@@ -6,224 +6,283 @@
 <font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
 <font-face units-per-em="1200" ascent="960" descent="-240" />
 <missing-glyph horiz-adv-x="500" />
-<glyph />
-<glyph />
-<glyph unicode="&#xd;" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
 <glyph unicode=" " />
-<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
-<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
 <glyph unicode="&#xa0;" />
-<glyph unicode="&#x2000;" horiz-adv-x="652" />
-<glyph unicode="&#x2001;" horiz-adv-x="1304" />
-<glyph unicode="&#x2002;" horiz-adv-x="652" />
-<glyph unicode="&#x2003;" horiz-adv-x="1304" />
-<glyph unicode="&#x2004;" horiz-adv-x="434" />
-<glyph unicode="&#x2005;" horiz-adv-x="326" />
-<glyph unicode="&#x2006;" horiz-adv-x="217" />
-<glyph unicode="&#x2007;" horiz-adv-x="217" />
-<glyph unicode="&#x2008;" horiz-adv-x="163" />
+<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="650" />
+<glyph unicode="&#x2001;" horiz-adv-x="1300" />
+<glyph unicode="&#x2002;" horiz-adv-x="650" />
+<glyph unicode="&#x2003;" horiz-adv-x="1300" />
+<glyph unicode="&#x2004;" horiz-adv-x="433" />
+<glyph unicode="&#x2005;" horiz-adv-x="325" />
+<glyph unicode="&#x2006;" horiz-adv-x="216" />
+<glyph unicode="&#x2007;" horiz-adv-x="216" />
+<glyph unicode="&#x2008;" horiz-adv-x="162" />
 <glyph unicode="&#x2009;" horiz-adv-x="260" />
 <glyph unicode="&#x200a;" horiz-adv-x="72" />
 <glyph unicode="&#x202f;" horiz-adv-x="260" />
-<glyph unicode="&#x205f;" horiz-adv-x="326" />
-<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
-<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
+<glyph unicode="&#x205f;" horiz-adv-x="325" />
+<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
 <glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
-<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
-<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
-<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
-<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
-<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
-<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
-<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
-<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
-<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
-<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
-<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
-<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
-<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
-<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
-<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
-<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
-<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
-<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
-<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
-<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
-<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
-<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
-<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
-<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
-<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
-<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
-<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
-<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
-<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
-<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
-<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
-<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
-<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
-<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
-<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
-<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
-<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
-<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
-<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
-<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
-<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
-<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
-<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
-<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
-<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
-<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
-<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
-<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
-<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
-<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
-<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
-<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
-<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
-<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
-<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
-<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
-<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
-<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
-<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
-<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
-<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
-<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
-<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
-<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
-<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
-<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
-<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
-<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
-<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
-<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
-<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
-<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
-<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
-<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
-<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
-<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
-<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
-<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
-<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
-<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
-<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
-<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
-<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
-<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
-<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
-<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
-<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
-<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
-<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
-<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
-<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
-<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
-<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
-<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
-<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
-<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
-<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
-<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
-<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
-<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
-<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
-<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
-<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
-<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
-<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
-<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
-<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
-<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
-<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
-<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
-<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
-<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
-<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
-<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
-<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
-<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
-<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
-<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
-<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
-<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
-<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
-<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
-<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
-<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
-<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
-<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
-<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
-<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
-<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
-<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
-<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
-<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
-<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
-<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
-<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
-<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
-<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
-<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
-<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
-<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
-<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
-<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
-<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
-<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
-<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
-<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
-<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
-<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
-<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
-<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
-<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
-<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
-<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
-<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
-<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
-<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
-<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
-<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
-<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
-<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
-<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
-<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
-<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
-<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
-<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
-<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
-<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
-<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
-<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
-<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
-<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
-<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
+<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 </font>
 </defs></svg> 
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.ttf b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.ttf
index 67fa00bf8380..1f853124540d 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.ttf
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.ttf
@@ -1,268 +1,772 @@
-�������FFTMjUÂð�����GDEF���8��� OS/2g§K„��X���`cmapJð	š��¸��rcvt �(‡��,���fpgmS´/§��4��egasp�����œ���glyf3!��¤��‰<headbXþ��à���6hhea
-2�����$hmtxÁÁŽ��<��ôloca4VN��“0��¸maxp ��”è��� nameÔ¯™í��•��|post¹F¦i��˜„��„prep°ò+��¡���.webfX¯Ræ��¡8����������Ì=¢Ï����Ïò����Ï	.���������������Ú����������Ð���ZÐ��¤�2¸���������������������������UKWN�@�
â�Àÿ���|�������������� ���������������l������P���P�@�����
� �+�  
- / _ ¬"%ü&'	'àà	àà)à9àIàYà`àiàyà‰à—á	áá)á9áFáIáYáiáyá‰á•á™â�ÿÿ�����
� �*�  � / _ ¬"%ü&'	'àààà à0à@àPà`àbàpà€àááá á0á@áHáPá`ápá€áá—â�ÿÿ�ÿõÿãÿÚÿfàßãß´ßhÞÚÚÙÙ
-      �úôóíçáxrlf`_YSMGA@Ú�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(ø°�,°�K°LPX°JvY°�#?°+X=YK°LPX}Y Ô°.-°, Ú°+-°,KRXE#Y!-°,i °@PX!°@Y-°,°+X!#!zXÝÍYKRXXýíY#!°+X°FvYXÝÍYYY-°,
\Z-°,±"ˆPX° ˆ\\°�Y-°,±$ˆPX°@ˆ\\°�Y-°, 9/-°	, }°+XÄÍY °%I# °&J°�PXŠeŠa °�PX8!!YŠŠa °�RX8!!YY-°
-,°+X!!Y-°, Ò°+-°, /°+\X  G#Faj X db8!!Y!Y-°
,  9/ Š GŠFa#Š Š#J°�PX#°�RX°@8!Y#°�PX°@e8!YY-°,°+X=Ö!! ÖŠKRX Š#I °�UX8!!Y!!YY-°,# Ö /°+\X# XKS!°YXŠ°&I#Š# ŠIŠ#a8!!!!Y!!!!!Y-°, Ú°+-°, Ò°+-°, /°+\X  G#FajŠ G#F#aj` X db8!!Y!!Y-°, Š Š‡ °%Jd#Š° PX<ÀY-°,³�@@BBK¸�c�K¸�c Š ŠUX Š ŠRX#b °�#Bb °#BY °@RX²� �CcB² CcB° c°e!Y!!Y-°,°Cc#°�Cc#-�����ÿÿ���(��h ���.±�/<²í2±Ü<²í2�±�/<²í2²ü<²í23!%3#(@þèðð üà(Ð��d�dLL��$�°�/°
3°Í°2°/°Ö°2°Í°2±+�015!'737!!'#'7d··È··þý··È··ôÈ··þý··È··þý··������LL��J�²
-��+°�/°3°Í°2²�
-+³@	+°/°
-Ö°2°	Í°2²	
+�����€��pFFTMm*—Ü���ü���GDEFD������ OS/2g¹k‰��8���`cmapÚ­ã��˜��rcvt �(ø�����gaspÿÿ������glyf}]Âo����”¤headM/Ø��œ¼���6hhea
+D��œô���$hmtxÒÇ `����tlocaoû•Î�� Œ��0maxpj�Ø��¢¼��� name³, ›��¢Ü��¢postº£å5��¦€��
+ÑwebfÃTP��±T����������Ì=¢Ï����Ðvu����Ðvs—����������������������‹��Ð���ZÐ��¤�2¸��������������������������UKWN�@� ÿÿÀÿ���{�������������� ����������,���
+�������h�����,��
+��Ü�°���h�@��(� �+� �¥ 
+ / _ ¬ ½"#%ü&&ú'	'àà	àà)à9àIàYà`àiàyà‰à—á	áá)á9áFáIáYáiáyá‰á•á™ââ	âââ!â'â9âIâYâ`øÿÿÿ��� �*� �¥ � / _ ¬ ½"#%ü&&ú'	'àààà à0à@àPà`àbàpà€àááá á0á@áHáPá`ápá€áá—â�â	âââ!â#â0â@âPâ`øÿÿÿÿãÿÚÿfÿbàßäßµßißYÞÜýÚÚÙ!ÙÙ     
+ þø÷ñëå|vpjdc]WQKEDÞÜÖÕÎÍÅ¿¹³��������������������������������������������������������������������������������������������������������������Œ�������5��� ��� ������*���+������ ��� ������¥���¥����� ��� 
+����� /�� /����� _�� _����� ¬�� ¬����� ½�� ½�����"��"�����#��#�����%ü��%ü�����&��&�����&ú��&ú�����'	��'	�����'��'�����à��à�����à��à	���!��à��à���&��à ��à)���0��à0��à9���:��à@��àI���D��àP��àY���N��à`��à`���X��àb��ài���Y��àp��ày���a��à€��à‰���k��à��à—���u��á��á	���}��á��á���†��á ��á)�����á0��á9���š��á@��áF���¤��áH��áI���«��áP��áY���­��á`��ái���·��áp��áy���Á��á€��á‰���Ë��á��á•���Õ��á—��á™���Û��â���â���Þ��â	��â	���å��â��â���æ��â��â���í��â!��â!���ï��â#��â'���ð��â0��â9���õ��â@��âI���ÿ��âP��âY��	��â`��â`����øÿ��øÿ���õ�õ���öª�öª���
+���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(ø���ÿÿ���(��h ���.±�/<²�í2±Ü<²�í2�±�/<²�í2²ü<²�í23!%3#(@þèðð üà(Ð��d�dLL�[��27>32+&/#"&/.=/&6?#"&'&546?>;'.?654676X&
+žjžà
+
+àžjž
+)"&
+žjžà
+
+àžjž
+)L
+àžjž
+)"&
+žjžà
+
+àžjž
+)"&
+žjžà
+��������LL�#��32!2#!+"&5!"&=463!46ÂÈ^þ¢Èþ¢^Lþ¢Èþ¢^È^�����p��@L�E��32!2+!2++"&=!"&?>;5!"&?>;&'&6;22?69ú
+þ”
+x
+}
+x
+}”þí
+x
+}þí
+x
+vþ”
+ú¤¤L
+þ” d ®® d l
+¤¤���d�Œ®�;��2#4.#"!!!!32>53#"'.'#7367#73>76èòp<µ#4@9+820{dþÔ–dþÔ	09B49@4#®bk§Îv$BÙdpÚd†>u®½hi-K0!.O2d22dJtB+"0J+«kuž0ªwd/5dW…%���{��L°�>�G��!2+!2++"&=!"&?>;5!"&?>;4632654&#¬^CjB00BjC² 
+x
+Š
+•
+þõ
+x
+uþõ
+x
+u¶Ë@--@°$?2O*$$*P2@%d ¯
+¯ d Û
+ÈþÔBVT@���ȐL¼���!2#!"&=46ú üà¼ÈÈ����È��è°�%�A��+32!546;5467.=#"&=!54&'.467>=è2cQQc2üà2cQQc2ÈA7  7AA7  7A°–d[•##•[––––[•##•[d–Èd<c2<2c<––<c2<2c<d���������������1��ÿò,ÂA���2632#!"&5467&546÷nµ,,.xªªxýOqUBØAwa­xy­rPEk™×������d°¯�����32!546;'&>76!'ö 	
+ˆÓûPÔ‡
+	 $
+op	zy¶Ã³#»ý%**%ê·$	”–üp�������d°L���#�7��!2"'&6&546	6'&4#!"&7622?62~
+ýÌýÌþø
 
-+³@		+²
-	
-+³@
-�	+±
+�01!!!!!,þpþԐ,þpþÔþp��d�Œ®�7�v�°2/°(Ͳ(2
-+³@(.	+°�/°!3°Í°2°/°3°Í°2°/°Ͳ
-+³@	+°8/°7Ö°2°"ͱ22°"±-+°2°.Í°2±9+±"7°9°-² 2999�017347#7367632#4.#"!!!!32>53#"'.'ddqÚd‡%Ku´òp<µ3LJ9D?{dþÔ–dþÔ	09C3JL3®ak§Íw$Bôd/5d§Z½gj7X0,Z>d.6dJtB+0W5¬juž.«x����ȐL¼���°�/°Í°/±+�01!!È„ü|,����������������1��ÿò,ÂA���°/°Í°	Í°/±+�±	±99013!264&#".#"qOîxªªx.,,µn˜ØBUîPr­ò¬aw×™k������d°L���
-�
��57%	ÈȐûP,þÔXXþÔ,dÈÈþpÈXþÔôý¥[þ,ý¨���ÿóÿó½½�����%'7'7764/&"
MßZÖfÖVÖc

™$
pßQÖfÖVÖ\
'™

�������°°�	�3�²��+°Í°2°
-/°Ö°Ͳ
-+³@	+²
-+³@	+±+�01!!!5!°þ,üà,°ýÚýÚdd&����L¯� ��&7>5%&7>54&&$ˆOAXX@JOWˆOFS
-ý
-@JO‹n)`*^›ý÷r67)Q7q
-Á
-ýO���ÿìÄ™���Y�²��+°/°Í°/°Í°/°Ö°Í°±+°ͱ+±³$9°°9�±°	9°°9°³�$901� �"'#" 6& N,mþÔwŽÈƒÂÁÁþîíþäÈŽwþÔm,NlþðÂÁÁ�����d�X¯D���°/°�Ö°Í°ͱ+�014>>.d8Zwwy,0{xuX6Cy„¨>>§„yC@vS-IDEH-Sv@9y€²UU²€y��ÿ¸�G•°�
-���!3!	7Hß’’Øþ‚‘þ€þ‚’” þpþêþ?þí¿þ?���ÿ¸�G•°�
-����°
/°3°Í°2°/±+�01!3!	77'7#'Hß’’Øþ‚‘þ€þ‚’”CÄIÀÃJÁëMN þpþêþ?þí¿þ?tŽâŒåŒÓÓ�������°°���155"&=462#%?°ø°?%d•3È|°°|È3•dþÿ��
����°L���������#�'�+�/�3�°�²���+°ͱ 22°/°"3°Í°$2°/°&3°Í°(2°/°*3°Í°,2°/°.3°Í°02°/±233°Í°4/°�Ö°ͳ$2°±+³	
$2°Í°2°±+°2° ͳ$(,0$2° ±!+³%)-1$2°ͱ5+�±±99°±99011!%35#535#535#535#535#!!5!!35#535#535#535#535#°û´ddddddddddÈXý¨Xý¨¼ddddddddddLû´ddddddddddü|dü|ddddddddd��������LL���/�?�B�²
��+°,3°Í°$2°/°<3°Í°42°@/°�Ö°2°	Í°2°	± +°02°)Í°82±A+�015463!2#!"&463!2#!"&463!2#!"&463!2#!"&þpþpXþpþp2þpmþpý½þpmþp��	����LL���/�?�O�_�o���v�²
��+±<l33°ͱ4d22°/±L|33°ͱDt22°-/±\Œ33°$ͱT„22°/°�Ö± 22°	ͱ(22°	±0+±@P22°9ͱHX22°9±`+±p€22°iͱxˆ22±‘+�01=46;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&546;2+"&ÈÈÈÈÈȐÈÈÈÈÈȐÈÈÈÈÈÈ2ÈÈ¥ÈÈ¥ÈÈüõÈÈ¥ÈÈ¥ÈÈüõÈÈ¥ÈÈ¥ÈÈ�����°L���/�?�O�_�V�²
��+°<3°Í°42°/°L3°Í°D2°-/°\3°$Í°T2°`/°�Ö± 22°	ͱ(22°	±0+±@P22°9ͱHX22±a+�01=46;2+"&;26=4&+"=46;2+"&5463!2#!"&5463!2#!"&5463!2#!"&ÈÈÈÈÈȐ¼ýD¼ýD¼ýD2ÈÈ¥ÈÈÈÈüõÈÈ¥ÈÈ¥ÈÈ�����"ò*���	''£2Ôý¡ÎÆþ\4Ôý¡Ï���j�jFF���	7			jþæÔÔþæÔþæþæ>ÔþæÔþæþæÔþæ���ÿìÄ™���'�·�²��+°/°Í°/°#3°Í°!2²
-+³@&	+²
-+³@	+°/°Í°(/°Ö°Í°±&+°2°%Í° 2²%&
-+³@%#	+²&%
-+³@&	+°%±+°ͱ)+±&²999°%°9°³$9°°9�±°9±³�$9°²99901� �"'#" 6& 53533##5N,mþÔwŽÈƒÂÁÁþîFdÈddÈíþäÈŽwþÔm,NlþðÂÁÁþYÈddÈdd���ÿìÄš����]�²��+°/°Í°/°Í° /°Ö°Í°±+°ͱ!+±µ$9°°9�±°	9°°9°µ�$901� �"'#" 6& !5!N,mþÔwŽÈƒÂÁÁþîFþpîþäȍyþÕm,NlþðÂÂÂþYÈ����™°��+�E�°/°
-Í°,/°�Ö°Ͳ�
-+³@	+°±+°Ͳ
-+³@	+±-+±³#$9�0147 654&'5".;2654&+"Ò§g|úbú|g§Ò[›ÕìÕ›[ÝddX·(>¦7Èx±úú±xÈ7¦>þØ·vÕ›[[›Õ��d�°±�����0�²��+±33°/°Ö°Í°±+°Í°±+°ͱ+�0173#33333dÈÈ,ÈdÈdÈ,þÔôþ üà°ûP����––�G�Q�b�°/°PÍ°K/°6Í°R/°�Ö°HÍ°H±M+°$ͱS+±H�±=99°M³39$9°$±/99�±P±99°K³!'E$9°6±+A9901732?6?67'76?654/&/7&''&/&#"'462"&—P-<…-1&("/&./†80P˜˜P,<†-0&("/&2,…;.P
—g~²~~²~Y!)&1,†;.Q
——
Q,=†,1&("-&3*†:/Q˜˜Q/:†/.&0X~~XY~~����dÿÿ°��#�'�+�/�3�7�‰�²!��+°$Ͳ(04222°'/²*26333°Í°/°ͱ,22°//°	Í°8/°Ö°$Í°$±%+°2°(Í°,2²%(
-+³@%�	+°(±)+°0Í°0±1+°-2°4Í°
2²41
-+³@4	+°4±5+°ͱ9+�015463!5463!2!2#!"&!#!"&73#3#!5!3#3#d
-;),);
-ûæd„;)ýD);dddÈdd,þÔÈddÈdd2
-d);;)d
-2ün üà)<<)¼ýD¼,dû´¼ýD¼������Ý�
-�,�²	��+°3°/°	Ö°Í°±+°ͱ+±°9�01	#!!!„ÈþÔþÔþÔY„ý|ý¨þpX���d��è°���"�²��+°/°Ö°Ͳ
-+³@	+±+�017463!!#!"&dېü®X,~þý],þÔ����¬¬����‚�°
-/°Í°/°Ͳ
-+³@	+°/°Í°/°Ö°
Í°
±+°Ͳ
-+³@	+°±+°ͱ+±
³
-$9±³	$9�±³�
$9±³$901$  $ 6& 33 D  þîþ¼þîóVóóþªGdȶD  þîþ¼þî  _þªóóVóýþþÔd����ÿœ��°���.�²���+°3°
-/°Í°/°Ͳ
-+³@	+°2°/±+�01#333!#3#d¯Ñ¢Ð¯ýæ)ò(1રþÔ,ûPþpô,��������L°���J�²��+°Í°/°	Í°2°/°Ö°Ͳ
-+³@�	+°±
+°
-ͱ+±±	99°
±99�011!3!3!%35#êþÞÈ,ÈþÞêþᯯ,ôþþÔþpÈd���¯¯����c�²
��+°Í°/°Í°/°Ö°Í°±+°Í°±+°	ͱ +±´
$9°°9°´$9�±µ	�$9014>2". 6& 333_ ÞôÞ __ ÞôÞ \òTòòþ¬P–È–úÞôÞ __ ÞôÞ __ þ¬òòTòþd,þÔþÔ���¬¬����a�°
-/°Í°/°Í°/°Ö°
Í°
±+°Í°±+°ͱ+±
´
-$9°°9°´	$9�±µ�$901$  $ 6& ## D  þîþ¼þîóVóóþªOúú–ȶD  þîþ¼þî  _þªóóVóþb,þÔþÔ,�������°°���)�²	��+°Í°2°/°Í°/±+�±	²999015!#!"&3!73!È Çû‚ÈÈ2,2Èaý¢Û¼ýDþ%æÈÈô���¬¬����F�°
-/°Í°/°Í°/°Ö°Í°±+°ͱ+±µ	
-$9�±µ�$901$  $ 654&  D  þîþ¼þîóVóóþªó:)¶D  þîþ¼þî  ´¬òò¬«óóþŠ‘È���™°��S�°/°
Í°/°Í°/°Ö°Í°±
-+°	ͱ+±
-µ$9°	±99�±
´�	$9°°9012>5# &632!&#"[›ÕìÕ›[–úþžúú±ˆn’‘ÆvÕ›ÎìÕ›[[›Õv±úúbúQ’‘z[›������™°��!�z�²��+°/°Ͳ
-+³@	+°
/°Ͳ

-+³@
�	+°"/°�Ö°Í°±+°ͱ#+±�±99°·
-!$9°±	99�±°!9°
±	99°°9014>327!7&#"!32653#"'[›ÕvƝ‘þp“p‡±úI“p‡±ú–[›ÕvƝXvÕ›[z‘þp“Pú±ý¨“Pú±vÕ›[z��
-�d��°°���������#�'�P�°/°3°	Í°2°/°3°
Í°2°/° 3°Í°!2°/°$3°Í°%2°(/°Ö²222°Ͳ222±)+�013!!!%53'53'53'53!5!=!%5!%5!dLû´d„üàddddddddôþôþôþô°û´„ü|dddÈddÈddÈddý¨ddddÈddÈdd�����L°��#�J�²��+° /°	Í°$/°Ö°Ͳ
-+³@�	+°±+°Ͳ
-+³@	+±%+�± ³$901546;5463!232#!"&!54&+";)dvR,Rvd);;)ü|);,ÈdX);ÈRvvRÈ;)ý¨);;å–����d��LL����²���+°/°�Ö°ͱ+�0133>>7.ddd<‡x|rjd)({„‡tZLû´<0
!OQôQE
-((
-EQ��������°—�!�1�A�g�²/��+°>3°&Í°62°/°Í°B/°�Ö°Í°±"+°+Í°+±2+°;Í°;±+°ͱC+±2+³$9�±&/´$9°±9901;2654> ;2654."46;2+"&%46;2+"&2ää2c£ÞèÞ£cÈ  X  ,ÑrrÑþÔ,tÞ£cc£ÞtýÕÌþ4Ìþ4������ÈXè����!!7'77',,þÔþÔ°GGGÈ Èþ«GGG������Èpè����°/°Ö°	ͱ+�01!!%7'654,,þÔþÔ¼EojCVÈ È95‡¯©…6nŠ’�������ºb÷����<�°�/°Í°/°Ö°	Í°	±+°ͱ+±	³$9�±�³	$901!%%7'65477654/,,þÔ’EojCV^{wQŽ‘ÈüàÈÉ5‡¯ª…7nŠ‘Í—Á½–B²ãæ²�
����°°������!�/�3�?�C�G�K�O�²���+±0D33°Ͳ)1E222°/²'+L333°Ͳ%-M222°"/±33°#Í°2°/±H33°!ͱ4I22°P/°Ö±22°ͱ22°±0+±
,22°3Í°52°3±.+°*2°%Í°@2².%
-+³@."	+²222°%±7+±DH22°;ͱ&J22°;±L+°B2°OͲ9=F222±Q+±0µ4?$9±7%²()8999�±"³89$9°#²:;999°@	67<=@C$9011!#5##535!535#!!!5335#5!3##5#5355333!5#53!!5!5353ôÈdÈdddþd,þÔ,Èdddd,,ÈdÈddddddÈ,ÈÈý¨È,È,þÔdddôdddddd,û´,þÔ¼,þÔý¨dd¼dþdþÔddddÈþddèþÔþÔÈdôþp,þÔüàdd„ddýDdd����	����°°���������#�p�²��+²333°
ͱ22²��+°Í°$/°Ö°Í°±+°2°Í°Í°±+°Í°±+°Í°± +°#ͱ%+±±99±±99�0153#5!'353'3535353'3ddd,ÈdÈddÈddÈdÈÈèûPddÈèüÈ[[ÈèüÈ[[ÈèüÈ[[Èèü�������°°���)�²��+°/°Í°/°Ö°	ͱ+�±²�99901463!	�2764'&"
-Ú¼þýØSS¼Û
-ýDþãTT������Ý°����1�²��+°3°/°Í°2°/°Ö°	ͱ+�±´�$901463!	�2764'&"%3	'Ú¼þý×TTd¼þ2¼ÛýDþãTT°ýDþ2Â�����d��°°�
-�?�²���+°/°Í°/°�Ö°
-Í°
-±+°ͱ+±
-�²999�±�²9990137!!!d¯dýdî¯üdèdü�����È��L±�
-��3	4&#!"ÈÂÂüà¼þE~�������°°���'�Y�²%��+°Í°
-/°Ͳ
-
-+³@
-�	+°2²
+Œ
 
-+³@	+°2°(/°�Ö°Í°2°±+°2°ͱ)+±³'"$9�0153!73#5!!7.#!"7>3!2#!"&ÈdXdÈÈüà5(P>^
+þø\l
+û‚
+l¤¤L
+ýÉ7
+Úþøþø
+&
+þð
+ýÚ
+€þ”
+
+l¤¤���ÿðÿðºº�	�
����2'7'	à&™

cÖ_"ý™Öfþþ³nº
™&\Ö`þtýšÖfüjpO�������°°���32!546;!¼úüàúþ°ŠýÚ22&&�����Lœ���%6.676.67646p…'0SFOˆ$WOHBý¨XAOˆ$WOHBù£"üÁ7Q)mr	›ý¢*`)nq&*����	ÿø»§��)���2"'#'".4>"2>4&È¶ƒNN;)þíwŽd¶ƒNNƒr°”VV”°”VV§Nƒ¶dyþî%:MNƒ¶È¶ƒ[V”°”VV”°”��d�X¯D���>.54>‰0{xuX6Cy„¨>>§…xC8ZvxyµDH-Sv@9y€²UU²€y9@vS-H���ÿÓ�^{”���62!2'%&7%&63—ƒ¥þª‚þ©þª‚þ¥ aþŸùþoö÷û�ÿÓ�^{”��"��62!2'%&7%&63#7'7#'—ƒ¥þª‚þ©þª‚þ¥óðÅJÁÃJÀêN aþŸùþoö÷ûdŽâ‹ŒåŒÓ������°°�&��2##!"&=467%>="&=46X|°>&	f	
+û‚
+	f	&>°°°|ú.hK
+æ
+]
+
+]
+æ
+Kh.ú|°���
����°L���#�'�+�/�3�7�G�K�O�S�W��!2#!"&54635)"3!2654&33535!3535!35!"3!2654&35!3535!35~
+
+û‚
+Ud£ýÚ
+
+&
+sdüd düd dáýÚ
+
+&
+üïd düd dL
+ûæ
+
+
+ddd
+þ¢
+
+^
+ddÈddddÈddddd
+þ¢
+
+^
+dddddÈdddd������LL���/�?��!2#!"&546)2#!"&546!2#!"&546)2#!"&5462þpmþpý½þpmþpLþpþpý¨þpþp��	����LL���/�?�O�_�o����32+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=462ÈÈ¥ÈÈ¥ÈÈüõÈÈ¥ÈÈ¥ÈÈüõÈÈ¥ÈÈ¥ÈÈLÈÈÈÈÈÈþpÈÈÈÈÈÈþpÈÈÈÈÈÈ�����°L���/�?�O�_��32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462ÈÈ¥¼ýDþ…ÈÈ¥¼ýDþ…ÈÈ¥¼ýDLÈÈÈÈþpÈÈÈÈþpÈÈÈÈ�����&�,è ���	62"'&4?622Ñ;±üñþ€±«Ý;±üð€±«��n�nBB�#��	"'	"/&47	&4?62	62ˆ²þõ²þôþô²þõ²;³þôþô²þõ²²þõ��ÿëÅ™��%�I���2"'#".4>"2>4&3232++"&=#"&=46;546™Ä³‚MN,mþÔwŽb´MMo³˜XX˜³™XXþ¼–
+K
+
+K
+–
+K
+
+K™M‚³byþÕl+MM´Ä³‚MX™³˜XX˜³™#
+K
+–
+K
+
+K
+–
+K
+���ÿëÅ™��%�5���2"'#".4>"2>4&!2#!"&=46™Ä³‚MN,mþÔwŽb´MMo³˜XX˜³™XXþX^
+
+þ¢
+™M‚³byþÕl+MM´Ä³‚MX™³˜XX˜³™‡
+–
+
+–
+������™°��-��32+"&5465".5472>54&&dd§Ò[›ÖêÖ›[Ò§g|rÅèÅr|°þpá¦>þÙ¸uÖ›[[›Öu¸'>¦7ÈxtÅrrÅtxÈ��d��°°���/�?��32+"&54632+"&54632+"&54632+"&=46–
+
+–
+þÞ–
+
+–
+þÞ–
+
+–
+þÞ–
+
+–
+°
+û‚
+
+~
+þp
+ý
+
+î
+þÔ
+þ>
+
+Â
+È
+ú
+
+ú
+������––�G�O��27'#"/&/&'7'&/&54?6?'6776?6"264X!)&1-†=+P˜˜P08†,2&+!)&1-†<,P
——
P/:…-1&+x²~~²~–˜P09†,1&+"(&1,†=,Q——Q09†-0&* !(&0-†=,P˜þ™~±~~±��d��°���!�%�)�-�1��!2!2!5463!546!5#!"&53333333ô,);
+û´
+;),,;)ýD);dddddddd;)d
+KK
+d);dddþÔüà);;) dýD¼ýD¼ýD¼ýD¼����Ñ���62++"&5!+"&5#"&l`
+¯
+ú
+þÔ
+ú
+¯
+j`ý 
+ýÁ
+
+wþ‰
+
+?
+��d��è°����3!#!"&5463#"&=X;),üàRú°þp);ývLþpú���™™���0���2".4>"2>4&3232+"&546ãêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrrþ|2
+¯
+
+ú
+™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ

+þí
+2
+
+^
+����ÿœ��°����)#!3333ýæ)ò)ýæ¯Ñ¢Ðþžàþp°þÔ,þpþÔ,�����d��°°��/��3232"'&6;4632#!"&546;2!546&È¿
þ¹
&
þ¹
¿T2
+
+ûæ
+
+2
+„°þ>þpÂüà
+þ¢
+
+^
+
+¯¯
+���™™���1���2".4>"2>4&3232"'&6;46ãêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrrþ|–
+‰
+
ß
&
ß
+‰™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ

+þíþí
+�����™™���1���2".4>"2>4&%++"&5#"&762ãêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrrþçß
+‰
+–
+‰
+
ß
&™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅþíþí
+
+��������°°��9��!2#!"&'&547>!";2;26?>;26'.áî
+ºû´¹—ýÔ
+W
+–
+&
+ú
+&
+–
+W°
+ýtþW
©Œ
+Èþ>
+˜
+
+˜
+Â���™™���'���2".4>"2>4&&546ãêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrrþ‹ýý™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ]¾$¾���™°�(��76#!"&?&#"2>53".4>32³‡
+þ–…mtÅrrÅèÅr–[›ÖêÖ›[[›ÖuÀ$‡þ–
+…LrÅèÅrrÅtuÖ›[[›ÖêÖ›[������™°��5��76#!"&?&#"#4>323#"'&5463!232>³‡þ—†ntÅr–[›ÖuÀë–[›ÖuÀœ†h
+…n‚tÅr$‡þ—†KrÅtuÖ›[ý¿uÖ›[v†
+h…LrÅ���
+�d��°°���/�?�O�_�o���Ÿ��!2#!"&546!"3!2654&32+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=4632+"&=463!2#!"&=46}
+
+ûæ
+Àü®
+
+R
+ý2
+
+2
+ÒÂ
+
+þ>
+¾2
+
+2
+ÒÂ
+
 þ>
-B&
-ô
+¾2
+
+2
+ÒÂ
+
+þ>
+¾2
+
+2
+ÒÂ
+
+þ>
+°
+û‚
+
+~
+È
+ü®
+
+R
+d
+2
+
+2
+
+2
+
+2
+È
+2
+
+2
+
+2
+
+2
+È
+2
+
+2
+
+2
+
+2
+È
+2
+
+2
+
+2
+
+2
+��������L°��#��54&#!"#"3!2654&#!546;2„uSþÔRvd);;)„);;)ý¨È ÈSuvRÈ;)ý¨);;)X);––��d��LL�	�7��32#462#".'.#"#"'&5>763276}2
+dÀ!C@1?*'),GUKx;(.9)-EgPL
+ûÍ3
+0þ[;P$

9¶7WW������°—�!�1�A���2+"&54. +"&54>32+"&546!32+"&546äèÞ£c
+2
+äþúä
+2
+c£*  `  —c£ÞtþÔ
+
+,ÑrrÑþÔ
+
+,tÞ£ýÀþ4Ìþ4Ì�������ÓGÝ��9��%6'%&+"&546;2762"/"/&4?'&4?62A		þþú
+
+úXx"xx"xx"ww".¬
+ý
+¬
+^
+„x"xx"ww"xx"�������ÓrÝ��/��%6'%&+"&546;2%3"/.7654'&6?6A		þþú
+
+úÒ
+`Z	HN.¬
+ý
+¬
+^
+d	¡š	g~„j�������Äbì��1�K��3#"/.7654&'&6?6%6'%&+"&546;2%3"/.7654'&6?6LJD@
+	*o;7	*ý‚		þþú
+
+úÒ
+`Z	HNì	³ÙiËT	"–²Z¬G	!¾¬
+ý
+¬
+^
+d	¡š	g~„j����
����°°�	����!�%�-�;�?�C�G�K�O��3#!#!#3!##5!!!!#53#533!3533##5#535#5!!#53#53#53!5!ôddþpdô¼ÈÈþÔÈdXû´,,üàdd¼ddýDÈþÈdôÈdÈddÈ,ýD,ddd„ddþddôþÔ,„dddXþdÈ,,ÈdþÔ,þÔ,ÈdddþþôdþÔddddÈdÈþÔ,ÈdddþÔddd����	����°°���������#��7#3#3#3#3#3!5!#53#53#53dddÈddÈÈÈdd,ÈÈüàþÔ,ÈddÈdd,ÈÈÈèüèüèüèüèûPdd[[[[[�����
+¦°�
���	"'463&"26ôªþ0ýV
+C;S;;S;°ýVþ0ªÛ
+Í;;T;;�������
+Ò°�
��!��	"'463!"/	&"26ôªþ0ýV
+ªþ08¨ýDþÓ;S;;S;°ýVþ0ªÛ
+ýVþ08ª¼Í;;T;;�����d��°°�&��!2&54&#!"3!2#!"&54?6,9K@
+
+ýD@
+¼
+
+ü®
+‹°Kü|@
+¶
+@
+
+üJ
+
+Ï‹����ÈÿÿL°�
+��!2	46ú þ>þ>°û‚¼þC��������°°��E�U��!"3!26?6'.#"#!"&/.+";26=463!2;2654&!"3!26/.6þDN9
+Â
+>SV–
+N
+ýÚ
+N
+–
+
+–
+
+î
+
+–
+þ±þ
 &
-ý¨
-d¼ÈÈýDÈÈÙ||Zû˜
+X
+&°
+þÓl		l-
+þp
	œ	

	œ	

+ýv
+
+–
+
+–
+
+Š
+ý¨
+˜
 
 ˜
-������d°L��%�-�1�o�°/°%Í°)/°-Í°!/°Í°2/°�Ö°Ͳ�
-+³@/	+°±'+°+ͱ3+±�°9±+'³!$% $9�±-)³"#$9°!±.199°´/0$90153!2654&+.+"#"�462"264&"%53;)è);;)–37S*È)R:.–);dÈÈ>X>>XXdÈ);;)X);E5+);;;)þpȐÈ X>>X>^dd��5��°¯��"��²���+°
3°Ͳ222°#/±$+�013!5".?!#!5&'./#5m)>$\‡R+5¡"(þ]þq*k².tB6,êÞ-WBB*.
æü0ÇÉŒþÃ��d��ð� �)�1�e�² ��+°!Ͳ ��+°Í°)/°*Í°1/°
Í°
°Í°2/°Ö°!Í°*2°!±.+°Í°% Ö°ͱ3+±%.°9�±)!°9°*°9°1°90135>54.'52#'32654&+532654&#d);	$×xº!"E4+v¦OÈ¡Y€}^Ÿ‹Ll¨›Y3(;
G°Œ7]7(3AvFT‘MÈaTZd{MRa�����È��o°�� �²���+°Í°2°/°3°Í°/±+�0135>76&'.'5!ÈMs­
-(G	©!:"€
-0G9C/Q8$99#'%üÇ4<9�ÿµ��°�	�%�~�²��+°/²333°Ͳ
-+³@	+°
-2°&/°Ö°Í°±
-+°%Í°%±+°Ͳ
-+³@	+²
-+³@	+°±+°ͱ'+±
-±99�±°	9°°901'3#7#33!3#4.+!57#"KKK}}KK}ú–¼–2.!"ÈdþpdÈ"!/È §§üà§c,þÔ'	ü®2dd2R	'����!ÿ¶±�	�%�‰�²��+°Í°/°3°Ͳ
-+³@
-	+°2°&/°
-Ö°%Í°%±+°Ͳ
-+³@	+²
-+³@	+°±+°ͱ'+±%³	$9±³$9�±±�99°²99901?!55!3!3#4.+!57#"!§ §§üàd–¼–2/!"ÈdþpdÈ"!.3}KK}}KKÏ,þÔ'	ýv2dd2Š	'��������°L���/�?��53!26=4&#!"53!26=4&#!"53!26=4&#!"53!26=4&#!"Lû´ üàèüXý¨2dÈdÈdÈd�����°L���/�?��53!26=4&#!"3!26=4&#!"3!26=4&#!"3!26=4&#!"Lû´Lû´È¼ýD¼ýD2dôdþpdôd�����°L���/�?�&�²
��+°Í°-/°$Í°/°Í°=/°4Í°@/±A+�01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&Lû´dèüÈ üàÈXý¨2ddlddþèddldd�����°L���/�?�&�²
��+°Í°/°Í°-/°$Í°=/°4Í°@/±A+�01=463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&Lû´Lû´Lû´Lû´2dd@dd@dd@dd��������°L���/�?�O�_�o��R�²
��+°L3°Í°D2°/°\3°Í°T2°-/°l3°$Í°d2°=/°|3°4Í°t2°€/°�Ö² 0222°	Ͳ(8222±+�01=46;2+"&546;2+"&546;2+"&546;2+"&5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&dddddddd, üà üà üà üà2dd@dd@dd@ddüdd@dd@dd@dd��ÿ›��°L��
-��*�:�J� �°�/°&3°Í°.2°K/±L+�±�°90153553#3!26=4&#!"53!26=4&#!"53!26=4&#!"5;26=4&+"eɦ¦ÈddÈXý¨,þÔôþddôdK}}KþLûædÈdÈdÈd�������L���/�?�C�J��²@��+°K/°@Ö°CͱL+�0173!26=4&#!"53!26=4&#!"53!26=4&#!"5;26=4&+"3535#5Xý¨,þÔôþdd d!§ÈÈ2dÈdÈdÈdûæLû´&}KdK����È°è���-�°
/°Í°Í°/°�Ö°	ͱ+±	�°9�±
±9901463!2#!"&	,î,,ý,„,Š,,ýv,,d,ý¨������°L����Y�²
��+°/°Í°/°Í° /°�Ö°Í°±+°Í°±+°	ͱ!+±°9°±99�±
²999°°9015463!2#!"&?'!462"Xû¨d÷*J%ìülNpNNp,ôüí¶ƒœ>þàôþÎpNNpN��”ÿó½���=�²
��+°/°Í°/°�Ö°Í°±+°ͱ +±±
99�±
²�999014>32.'&73264&"”yÑz{ÐyII»99
-"c]s+?—jk——Ö–é|ׁ~Õö•röBB	"ko K‹–k——Ö–—����¯¯���I�²
��+°Í°/°Í°/°Ö°Í°±+°	ͱ+±±
99°	±99�±³	�$9014>2".3"_ ÞôÞ __ ÞôÞ Mû°°ÞôÞ __ ÞôÞ __ 	þžúV��u�ß��%��4>7.77.'&6?uDmssIOWM?%N~šOrÀ~[[.
-		\7–^¸¡Å`Gvwsu†EY™d;^¸~RlbJ(I43n–�������Åh��!�&�W�²��+°Í°/°Í°'/°�Ö°Í°±+°ͱ(+±³ $9°±"99�±³!$9°³ "#%$901463!"3!26=7#!"&%7'	7/ë¥nºþÉ);;)ô);Èë¥þԥ봡œrþkùqq\,¥ëº;)þ);;)}Èá¥ëëj2œqþkøqqU��������•L��.�H�²��+°Í°"/°'Í°	/°Í°°Í°//°�Ö°
ͱ0+�±"²$999±	°%9±°&901463!#"3!2657#!"&>	"륅U‘);;)ô);Èë¥þÔ¥ë§gg_hþ™HCVC9,¥ëP X;)þ);;)™5¥ëë!&4	ÑD>Ø3Cm��������¨L��#�R�²��+°Í°	/°Í°$/°�Ö°
Í°
±+°ͱ%+±
³"$9°°!9�±	³"#$9°± !9901463!2!"3!26=7#!"&	''ë¥,=B²þ£);;)ô);Èë¥þÔ¥ëV7‰þR’,¥ë±;)þ);;)EÈ©¥ëëþä7‰þQ“�����°±��E�²��+°/°3°Í°	2°/°Ö°2°Í°2±+±±99�±±
99°±�990135#	#35	5#3	35#,ÈÈ,'ÃÈ,þÔÈÃþÙþÔÈÈ[(ÆÈ,þÔÈÆþØþÔÆÈþÔ,ÈÆ�����È��„L���²��+°3°/°�Ö°
Í°2±+�01746;2+"&Èdôþd2èþKçû´èþJ�������°L���²��+±
33°/°�Ö°Í°2±+�01546;2+"&dôôþþd2èþKçþçû´èþèþJ���ˆ��°L���²��+°3°/±+�01ˆ4ôþ&&þçû´èþ����È��LL���3	È„ü|&&����È�d„è����7;2654&+";2654&+"ÈÈȐÈÈ– üà ����È�dLè���73!2654&#!"È üà– �������(L���²���+°3°/±+�011	ô4ýÌLþçýÚýÚè������°L���²���+±33°/°Ö°2°
ͱ+�01146;2+"&5ôôddþLþçþµü¶þè��,��èL���²���+°3°/°Ö°2°ͱ+�01!46;2+"&5,ôddLþµü¶���d�È°(����°
/°Í°/±+�0175463!2#!"&!dèüLýÚúdd4��¹�ù©���7	'¹PðþŸaðWý°ðaað��ÿÒRt���%	7aþŸñ<ý°ÂaaðýÅý±������­­���B�°
-/°Í°/°Í°/°Ö°Í°±+°ͱ+±³	
-$9�±³�$901$  $33535#5## D  þíþ¼þí‰ÈÈÈÈÈȶD  þíþ¼þí  QÈÈÈÈÈ���­­���I�°
-/°Í°/°Í°/°Ö°Í°±
+°ͱ+±
³	
-$9�±
-±�99±±9901$  $!5! D  þíþ¼þí‰Xý¨¶D  þíþ¼þí  QÈ������­­���2�°
-/°Í°Í°/°Ö°Í°ͱ+±±99�±
-±
9901$  $77'7'' D  þíþ¼þíSՍÕŽŽÕÔ¶D  þíþ¼þí  (ÕŽŽÕÔŽÕ����­­���2�°
-/°Í°Í°/°Ö°Í°ͱ+±±99�±
-±
9901$  $	'' D  þíþ¼þík›¯ìf¶D  þíþ¼þí  „þë›®ìf������­­��8�<�l�°
-/°9Í°</°'Í°!/°Í°4/°Í°=/°Ö°Í°±.+°ͱ>+±±!499°.´	(:;$9�±'<±�99°!°*9°².999°4±9901$  $32264>:323>54.#"35# D  þíþ¼þíɏ	'È-"#1D12QE&ˆÈȶD  þíþ¼þí  
-=&
-)2X23L(5`þ.d���­­����;�°
-/°Í°/°3°Í°/°Í°/°Í°/±+�±±�99±±9901$  $7!5#!3#35# D  þíþ¼þíídþÔdddÈȶD  þíþ¼þí  ‰d,dȐd������°°��/�i�²��+°/°Í°2°�/²!333°Ͳ#-222°0/°Ö²)222°Ͳ'222±1+±³"#./$9�±°9±�°9°²()9990153>7533##5.'35367#53.'#53Ç‹È6vkËË·YÈŒˆ`oKÈ•4ÉÈeJÈKnÑôÈ}•ÈÈPƒEÈf¨!ÅÅ—}ImÎÎ0žÈJjÌËlHÈ������¬¬����F�°
-/°Í°/°Í° /°Ö°
Í°
±+°ͱ!+±
µ	
-$9�±µ�$901$  $ 6& 7'77' D  þîþ¼þîóVóóþªI‡‡m‡‡m‡‡m‡‡¶D  þîþ¼þî  _þªóóVóýÛ‡‡m‡‡m‡‡m‡‡�����¬¬����F�°
-/°Í°/°Í°/°Ö°
Í°
±+°ͱ+±
µ	
-$9�±µ�$901$  $ 6& 77 D  þîþ¼þîóVóóþªkWÌŽþ¦¶D  þîþ¼þî  _þªóóVóþ#WÍŽþ§�����¬¬����F�°
-/°Í°/°Í°/°Ö°Í°±+°ͱ+±µ	
-$9�±µ�$901$  $&#"32654' D  þîþ¼þî>8dt«óÍap«ó;¶D  þîþ¼þî  ´sd7>óýò;ó«pa�������c°è���°/°Í°/±+�±°�901!!XXý¨#ÅþÔþÔþÓ�����c°è���°�/°Í°/±+�±�°901!	XXý¨,,þ;þ@-�����Ì��J°���²��+°/°Ö°ͱ+±°9�01	!!̼þÖþÔXXý¨ý¨X���h��æ°���²��+°/°Ö°ͱ+±°9�01!!!h(,*þ?XXý¨ý¨�������Ç°L�
��5>7	F‰çœXý¨_°¤‚È„Õ­gþ;þ@-$Du������°°��
��²���+°/±+�011!&ŽþځëŽ&þp&Žþځ	Ž&��"�#ŽŽ��
��7'!'	"'þÙ¨'Žþف°'þp‚þÙ5'þÙ‚���™™���#�O�°
/° Í°#/°Í°/°Í°$/°Ö°Í°±+°	ͱ%+±µ
!#$9�±#±	�99°±99014>2".;2676&+"35#[›ÕìÕ›[[›ÕìÕ›V:#6#:Ï0ÈÈâìÕ›[[›ÕìÕ›[[›FþÒ.ýÅd������°°�&�*�0�4�;�4�²'��+°13°*Í°22°</°1Ö°2°4Í°2±=+±41´5:$9�013!3!535#64&/.#"&/&#"#!!"6?!7#dÈdo"=' ïî!'=
-#odþpd"ÕېþÊ  È,þÔÈd¬'0
.&±
-ü|ô`0/¿ü|þp„Å)W9���ÿ꯰��2��²���+°3/°'Ö°ͱ4+�0157.>7>7.#676%>7>'&"Ø	8./ieš‰èh,Jhqƒx{\Sc'C78Fak[)!#==þYÁ5<€b‚;<U3-9½þÌЛU3	7
SB¨&?_€T2	3s  ÅÌ���o�Dç�H�#�°I/°Ö°EÍ°E±<+±J+±<E±:699�01>7>'>7>76''&'.7.7o	FFB:8( OV
-	$9DkC@&¥¤'GOS3
*gJ.&:4?¹B8-
-%>=Bí'P¨d!I, =CnC¬Sm,UŸ!†Ù•fm§S;4(
-.MV .n��ÿÃ�}í3�!�?�G�C�°/°)Í°:/°	Í°H/°<Ö°7ͱI+±7<@
-	)(5>@C$9�±	:·�$.5>BG$9017>2".'72>7.'"&5477./=FOsv““vsOFFOsv““vsOF›C-[Tz€wRY,H7:91°ø°.f…1ii%LX(
-(WT`G//G`TW(
-((
-(WT`G//G`TW(
-(
-`=^8+(3\;hI%E:JY|°°|UIWs|Ci`$$���ÿÃ��í°�� �)�A�¡�²��+°3°B/±C+°6º=ïïÝ�+
-°.°À±ù°
À°³+³+³+³+³$+³%+² Š Š#9°9°9°$9°%9°9�·
$%........@
-
$%..........°@�017>3273#7.'77.547?./7>7&'7=FOsv“H=<%”þÆ”%R¦ri'
-›Ò·%k.f…1i/:(&-/"0/a+'C.
%Ze“X(
-(WT`G/ŽûPegy8(þæ6§nUIWs|C/WRý§‘&2&?@0’6@((4kbf���ÿž��¬�����&3!26'.7	!5#5#o%%ý~8ý~õ½½þ§ÈddÈDDG  " ûÖdÓý-ddþÔ,d�����d�°°�)�H�°/°	Í°*/°%Ö°2°Í°2²%
-+³@	+²%
-+³@%#	+±++±%±99�±	±%99015467462'%/#&=47&dkX|Xkþ™d^Þ^dþ™)1ES>XX>þ­þ»1)
ùþù[@	NN	@[ù
�����L°�	���#�'�+�/�3�7�;�?�C�G�K�O�S�W��53!265!5!54&+5#!5##"53'53'5353'53'5353'53'5353'53'5353'53'53èû´L–dþd–dddddddddddddddddddddddddddddd2îd–ddddüJddÈddÈddþpddÈddÈddþpddÈddÈddþpddÈddÈddþpddÈddÈdd�����x®�
-���A�°�/°3°Í°2°/°3°Í°2°/±+�±�±99°³
$9°±9901=!35	5#	!7'!735	5#Xñ,þÔŸý¨þ«zµþ«¦zŸ,þÔñÈÈXÆþÙþÔÅý¨XzŽ´ý•Ž{ÆþÙþÔÅ������°L���²��+°/°3°Í°/±+�01463!2#!#"&;)è);;)ý¬þÐd);X);;)ý¨);þÔ,;���d��L°�%�)�-�`�²��+°	Ͳ	
-+³@		+°2°&/°*3°'Í°+2°./°�Ö°&2°Í°(2°±+°*2°Í°,2±/+±�°$9°±99°°9�015!32>'4=!".!!!d,U'5%;),'MeÀeM',,XÈúq \#(,.úÈ*R~jqP33Pqj~RV,þÔ,þÔ����ÿâ�¸hÞ���	7ã`aâý¾›ãaþŸãC���F�ÚÌ����	'	FDBâþŸþ ý½CãþŸa����ÿ:�dvè���(�°/°Í°/°Ö°ͱ+±°9�±°901	#!!!#	#Æ+,ˁ×üà”×}Æ++ȼþåþpÈX,ÈþpþåX������ª°�2�F�²"��+°3°,Í°,°&ͱ22°//°Í°/°	Í°3/°$Ö°Í°±+°ͱ4+±°-9�01&763!7>;2++"&=!"&=#"&5463!7!"&'€&^6É*þÔ*20ý‡ -«¢*ü?
2222È*��������°L��� �²���+°Í°/°Í°
2°	Í°/±+�011!53463!2!°ûPÈ;),);ô üà„d);;)d�������ÝL���(�²���+°Í°/°
Í°2°	Í°/±+�±�°9013!	3463!2!!,°þÔûPÈ;),);ôü¼ýDX);;)È���.��‚°�	�!�²	��+°
-/°Ö°ͱ+±±	99�013#	#3.ÆÆ**ÆÆþÖ,X,þÔý¨þÔ������/°‚�	��°/°Í°
-/±+�±±�9901!5	5!,X,þÔý¨X*ÆÆþÖþ×ÅÅ�������°°����!�I�²��+°Í°2°/° 3°Í°/°Í°"/°Ö°Í°±+°	Ͳ	
-+³@�	+±#+±	°9�01=463!2#!"&>3!235#35#;)è);;)ü);¬$ %¬þddÈdddd);;)d);;Uã'-ý$þÔddd���ÿ›�d°L��)�7�&�°8/°�Ö°Í°±*+°2ͱ9+±*±99�01546?.5<>;%%##"+"&'4632#"&e2"ÉÈ£ý]&/
-S7èX22

ú!Uú
-úü®ÈþìQþâRü®���J��f°�+�3�5�²/��+°3Í°)/°3°Í°2²)
-+³@)%	+°4/±5+�±)3±,1990146;7>7'&6;232#"&/.267"Ju?zS^Sz?vdjŸO}ñ::§8F80l^­GM~ $Mþ¹­())Ü1==1����œœ���777'7'7'7'''éNà-››-àNê´´êNà-››-àNé³½-àNé³³éNà-›œ,áNé´´éNá,œ�����d°°��"�.��°//°(Ö°ͱ0+±(°9�0153#;;276=4&#!6=4&+"?3!#'ÈÈ,d=|ú.%î='þ¸='20`‘d–d22ÂúÖˆÈXýóKd9X+d,Qv–,Q(ÆÄ%þ‰wÕÔ¯á}þ‰d��������°L��"�.�p�²��+°%Í°/°�3°(Í°./°Í°2°,/°
-Í°//°�Ö°Í°±+°#Í°#±&+°Í°±)+°ͱ0+±&#²(,999°°9°)°+9�±.°*901374;6;2#!+"&/&735'!5##Èdd=|ú.%î='þ¸='20`‘d–d22ÂúÖˆdXý¨}Kd9þ¨+d,Qv–,Q(ÆÄ%ÔÕ¯á}wd�����dU��"�A�y�° /°$Í°/°)Í°1/°Í°2²1
-+³@1�	+°B/°�Ö°Í°±+°#Í°#±-+°Ͳ-
-+³@-<	+±C+±-#´?$9�±$°#9°)°9±1²<A9990173746?%632!2+#!"&7!>;2654&#!*.'&54?'ÈdjmU.UkmTk‚þ«¦dd%ƒËþ7	
-“Vþ­ÈXý¨K
%
-	æpyLNþ­'¢YS(
·Sì���ÿ›�e°V��8�<�y�°/°$Í°/°Í°8/°Í°:2²8
-+³@89	+°=/°Ö°Ͳ
-+³@,	+°±&+°Í°±9+°<ͱ>+±&´)$9�±$°&9°°�9±8²',99901463'&54?632#!"&'#"'32!7%*#!3elU.Um
m!¬þ«‚kT
-Þƒ%kþ©W‘
-	þ$éÈCLy
qæ
'ýò
¡(Sd)þ­YöíS¸	þXý¨�����a��L��6�:�G�²7��+°8Í°;/°Ö°72°)Ͳ)
-+³@):	+°32°)±/+°ͱ<+±)±699±/°9�013!2654&'%54&"'&77><546!5!aæ
'

¢(þ­NLy%p[S·22(SYþ	XÏþ•¦VƒjTnkUþÒT
nV’
	ÈÊ‚þÚdþpÈÈ������
-í��4�8�E�°5/°6Í°9/°
-Ö°52°+Ͳ+
+�������d°L��!�)�1��3232#!"&546;>35"264$2"&4ôÈ8]4$–);;)ü);;)–	'3]ÈdþϾ‡‡¾‡þïV<<V<L);;;)ý¨);;)X);E5+þÔddF‡¾‡‡¾<V<<V�����5��°¯� �#��	!526/!3!567>?!©(%	
+þ_5,Rþy:"	*2þ“8¬T¢¯ü2*BBW-Þ‘Y".BB%

îýZÉ�����d��ð°�'�2�;��#!5>54.'52%32654.+32654&+ñ50;*7Xml0þ);!×9uc>--þ‹Ni*S>vØPR}^Ÿ3:R.CuN7Y3(;	G)IsC3[:+	1aJ);4ü®ePZ���È��o°���!56764.'&'5mSB„	,Jþº­
°95(ü¹1(aaR@	9����ÿµ��°�%�/��#4.+!52>5#"#!#3'3#72&È2þp"È&2èû›KK}}KK}„ ü®dd	R ,Èü১ §��!ÿµ°�%�/��#4.+!52>5#"#!5!'7!5L2&È2þp"È&2èC§ü১ „ ývdd	Š ,û‚}KK}}KK�����°L���/�?��!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462Xý¨èü üàLû´LddþÔddþÔddþÔdd�����°L���/�?��!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=46ú¼ýD³Lû´Ý¼ýD³Lû´LddþÔddþÔddþÔdd�����°L���/�?��5463!2#!"&5463!2#!"&5463!2#!"&5463!2#!"&ôXý¨þpèüÈ üàþÔLû´¶ddþéddþéddþédd������°L���/�?��!2#!"&=46!2#!"&=46!2#!"&=46!2#!"&=462Lû´Lû´Lû´Lû´LddþÔddþÔddþÔdd�����°L���/�?�O�_�o���32+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=4632+"&=46)2#!"&=462ddA üàþéddA üàþéddA üàþéddA üàLddddþÔddddþÔddddþÔdddd��ÿœ��°L���#�*�:�J��!#;2+"&=46!2#!"&=465#535!2#!"&=46!2#!"&=46dd–ddôþþú§ÈÈÂ,þÔXý¨LddþÔddú}KdK¯ddþÔdd�������L���#�*�:�J��32+"&=46#3!2#!"&=463#'7!2#!"&=46!2#!"&=462ddgddü®ôþ/Èȧ§ûæ,þÔXý¨Lddû´LþÔddÈdK}}¯ddþÔdd�������È°è����!2#!"&546	Kî,,ý,,„þÔ,è,ýv,,Š,ýD,,�����°L�����!2#!"&5467'2"&4,Xû¨J÷*J%ìüÒpNNpNLüôdý¶ƒœ>þàôtNoOOo�����Û�6‘����2.'&54>"264ˆuÆsFE²66	!^Xm)<DsŸ··‚‚·‚‘xÊusmé?>!fh˜H„uX£yH¸¸�����™™�����2".4>"ãêÖ›[[›ÖêÖ›[[›KtÅrrÅ™[›ÖêÖ›[[›ÖêÖ›üoVrÅèÅr���u�ß��5��.54>6?6&'.'&76#&*IOWN>%3Vp}?T›|J$?LWPI¼)(!1		) Huwsu‡EG€^F&:c—YE‡vsxvýþ!K‚:%A'#"
+A)Y¶�������Ël��*�/��7>%!2!"3!26=7#!"&546	7èl
+lý27»þ);;)ô);È»£þp¥¹¹8þ–¡7cõs*
+sÈ
»;)þ);;)¶Èþ´¥¹¹¥¥¹þ×þ–2ªc�����“L��6��!#"3!2657#!"&546&'5&>75>^i¤4Ã);;)ô);ȹ¥þp¥¹¹Sþ¬9dTX
+.9I@F*L’6;)þ);;)™g¥¹¹¥¥¹þÓþÎ	Ë
0!;bA4Ò
+��������L��5��!2!"3!26=7#!"&546	62"/&4?622^^<C²þ£);;)ô);ȹ¥þp¥¹¹Ê‹eýíøeoL±;)þ);;)EÈÛ¥¹¹¥¥¹þ3‹eýìøeo����
+�
+¦¦�;��	62+3546&=#32"'&6;5#'&47635#"&>
+ªÈ
+þø
+Ȫ
+þüþø
+¯È
+þø
+ȯ
+–þø
+È­
+þüþ÷
+­È
+þø
+È­
+	
+­È
+��È��„L���326'+"&546údÐþ0dLþJÅüÅþJè�������°L�#��3266''+"&5462dÐÐþ0þ0dLþJÅþJÅüÅþJÅþJè�����°3���''&4766°þ0þìÐüÅþJà*àþJÅ����È�36���&546ó.üÒ2þþè��È�d„è����32+"&546!32+"&546úÈÈ¥ÈÈèüà üà ���È�dLè���#!"&5463!2Lüà ¶üà �������3���46&5&546ôìþþ0d¶þ *þ ¶þ;è��ÿþ�³O�#��72#"&5&5&5464646ddþ1þ2ÒÒNüµþ:	µþ9	è	þ>¶	þ=¶��,��èL���32+"&5&54646Rddþ0ÐLü¶þ;èþ;¶���d�È°H����	#!"&762!2#!"&=46®õ	ûî	õ*ý÷èü9ýäýHdd��ˆÿüuJ���		uþ `ÅýØ(„þŸþŸÆ(&����;ÿü(J���	'	7(ýÙÆaþŸÆ#ýÙÆaaÆ���™™��3���2".4>#"#";;26=326=4&+54&ãêÖ›[[›ÖêÖ›[[›}d––d––™[›ÖêÖ›[[›ÖêÖ›º–d––d–������™™�����2".4>!"3!26=4&ãêÖ›[[›ÖêÖ›[[›Eþô™[›ÖêÖ›[[›ÖêÖ›þ~dd���™™��3���2".4>"'&"2?2?64/764/ãêÖ›[[›ÖêÖ›[[›å	xx				xx				xx				xx		™[›ÖêÖ›[[›ÖêÖ›­	xx				xx				xx				xx		���™™��$���2".4>'&"2764/&"ãêÖ›[[›ÖêÖ›[[›T‹òw‹™[›ÖêÖ›[[›ÖêÖ›þ1U‹ñw‹������™™��;�K���2".4>";7>32";2>54.#";26=4&ãêÖ›[[›ÖêÖ›[[›?<B2!ƒ
­(#"3D<:–
+
+–
+™[›ÖêÖ›[[›ÖêÖ›‘/O2*(8\6/H*	ýã
+–
+
+–
+����™™���>���2".4>#";26=4&#";#"3!26=4&+4&ãêÖ›[[›ÖêÖ›[[›––
+
+–
+
+ú
+
+KK
+
+^
+
+K™[›ÖêÖ›[[›ÖêÖ›V
+–
+
+–
+þÔ
+2
+È
+2
+
+2
+
+�����°°�/�_��3232++"&=.'#"&=46;>7546+"&=32+546;2>7#"&=46;.
–
+g—Â
+
+—g
+–
+g—Â
+
+—g¹
+–
+Df¨
+
+¨fD
+–
+Df¨
+
+¨f°
+—g
+–
+g—Â
+
+—g
+–
+g—Â
+þͨ
+
+¨fD
+–
+Df¨
+
+¨fD
+–
+Df���™™���?���2".4>"2>4&"/"/&4?'&4?62762ãêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrrš@||@||@||@||™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅZ@||@||@||@||�����™™���0���2".4>"2>4&"/&4?62762ãêÖ›[[›ÖêÖ›[[›¿èÅrrÅèÅrrƒjþÀÊjOÅ™[›ÖêÖ›[[›ÖêÖ›;rÅèÅrrÅèÅ}jþ¿ËjOÅ�����™™���!���2".4>"&32>54ãêÖ›[[›ÖêÖ›[[›KtÅrAKiõý¸hstÅr™[›ÖêÖ›[[›ÖêÖ›;rÅtxiKAÐý¸>rÅts������S°ù���6!2#!'&4'
+&ýÚýöF«
+þÝÈþÝ
+
«
&�������S™ù���	&5!"&=463!46
+ýöýÚ&ñþU
&
þU
+#È#
+����·��]™���	#!+"&5!"&762ª«
+þÝÈþÝ
+
«
&‰ýöýÚ&
+����·�]°���32!2"'&63!46&È#
+
þU
&
þU
+#°ýÚýö
+&�����·™]���	&5>746
+ýö^°¥$,[‡Ç~UþU
&
þU
+#$DuMi±qF
+�����°°��+��!2/"/&4?'&6!"&546762R,^ùjù^þ!þÔ^ùjù^°þÔ^ùjù^ûP,^ùjù^����I�Igg��+��#!"&546762!2/"/&4?'&6öjù^þÔ^ùý,^ùjù^`jù^,^ùýñþÔ^ùjù^������™™���/���2".4>#";2676&#";26=4&ãêÖ›[[›ÖêÖ›[[›³Ð:#6#:1–
+
+–
+™[›ÖêÖ›[[›ÖêÖ›ºþÒ.þ
+–
+
+–
+��������°°�I�U�a�h�o��276?67632;2+"!#!54&+"&=46;2654?67>;26/.'&;26!"&5)#!	Ä&Ä0


+=
+
+2
+þpÈþp
+2
+
+=	¦
+Û
+
+3þ5±3
 
-+³@+8	+°!2°+±'+°ͱ:+±+
-±99±'°
9�01?26=%>54&#!"!&5<.'&5!p
&yMNS)¢
ýó%
+çþ‰
+X
+þ‰°
+
v
	
v
+!{,	
+2
+
+¯,þÔ¯
+
+2
+0€y¢
+
+•
+ª
+
+
+ür
+wþ‰
+�������¯¦�+�I��6.'&&&547>7>'.>7>&67>7>7>-Bla‹bŽD8=3™*U 	:1'Ra\‡{À%&¢=>8\tYR-!Šq[Fak[)¦²þÝÈ•X1™"@&J<7_…?3J5%#/D	&/q!!6ROg58<'([@1%@_U2��]�rÏ�O��.>7'&767>.'&'.'&>77>.'&>'
+'8GB 
+
+	`ŠH 
>JS>H7
'+"	NA
+5M[`/Pg!;('2"&"IbYÏC€e\D9$886#1%)*ƒ‘§—J7gG: 
 8G\au9hªoK$œ]54<<E"5cQ8	
.@AU!U™hQ)����ÿÜ�jÔF��?�Q���2".4>&"&5476&2>76&'&6?6&'&'.¤{nO9:On{¢{nO:9On{°ø°FZ
2Z_ƒˆƒ_Z2Zýÿ#		%8-#,-"F-I\b\I*I\b\I--I\b\I*I\b\IÜ9>|°°|;7Es1$F^D10E^E$1u$/D0
"%,I���ÿÜ��Ô°��'�;�L��!#7.54>327377>76&'&%7.5476&6?'&'.P”[©vY,9On{R=A ”&/l‰'Pj˜R.Mv&6ýQFZ
*HLh5)k|#		%8-,-"xatzbI\b\I-yþRµUÖ4Zrnc­1ˆ?1FrEs1<QA9
š§n;7p$/D0
V,I���ÿž��«���(��'6#!"&%!546;2!32+"&/&6Z‚8‚%úò%
+Y
+–
+YþChÐ:#6#:d*!ûà GD„K
+
+KÓßüü����d�°°�(���2'%/&=47&=4674L|Xkþ™dÍÍdþ™k°X>þ­þ»1)
ùþù]@	€€	@]ù
)1ES>�������L°��'�+�/�3�7�;�?�C�G�K�O�S�W�[�_�c��3232!546;546;2!546#!"&5353353353353353533533533533535335335335335Rd2û´2dôüddddddddddü|dddddddddü|ddddddddd°2––222þpýîÈddddddddddÈddddddddddÈdddddddddd������w—��%�7��&=#!"&=46;3546'#"&=463!&=#'73546oùùŸý¨þÝÑXñý©zÑ#ùùñµzŸæ*æ–ý¨dX–þ˜zdþMæ*æ–µz–�������°L���!2#!#"&546dè);;)ý¬þÐd);;L;)ý¨);þÔ,;)X);����d��L°�	��?��32!546!32!546".5!2>&54=–ÈþÔÑÈþÔ(LfœÀœfL(,
'6B6'°úúúúþpþÔ)IjV\>((>\VjI),ú	+'%!	!%'*ú���ÿÿ�ÔLÂ���	'LÆþŸþŸÅ'›ÇaþŸÇ'����îMÜ���	7	MýÚýÙÆaaýÙ'ÇþŸa����ÿQ�d_è��)��!232"/&6;!%+!!"&5#"&?62”ê–æ*æ–þƒþ斁×ý–æ*èýÙùù‘¸ùþpÈ&ù�����ž°�0��32!2#!!2+"&=!"&=#"&/#"&468^&€d,!ý‡02*þÔ*É6°¢%þ%+È*2222	
+Á*��������°L����!53463!2!!°ûPÈ;),);ýD°ûPèdd);;)Èüà�����ÜL����3463!2!!ÈÈÈ;),*:ô,þÔûP, þpX);;)ÈdýD¼�E��k¯���+32"/&6;#"&?62{æ––æ*æ––æ* ùý§ùùYù����D¯k���&=!/&4?6!546¨ùùý¨ùùX`å)å	——	å)å	••	�������°°�	���!��.#!"!"3!26=4&53353‘¬$ý`$¬-ü);;)è);;þ«dddÜ-(ýd;)d);;)d);Èdddd���ÿœ�d°L��#�1���2"&54%##"+"&'=454>;%".=4>7i**dý]&/T7È£ü"Lü®Rü™ÈþìQú
úþÔú)2(����J��f°�,�5��3232#"./.46;7>7'&6327"&)^Sz?vdjŸO9t\U>/v?zS$24517F8°%Mþ¹­)(
+()­GM~ û¾1==���œœ���7'''7'7'7'77 àNê´´êNà-››-àNê´´êNà-››²Nà-››-àNê´´êNà-››-àNê´´����d°°�!�-�=��32!2+"&/#"&54?>335!7532+"&546Š2(<H(<î,úF=-7‘`
1d–dˆÖúþ>2ývdd°Q,–}Q,d-þ¨!2$'$ÄÆ(dÔÕþ‰dw}á¯þÔþô��������°L� �0�<��32#!+"&/&546;632+"&546!#35'!5Xú,î<(þ¸<(21
`‘7-=|ýédd_ˆd–d22ÂúL!þ¨-d,Qv–,Q(ÆÄ$'$ddþôdþ‰ÕÔ¯á}w����dO��7�G��%6!2+#!"&5467!>;26&#!*.'&?'32+"&546dkn
T.TlnTjƒþª¦:d%ƒËþ8
+	’VýOddiæp
&yLNþ­(¢

%
+Hþ	YS(22·Säþô���ÿœ�d°O��6�F��#!"&'#"&463!'&6?6*#!32!7%32+"&546Ûn
¬þªƒjUmlT.U
nJ’	
+þ%Ý‚&jþªPddOæýó
¢(SNLy&
p®·d(þ­Y÷ìäþô����a��L��7�G���2#!"&/&?>454&/!7%.!2#!"&=46ސNS(¢
ýó%
+	æp
&yÆ22·Sì÷Yþ­(–ôþnTjƒþª¦kn
T.TÖËþ8
+	’Vþ­d%ƒýdd�ÿý�è��-�I��!26=4&#!""&5&/&7>3!2766=467%'^ôþNLy&
pæ

¢(ý‰ìS·22(SYLddüæjTnlT.T
nk¦þªÏþ­V’	
+þ8˃%d���šš��%���2".4>%&!"3!7%64âìÖ›[[›ÖìÖ›[[›†þíþí
+
+š[›ÖìÖ›[[›ÖìÖ›þ9ß
+‰
+–
+‰
+
ß
&����šš��%���2".4>
6=!26=4&#!54&âìÖ›[[›ÖìÖ›[[›%þí
+
+þíš[›ÖìÖ›[[›ÖìÖ›èß
&
ß
+‰
+–
+‰
+�����šš��%���2".4>&";;265326âìÖ›[[›ÖìÖ›[[›Kß
&
ß
+‰
+–
+‰
+š[›ÖìÖ›[[›ÖìÖ›þ@þíþí
+
+����šš��%���2".4>#"#"276&+4&âìÖ›[[›ÖìÖ›[[›—–
+‰
+
ß
&
ß
+‰š[›ÖìÖ›[[›ÖìÖ›»
+þíþí
+����˜˜��–�¦���2".4>%&277>7.'.'"'&65.'6.'&767>'&>7>7&72267.'4>&'?6.'.'>72>äèÕ›\\›ÕèÕ›\\›d+:
+=?1	""/?9
#hu!$
0E.(,3)(
	 	
+*!A7,8
!?*
+
+˜\›ÕèÕ›\\›ÕèÕ›	'"r"v	G
+	.&*
+r$> #1
	
+
% 
*
+	'"	
$g2(	%
+�������¯…���67'"/&47&6ô¤Žþý‘ûPM<†;ý¬+oX"O…\eŠè~Y‡+"ý¬n+WeÉ����`°¬���#�'�7�;��!2#!"&=46#3!2#!"&=46!!!2#!"&=46!!dè);;)ü);;ÈÈüè);;)ü);;þôüè);;)ü);;þÔ,¬;)d);;)d);ddÈ;)d);;)d);ddÈ;)d);;)d);dd����d��L°����!2#!"&46!–„ü|;Èþ¢„°**ýDþÔÈôô������d°°���%��32!2!5#!463!54635#!"&=ôÈ);,);þÈþ;),;)Èô;)ü);°;)d;)þpdd);d);dddýDÈ);;)È�������°°��+�A�W��!2"/&546)2/"/&4?'&6#!"&54676276#!"&?'&4?622,^ÇjÇ^5,^ÇjÇ^þ/jÇ^þÔ^ÇË^þÔ^Çj°^ÇjÇ^,þÔ^ÇjÇ^ý&jÇ^,^ÇÎ^þÔ^Çj�������¨¨���#�;�C�K���2".4>"2>4&$2"&4$2#"'"&546?&542"&4$2"&4ÛòÝŸ__ŸÝòÝ ^^ Æà¿oo¿à¿ooþ--  - L-  73H3)z	þ‡-  - -  - ¨_ŸÝòÝ ^^ ÝòÝŸWo¿à¿oo¿à¿ -!!-  -!
+‘$33$ 1~¤ -  -  -  -�ÿØ�Z¹¼�[��%676&'&#"�3276'.#"&47�7>32#"&'&6767632'."Õ[v_"A0?! þˆ-
	Y7J3$$
þ«)G"#A.,=
#(wn‹kV8@Fv"0DÿG([kPHNg8Bþ*­Ö[eb›2!þ‰5(7>B3$$'þ®)M"#!7)/c#*xn‰fL@9N¾DÿH7!$†W]µBþ$&����d�X¯D��D��>.54>"".#"2>767>54&‰0{xuX6Cy„¨>>§…xC8Zvxy#!?2-*!')-?"CoA23:+1!
"3)@+)?jµDH-Sv@9y€²UU²€y9@vS-H-&65&&56&oM8J41<*.0(@	)*D*2Om��9ÿòw¾��.���2&/7'/&477"/&4?«»BB8"._÷þ{ÔiBBi
+	BBþåBºBBB7._÷…¾BB^*k"5._øþ{ÔjBºBþFi	BºBþåBBB»B77/_ø…�����È��è°������2#!"&54>!�"264ªšd:;)ý¨);<f>XþÿV==V=°.2üG);;)¹3-ªýD¼ý=V==V�����°°���	"/''!'&462†*$þéÔþÌþèË3Ò,#*¡þæ*#þõþÔÒþÍË4Ô$*����'�	à�2�@�K��#.'#5&'.'3'.54>75>4.¼&ER<,Ÿ
3'@"<P7(²›d–W(‹WJ.BN0 2Uh:**&	h)1"37àN,?iB$.,þÍ
-<d>‹ªMOW(kVMbO/9X6FpH*Mþ6&+ÐþÊ	 4C4%����d�f”­�J��2#4.#"3#>36327#".'>7>'#53&'.>761T™^™'<;%T)ñÅ-6"b Œ"S5268 jt&'V7	0$ݦ
+-$a­P‹N(?",9J0*	d2‚>2
+"“"‘

+7Gd/9+DAL!X����ÿÿ—°����32"/&6;3+##"&?62–æ*æ–Èæ–È–æ*,úú„ùü|„ù���ÿÿè°����%��#5##!32"/&6;3353!57#5!èddd,ý¨–æ*æ–È‘dcÈÈþÔÈÈ,¼ddôü|úú„dÈÈýúd–úd�����ÿÿè°���!�%��32"/&6;33!57#5!#5##!35–æ*æ–ÈXÈÈþÔÈÈ,ddd,Çd,úú„–úd–údûPddôdÈÈ����ÿÿL°������32"/&6;3##53#5#!35–æ*æ–ÈXddÈddÈ,Çd,úú„þdûPddÈÈ�����ÿÿL°������32"/&6;3#5#!35##53–æ*æ–ȼdÈ,ÇdddÈ,úú„þddÈÈû´d�����ÿÿ°°�������32"/&6;3#53!5!!5!!5!–æ*æ–ÈôÈÈdþÔ,dþpdþô,úú„ÈÈþÈþÈþÈ��ÿÿ°°�������32"/&6;3!5!!5!!5!#53–æ*æ–È þôdþpdþÔ,dÈÈ,úú„ÈÈþÈþÈþÈ�����LL����!2#!"&546!"3!2654&^¢¼»£þp¥¹¹gþ);;)ô);;L»£þp¥¹¹¥¥¹È;)þ);;)ô);��������LL���+��!2#!"&546!"3!2654&&546^¥¹¹¥þp£»¼dþ);;)ô);;þoýýL¹¥þp¥¹¹¥£»È;)þ);;)ô);‚¾$¾��������LL���+��!2#!"&546!"3!2654&!2"/&6^£»¹¥þp¥¹¹gþ);;)ô);;þ¾$¾L¼¢þp¥¹¹¥£»È;)þ);;)ô);Èýý�������LL���+��!2#!"&546!"3!2654&#!"&?62^¥¹¹¥þp£»¹gþ);;)ô);;þû¾þp¾$L¹¥þp£»¼¢¥¹È;)þ);;)ô);Ïýý��������L��5��!2#!"&=463!2654&#!"&=46&=#"&=46;546&¥¹¹¥þpÂ);;)þ>¿Dþ¼úúL¹¥þp¥¹d;)ô);déþä&þä
+–È–
+���Ù�מ�#��%2"+'&7>?!"'&76�6763	˜,þ÷þó			P''þÒ
+K
»	ž	
+þS#þÊþÅ	ånnV/Ó�������þL��5��!2#!"3!2#!"&546&=#"&=46;546^þ>);;)Âþp¥¹¹ñDþ¼úúLd;)þ);d¹¥¥¹éþä&þä
+–È–
+�����°°��1��!2/"/&47'&6#"3!26=7#!"&5463!îmþÈ)8mþïœ);;)ô);È»£þp¥¹¹¥,°þpmþȍ)8mþÔ;)þ);;)”ÈþÖ¥¹¹¥¥¹����¢¢���#���2".4>"2>4&2"&4áîٝ]]Ùîٝ]]ÃæÂqqÂæÂqqþ{ rr r¢]Ùîٝ]]ÙîٝGqÂæÂqqÂæÂsr rr ������L°���#��3232"'&6;46!2!54635ÂÈõ
+þ'
þ…
	úþ…èû´gd°þ¢þVª^ü|úúd22�������L¬���#��	++"&=#"&7>!2!54635Gz
+ô"Èú'ýùèû´gdžþM úú!¯üúúd22�����LK���"��	62"'&4?62!2!54635Œq‹ýóþÜ‹Ôèû´gdÓq‹ýó#‹ýÒúúd22�����L›�	��#�'��762'&476#"&?'7!2!54635‡Ž*MÔMÒý«КÔþ=èû´gdÿŽMÔL*šÒý©ЛÔý:úúd22�������L°���#�'��/'7'&6"/&4?!2!54635^WЛԛÒÃL*ŽMþúèû´gd°ý«КԚÒýPMŽ*MþXúúd22��ÿì°¯����%	!	°þþÆþq¬ý3«gþq§üùæ¹�������dL°����+!#"&546;!3#53L–ýD–úôdÈddèü®þpèþÔ,ÈÈ�����EÝ°���/��'&"!#"&546;!3#53"/&4?6262LþÕ_		•þÈ–úôdÈdd°jþ\ÊjO)è•þÕ_		“þpèþÔ,ÈÈýÎjþ[ËjO)����
°���>��'.!#"&546;!3#53"/"/&4?'&4?62762Lg†%þöþ·–úôdÈddöFƒƒF)ƒƒ)FƒƒF)ƒƒ)èþóg†þöþpèþÔ,ÈÈýŒF)ƒƒ)FƒƒF)ƒƒ)Fƒƒ�����—°���/��!"!#"&546;!3#533232"/&6;546Lþ¢þ–úôdÈdd–d–æ*æ–èþÔ–þpèþÔ,ÈÈý¨úææú��������—°���/��'&"!#"&546;!3#53++"&=#"&?62L¥*þùþn–úôdÈddëæ–d–æ*èþp¥þ÷þpèþÔ,ÈÈý…åúúå����È°L�	����!2!546#!"&5!52LûP“û´dL––þÔýÚ&þÔÈÈ����}­—����-�1�;��&=!5!546#"&=46;#5376!!/&4#5;2+§øøþpý/22Èddþ‚÷þp÷ddd33æ*æ–È–þ…dÈÈýËæ–È–æ*yÈd�����d��°°��Q��%6+"&5.546%2+"&5.54>323<>3234>^%È"%þá
+È"
+
d	d	1tû®5gD‘
þ>?1)þA¿..@Â

þ¢^

þ¢^
��d��°L�3��"!5265!3!52>54&/5!"!4&#5°"2þpKþKþp"2KôKL8
+üˆ88
%Šþv%
88
+x88
%þvŠ%
8�������LL��� �$�(�4��!2#5'!7!!2#!"&546!55%!5#!!'!73£wiþÙÈþpdwþ%,);;)þÔ);;),¼þpü,¼þ‰dþ‰dÈiè–bbÈdÈ;)þ);;)ô);dÈÈþ÷…£…ÆÈÈføddÈ���ŸŸ�&��767>".'.7¢.‹wfüw3À£
.1LOefx;JwF2ï¢Â1vŽüevˆ/¢ 5Cc;J™|sU@�������°L�#�A���2/.=& &=>2#!"&=46754>ü¸¦ud?,		ʍþÊ
1;ftÊpR&mû´m&L!(("
 
-šì÷Yþ¬(22¸’XIn
U3Í.TlnTjƒV¦þ‚SdþÚ‚ÊÈ
’qÈÈ������°«���:�²��+°Í°/°Í°/°�Ö°ͱ+�±±	99°±�99°±99014>32 $!	_ Ýz¢  þíþ¼þì %,’þnUzÝ _ þìþ¼þí  
-ÉÂ&*Å�����««���8�²��+°Í°/°Í°/°Ö°
-ͱ+�±°9°²
-�999°°9014>32 $7'!7!5_ ÝyzÝ _ þìþ¼þí È’,þÔUzÝ __ Ýz¢þí  ¥þÚÂÉÅ������°«���>�²��+°Í°/°�Ö°Í°±+°	ͱ+±�±99°±99°	±99�014>32 $%333_ Ýz¢  þíþ¼þì 'ÈÈÈþÔUzÝ _ þìþ¼þí  ¥þÔ,�����°«���M�²��+°/°Í°/°�Ö°Í°±+°	ͱ+±�±99°±99°	±99�±²�999014>32 $%	##_ Ýz¢  þíþ¼þì ',,ÈÈUzÝ _ þìþ¼þí  ¥þp,þÔ�������°«��ˆ�˜�š�|�²��+°*Í°O/°Œ/°›/°�Ö°Í°±X+°
-ͱœ+±�°9°X@!#$<JUx„…‰”$9°
-@
-
"&0;Zgv™š$9�±O*·06<FHUW$9°Œ@	
-�Xl…Ž”$9014>32 $277>7.'.'"'&65.'6.'&76746'&67>7&72267.'6'?6.''&%>72>7.73_ ÝzyÝ _ þíþ¼þì ù"T>9.*-hu"#.
F	= .2)((%
-	
-)#?	6/R+>=>1
-"	,$¢UzÝ __ Ýz¢þí  Y!w	F/JG	
-s$>	#/
&
-%	I+
-*		' '
$#
-'"qq$
-U_�������¯…���<7&6767'"/X!N`¤Žþý‘û
¤{‚ý¬+o+WeÉ6\eŠè~¯\F/ý¬n�����`°¬���/�3�7�;�P�°/°4Í°7/°Í°/°0Í°3/°Í°,/°8Í°;/°%Í°</°5Ö±1922°	ͱ(22²5	
-+³@5�	+± 22±=+�01=463!2#!"&5463!2#!"&5463!2#!"&!5!!5!35#;)è);;)ü);;)è);;)ü);;)è);;)ü);XôþÈ,þÔdÈÈÄd);;)d);;¹d);;)d);;¹d);;)d);;þ™dþd¼d���d��L°��	�%�²��+°�/°Í°
-/°Ö°ͱ+�±�°9015!!dèüJ„þ¢ÈLdddþþÔÈô�������d°°�	�!�%�`�°/°Í°
-/°3°ͱ"22°%/°Í°&/°Ö°"Í° 2²"
-+³@	+°�2°"±#+°2°Ͳ#
-+³@	+°2±'+�±
-°901=!#!"&463!546;2!2!5#35#°;)ü);;),;)È);,);þÈÈÈÈÈÈ);;U);d);;)d;)þpddôd��������°°��
����²���+°3°/±+�011777'7!77!77'!'ÈŽÈþpÈŽÈþpَȁþpÈȁÈÈŽÈ ÈŽÈü™ŽÈþpæȁþpÈ������¨¨����)�B�L�Ò�²
-��+°Í°/°J3°Í°E2°(/°93°#Í°42²(#
-+³@(A	+°/°Í°M/°Ö°Í°±+°Í°±!+°&Í°&±*+°>Í°>±C+°Hͳ7HC+°1Í°1/°7Í°H±+°ͱN+±&³
-$9±>*±-<99±71µ	/;$9�±³�$9°³*-<>$9°(±99°#±/;9901$  $ 654& 462#"64632#"46?&54632#"'"&%462#"& D  þîþ¼þîóVóóþªóm.  M   R)z	   73H3 .  ²D  þîþ¼þî  ´¬òò¬«óó‡.  ä,! . º 1~! . 
-‘$33R .  ���ÿØ�;º°�O�:�°/°'Í° /°Í°6/°JÍ°P/±Q+�±'°?9° ´1$9°±239901327>767>'&'&#"67632#"&'&>767>32>'.'&#"0#vF?8!@)'(Š#Z	.A#þ{Ey&$ýÝ4I7Z	0$&\4=k6_v[üýEC8fOESkZ(Gþ�Ö¾N9@1*+,Š#b/W!#þtCu$'$ýÝ4B?#>@$$\475›be[ùÿ�<ÿC´]W†$!7Gþ������P�6ÃX��5�=�°3/°-3°Í°2°6/°�Ö°Í°±*+°
-ͱ7+±*³$9�±3°9014632632'.'.76?>54&#"'&#"PÅ„bgÂ#WCGÅ`+rFBGCW#ª=>@]aRq@C>`9J:vr3H<cƒÅÅƒ.ZlGF¿ƒ:FAFGlZ.VA>Zo\o>FXGaS«®Pc�����9ÿòw¾��3��32764/&''7'&'7'7>54/&#"9BD[]BBBiÔþ{÷_.7BÔBiÔ…÷_/#7BB]_@þåBa_@ŽBBBºB	iÔþ{ø_-87B]B
-iÔ…÷`13#j+]BBBþå@�����È��è°����E�²��+°Í°/°Í°/°Í°/°�Ö°Í°±+°Í°°Í°/±+±²999�0174>2#!"&7!!264&"È<fœªšd:;)ý¨);dXý¨Ä=V==Vd¹2..2üG);;ñ¼üÙV==V=�������°°���²���+°/±+�0117'!'&4762"/'/ÏÒ,#**$þéÔÐ|ÐÔ$*þæ*#þõþÔÒÏ�'�	á�1�=�C�—�°-/°*3°Í°>2²-
-+³@-,	+°;/°3°Ͳ;
-+³@	+°D/°Ö°�2°2Í°Í°2±,+²:222°+Ͳ>222°+±@+°'Í° Ö°ͱE+±2°9°,°	9�±-°)9°;¶�':@C$9°°9013.#.54>753#.'#5&'.654&''‹WJ.BN/!X‚Od&ER<+Ÿ6J@"<P7(²›d˜U(¨*=IêªXR±McO/9X7\‡CNO,?iBHK
þÍ,<e>‹ªMNW(k,;ý+…@G����d�f”­�C��°1/°*Í°�/°3°Í°2°/°Ͳ
-+³@	+°D/°Ö°92°Í°$2²
-+³@	+²
-+³@�	+°±+°ͱE+±³8BC$9°µ *13$9°°,9�±*1±-999°�±,<990153&'.>7632#4.#"3#>36327#"&'>7>'d¦
-	/-a¦Ê™DP$%T)!ñÅ):#b!Œ!L<2)O'*Ò2'V7
-	0$Xd17;V^(X²w4K,9S*3d2‚;6"“B‘

-7G����®°��
��²��+°/°Ö°ͱ+±°9�01	##	##**ÆÈ’**ÆÈ,þÔ,„ü|X,þÔü|„�����è°�����"�¦�²��+°3°
-Ͳ��+°Í°/°ͱ�22°
/°Í°/°Ͳ
-+³@	+°2°"/°Í°2°#/°Ö°Í°±+±
22°
-ͱ22°
-±+± 22°ͱ22³+°Í°/°ͱ$+±°9°°9�±°9°
°901333!5335!##535!#5#735#ÆÈÆþ֐dÈþÔ,cdcÈ,dddd,„ü|þÔÈdddÈddd,ôþddÈÈ����è°�����"� �²��+±
-33°
/°Í°"/°Í°/°Í°Í°/°Í°/°Í°2°#/°Ö°Í°±+±22°ͱ22°±+± 22°
-ͱ22³
-+°Í°/°ͱ$+±°9°°9�±"³�$9±°9°°901333!!#5#5335!##53535#ÆÈÆþ֐,ddddÈþÔ,cdccdd,„ü|þÔôþdd¼ÈdddÈdddü|È�����L°�����k�²��+°/°Í°/°Í°
/°Ͳ

-+³@
	+°/°Ö°ͳ+°Í°/°
3°Í°±+°2°
-ͱ+�±´�$9±
±9901	##!#553#35#**ÆÈX,dÈÈddd,þÔ,„ü|Ȑþdèdþü|È������L°�����k�²��+°/°Í°/°Ͳ
-+³@	+°/°Í°/°Ö°
-ͳ
-+°
Í°
/°3°Í°
-±+°2°ͱ+�±´�$9±±9901	##%53#!#5'35#**ÆÈXÈdd,dcdd,þÔ,„ü|ddþþddÈ�������°°��
-����R�°/°Í°/°Í°/°Í°/°Í°/°Ö²222°Í°Ͳ
-+³@
-	+³@	+±+�±³�$901	##5!5!5!53**ÆÈôôþþp,þÔÈ,þÔ,„ü|ÈÈÈ,ÈÈ,ÈÈ,ÈÈ������°°��
-����R�°/°Í°/°Í°/°Í°/°Í°/°Ö²222°Í°
-Ͳ
-
-+³@
-	+³@
-	+±+�±³�$901	##535!5!5!**ÆÈôÈÈ,þԐþpô,þÔ,„ü|ÈÈÈ,ÈÈ,ÈÈ,ÈÈ��������LL���*�²
��+°Í°/°Í° /°�Ö°Í°±+°	ͱ!+�01463!2#!"&73!2654&#!"ë¥,¢îí£þÔ¥ëÈ;)ô);;)þ);,¥ëí£þÔ¥ëëA);;)ô);;)������LL���"�>�²
��+°Í°/°Í°#/°�Ö°Í°±+°	ͱ$+±± !99�±± "9901463!2#!"&73!2654&#!"-î¢,¥ëë¥þÔ£íÈ;)ô);;)þ);ÈMþ³,£íë¥þÔ¥ëëA);;)ô);;)þúú��������LL���"�>�²
��+°Í°/°Í°#/°�Ö°Í°±+°	ͱ$+±± "99�±± !9901463!2#!"&73!2654&#!"ë¥,£íë¥þÔ¥ëÈ;)ô);;)þ);dúú,£íî¢þÔ¥ëëA);;)ô);;)dþ³M�����LL���"�>�²
��+°Í°/°Í°#/°�Ö°Í°±+°	ͱ$+±± !99�±± "9901463!2#!"&73!2654&#!"!ë¥,¥ëí£þÔ¥ëÈ;)ô);;)þ);dôú,¥ëë¥þÔ¢îí?);;)ô);;)þpM�����L���<�²��+°Í°�/°Í°/°Í°/°Ö°ͱ+�±°9±�°9°°901!5	55!2654&#!5!2#,þpÈô);;)þ¥ë륐,Èþ¢þ¢ÈþpÈ;)ô);Èë¥þÔ¥ë����Ù�Öž�!�(�°/°Í°"/°Ö°ͱ#+±°9�±°9013!3276�36'&#676/#"�Ù.›				þÓš		
-¼þóKþJ
i¯	ÓþÑV��������L���?�²��+°Í°°Í°/°Í°/°Í°Í° /°�Ö°ͱ!+�±±99°°9013!275!"&5463!5./"!5	5ë¥,/5þ);;)ôÈ]]¥ëX,þp¥ë¹;)ô);¹ë¥þÔ,Èþ¢þ¢È�����°°��$�T�²��+°Í°/°Í°%/°�Ö°Í°±+°ͱ&+±µ $$9°°#9�±µ	"#$$9°°9013!26='#!"&546;7'#"%'!'ë¥,£íNz;)þ);;)œvJd¥ëða•ô•þª¥ëë¥bI{”);;)ô);zNë¥	V•þ•þŸ���¬¬����Z�°
-/°Í°/°Í°/°Í°/°Ö°
Í°
±+°Í°±+°ͱ+±·	
-$9�±·
�$901$  $ 6& 462" D  þîþ¼þîóVóóþªr rr ¶D  þîþ¼þî  _þªóóVóþ rr r�������L°�	���.�²	��+°Í°/°Í°2°/°Ö°Ͳ
-+³@�	+±+�011463!2	!!35#ü½ÂþÙþÔôdd
-þí þôþpýv2��������L°�	���+�²	��+°Í°/°Í°/°Ö°Ͳ
-+³@�	+±+�011463!2!!!	35#ü,,'þC^dd
-þí¼þÔ,ôûæ2��������L�	���.�²	��+°Í°/°Í°/°Ö°2°Ͳ
-+³@�	+±+�011463!2	''35#ü1TšþF–…dd
-þíÁþÏT›þF—ý:2�����L°�	�
���+�²	��+°Í°/°Í°/°Ö°Ͳ
-+³@�	+±+�011463!27'%'35#üaÔap¹ú•Ô•Îdd
-þíÜbÕaüà»ï•Ô•þ
2�����L°�	�
���.�²	��+°Í°/°Í°/°Ö°2°Ͳ
-+³@�	+±+�011463!27'735#ü|ÔbÕï•Ô•ùcdd
-þídÔaÔëú•Ô”í¹ûé2�����ÿÿ°¯����²��+°	/°Ö°ͱ
-+�01		™þ%þÊO ý`ŸûÉþw Íªý8�������dL°���M�°/°Ͳ
-+³@	+°2²
-+³@	+°2°/°�Ö°Í°Í°±+°ͱ+±²	999�01546;!3+!#"&35#úôdÈ–ýD–Xdd–èþÔ,Èü®þpgÈ����>°����@�°/°Ͳ
-+³@	+²
-+³@	+°2°/°�Ö°Í°ͱ+�±²99901546;!3'!#"&%735#úôdÈþìx~þ†–E{xa{þ%ádd–èþÔ,ÈÚþíxþp±{x`{þ$ªÈ�������°���#��°$/°�Ö°Í°ͱ%+�01546;!3'!#"&35#7'77'úôdÈgªþÖþ·–Xdddªªªªªªªª–èþÔ,ÈþógªþÖþpgÈûÕªªªª€©ªªª�������°°����l�°/°Ͳ
-+³@	+°°Í°/°ͱ22°/°�Ö°Ͳ�
-+³@	+°�°Í°±+°Í°2±+±°9�±±99±°
-901546;!3!!#"&%	##53úôdÈþpþ–X,,ÈÈÈd–èþÔ,ÈþÔÈþp«þÔ,,þÔ¼ÈÈ��������°°����[�°/°Ͳ
-+³@	+°/°ͱ22°/°�Ö°Í°Í°±+°ͱ+±°9°°
9�±²999°°
-901546;!3'!#"&%333	53úôdÈÈþÖþn–XÈÈÈþÔþÔd–èþÔ,ÈþnÈþÖþp«þÔ,,ÈÈ�������È°L�	����53!265!5!54&#!"5!LûP°û´dú&d–ýÈÈ������f°®��
-������°/±33°ͱ22°/±33°ͱ22°/°Ö°
-Í°
-±+°Í°±+°ͱ+±
-³$9±³$9°³$9�±°�9°±99°°901!!5335335!5	553;5#,þpÈdddd,þÔddddd*ÆÈƺÈÈÈÈÈÆþÖþÖÆþÈÈÈ����d��°°��/�:�²��+°0/°�Ö°Í°±+°ͳ	+°Í°/°	Í°±
-+°ͱ1+�0173737+"&5%;2654&d22d22d22dÈX
-È$þì%¼ddþÔ,ddþÔ,ddþpËþA¿d5!þsRtE�����d��°L�3�8�²���+°3°3Ͳ222°(/²%333°'Í°2°4/±5+�±(3± 99013!5"&5!#!5".546?5!2!4635!2dKôK"2þpKþKþp"28&Šþv&88	x88&þvŠ&88	üˆ�����LL���� �*�.�2�²��+°Í°/°Ͳ
-+³@	+°//±0+�±³$9013!2654&#!"!73%!!5!5!!%35!'!5%;),);;)þÔ);dÈi'þWdþ‰d,þÔ,þԐÈ'iþWdþ‰ô,);;)ô);;)ýDÈbþÖd,ÈÈ,ÈȐÈbbÈdýF£…£���ŸŸ� ��3?6&/&.'7>/.>’fgÑ—{£À4vŽüev‹-¢ä+‰Ôfg’=!¢.ˆveüŽv1¢��������°L��@�/�²��+°Í°(/°8Í°A/±B+�±± /99°(³&)2@$901=46754>2#!"&?>=6 6=.#"m&RpR&mû´Ê>Êd|Ú~\¦ud?,		2Ô3/2
 
+È""’’""È
'$+ þä
 
-2þÑ3Ô«!"’’"!ÈA1)!((!
-��d��°L����²���+°Í°/±+�0135!%!'57##5##5##5#dLûÿ¶}dddÈdÈdddddÈ–údÈÈÈÈÈÈþpdú�����d��°L�	���$�²
-��+°3°/°
-Ö°Í°±+°ͱ+�013!4&+"46;2346;2d,;)d);;)d);d;)d););;)þpè);;)ü¼);;)ýD����ÿœ��°L����'�+�H�²
��+°Í°/°Í°,/°�Ö°Í°±+°	ͱ-+±µ #(*$9�±µ &()$901463!2#!"&7!!!#535!3#353#5#3d°|¼|°°|ýD|°È„ü|d,ÈÈþÔÈȐÈddÈdd,ô|°°|þ|°°¼ý¨,ddþÔddd,dþp,þÔ����ÿœ��°L����'�+�H�²
��+°Í°/°Í°,/°�Ö°Í°±+°	ͱ-+±µ #(*$9�±µ &()$901463!2#!"&7!!3533##5#353#5#3d°|¼|°°|ýD|°È„ü|dddddddÈddÈdd,ô|°°|þ|°°¼ý¨ÈÈôÈÈþd,dþp,þÔ��ÿœ��°L����#�D�²
��+°Í°/°Í°$/°�Ö°Í°±+°	ͱ%+±³$9�±³"$901463!2#!"&7!!!5#35!!5#35!d°|¼|°°|ýD|°È„ü|d,ÈÈþԐ,ÈÈþÔ,ô|°°|þ|°°¼ý¨d,dþd,d����ÿœ��°L�����D�²
��+°Í°/°Í°/°�Ö°Í°±+°	ͱ+±³$9�±³$901463!2#!"&7!!-d°|¼|°°|ýD|°È„ü|d,d,þÔ,ô|°°|þ|°°¼þ¢–,þÔ––����ÿœ��°L�����'�Z�²
��+°Í°/°Í°#2°/°%3°Í°/°Í°(/°�Ö°Í°±+°Í°±+°!Í°!±$+°Í°±+°	ͱ)+�01463!2#!"&7!!!%3264&+;#"d°|¼|°°|ýD|°È„ü|d¼ý¨‚)69&‚6)‚‚&,ô|°°|þ|°°¼ý¨ôþdT‚VV‚T,��ÿœ��°L����#�)�H�²
��+°Í°/°Í°*/°�Ö°Í°±+°	ͱ++±µ !$'$9�±µ "&($901463!2#!"&7!!!#535!3#35#33#d°|¼|°°|ýD|°È„ü|d,ÈÈþÔÈÈ‘ddcddÈ,ô|°°|þ|°°¼ý¨,ddþÔddd,þpô�ÿœ��°L�����!�'�L�²
��+°Í°/°Í°(/°�Ö°Í°±+°	ͱ)+±·"%$9�±· $&$901463!2#!"&7!!!#5#5335#33#d°|¼|°°|ýD|°È„ü|d,ÈdedÈddcddÈ,ô|°°|þ|°°¼ý¨dþpÈÈdd,þpô����ÿœ��°L����!�%�+�›�²
��+°Í°/±")33°Í°#2°/°Í°/°&3°Í°'2°/°Í°,/°�Ö°Í°±+°2°!Í°!±+°ͳ+°Í°/°Í°±"+°%Í°%±*+°)Í°)°&Í°&/°)±+°	ͱ-+�±°9°°901463!2#!"&7!!5!##53553!5353#d°|¼|°°|ýD|°È„ü|d,cdcÇd,dÈd,ô|°°|þ|°°¼ÈdþÔddÈþpdddddþ����¬¬����y�°
-/°Í°/°Í°/°Í°/°Í°/°Ö°
Í°
±+°Í°±+°ͱ+±µ
-$9°µ	$9�±´
�$9°°9°³$901$  $ 6& 57!!!! D  þîþ¼þîóVóóþªd,þÔ,þÔ¶D  þîþ¼þî  _þªóóVóýþÈddÈd�����¨¬��� �$� �°
-/°Í°!/°3°"Í°/°Í°/°Í°%/°Ö°
Í°
±+° Í°2² 
-+³@ 	+° ±!+°2°$Í°2°$±+°ͱ&+± ³
-$9°!°9°$³	$9�±"!´
�$9°²999°³$901$  $ 6& !#5#3#353 D  þîþ¼þîóVóóþª,ddÈÈÈÈd¶D  þîþ¼þî  _þªóóVóýšdddddddd��ÿòÿœÂA�� �r�°/°Í°°
 Ö°Í°2°!/°�Ö°Í°±+°Í°±+°ͱ"+±�²999±± 99±±99�±³�
-$9°
³$901;!3264&#".#"333qOސ€xªªx.,,µn˜ØBU:ÈÈÈþÔîPr,þÔ­ò¬aw×™kþ•,þÔþÔ��ÿòÿœÂA����° /°Ö°ͱ!+±²999�01;	>54&#".#"	##qOž“^yªx.,,µn˜ØBU:,,ÈÈîPržþmdx­aw×™kþ•,þÔþÔ,���d��Lm���7!!'5!33	33dK^KþòªþòªþÔþÔªþòªÈ›--›,,Mþ³þÔ�����y��7›�)��327!'32654'>54&'.#"&#"y9/iJ8,K^K.6Ji	2;{Y“^t£	Ji¼5XJiþÎ--2iJ f=ZƒYq£ti������A¥ÿòŒ_<õ�°����Ï	.����Ï	.ÿ:ÿœÝ�������������ÿ„��ÿ:þÓÝ����������������Ÿ¸�(°��°��°��°�d°��°��Œ����Œ����²��F���Ù���Ù���£�����H����F��°�d°�Èô��°ÿò°��°ÿó°��°�°�°�d°ÿ¸°ÿ¸°��°��°��°��°��°�°�j°�°�°�°�d°�°�d°�°�d°�°ÿœ°��°�°�°��°�°�°�°�d°��°�d°��°��°��°��°��°��°��°�°�d°�È°��°��°�5°�d°�È°ÿµ°�!°��°��°��°��°��°ÿ›°�°��°��°�”°�°�u°��°��°��°��°�È°��°�ˆ°�È°�È°�È°��°��°,°�d°�¹°°�°�°�°�°�°�°��°�°�°�°��°��°�Ì°�h°��°��°�"°�°��°��°�o°ÿðÿðÿŸ°�d°��°��°��°�d°ÿâ°�F°ÿ:°�°��°�°.°��°��°ÿ›°�J°�°��°��°�°ÿ›°�a°�°�°��°�°�°�°��Ä��°�d������ÿØ�P�9�È��'�d������������������Ù�������������������������������d�d������d�dÿœÿœÿœÿœÿœÿœÿœÿœ���ÿòÿò�d�y���*�*�*�*�f�¤�¤�¤�¤�¤�¤�¤�¤�¤�¤�¤�¤�¤�¤�¤0HP„ªÎþ6˜Ìî,Lôrd"DâL°è”	0	`	”
+2þÑ2ÔÔ2/2
!������°°�
��'��!'3353353!2+!7#"&46!2!546LÈý¨ÈÈÈÈÈÈü®¼‰üJ‰³LûP¼ÈÈôÈÈÈÈüà*dd*þÔ22����d��°L�	����#"!4&#"!4&!46;2¼d);,;gd);,;ýþÔ;)d);L;)üè);þÔ;)ýD¼);üà);;)����ÿœ��°L����%�)��!2#!"&546!#3!535#!#33ȼ|°°|ýD|°°„þÈÈþÔÈÈ,dÈÈddL°|þ|°°|ô|°ÈýD¼ÈdþÔdd,dþÔdôdþÔ,���ÿœ��°L����%�)��!2#!"&546!#5##3353#33ȼ|°°|ýD|°°„þdddddddÈÈddL°|þ|°°|ô|°ÈýD¼ý¨ÈÈôÈÈdþÔdôdþÔ,�ÿœ��°L����#��!2#!"&546!#3!!#3!!ȼ|°°|ýD|°°„þÈÈþÔ,ÈÈþÔ,L°|þ|°°|ô|°ÈýD¼ÈþÔdôdþÔdô���ÿœ��°L������!2#!"&546!-
ȼ|°°|ýD|°°„þþÔ,þÔL°|þ|°°|ô|°ÈýD¼þ––––,���ÿœ��°L���� �)��!2#!"&546!!!#";32654&#ȼ|°°|ýD|°°„dýD¼d‚&96)‚þ‚)69&L°|þ|°°|ô|°ÈýD¼ý¨ôdVAAT,þÔTAAV���ÿœ��°L����%�)��!2#!"&546!#3!535#!##53#53ȼ|°°|ýD|°°„þÈÈþÔÈÈ,ddÈÈddL°|þ|°°|ô|°ÈýD¼ÈdþÔdd,þdþd�ÿœ��°L�����#�'��!2#!"&546!3!3##5335#53ȼ|°°|ýD|°°„ýDÈþÔdXddÈý¨d,ddL°|þ|°°|ô|°ÈýD¼ÈþpôþdÈÈÈþÔd�ÿœ��°L����"�&��!2#!"&546!#575#5!##53#53ȼ|°°|ýD|°°„þÇdÇÈ,ddÈÇddL°|þ|°°|ô|°ÈýD¼þpÈ2È–dþdþd����	�	§§���%���2".4>"2>4&!!!'57!àðÛž^^žÛðÛž^^žÅäÂqqÂäÂqqlþÔ,þÔdd,§^žÛðÛž^^žÛðÛžLqÂäÂqqÂäÂÐÈddÈd�����	�	§§���'�+���2".4>"2>4&#'##!35àðÛž^^žÛðÛž^^žÅäÂqqÂäÂqql2ddd–d,Èȧ^žÛðÛž^^žÛðÛžLqÂäÂqqÂäÂÐd2d2ddddd��ÿòÿÂA� �6��2632+54&#!"#"&5467&54>3232"/&6;46÷nµ,,.xªªx€þÔÞPpVAbªz–
+‰
+
ß
&
ß
+‰Awa­ñ­úúsOEkdªbý³
+þíôô
+����ÿòÿœÃA��3��2632&"#"&5467&54>++"&5#"&76762ön¶,+.yªxZþ†
%
þƒ	OqVAb©æß
+‰
+–
+‰
+
ÇAwa­xc¤hþ“sOEkd©cý’äþí
+
+Ì����d��Lm���%5!33	33!#"!54&#¼þòªþòªþÔþÔªþòªþò2dd,,Mþ³þÔþÔd22�����y��7›�/��2#"'2!54635#"&547.546324&546X^“Y{;2	iJ7-þÔ-7Ji/9iJ£›qYƒZ=gJiû22ûiJX5Jit£����'�‰œ��*�B�J�b�{��"&'&7>2"3276767>/&'&"327>7>/&'&&"267"327>76&/&"327>76&/&òoOOoSÙÜÙSoOOoSÙÜÙþ=y±"
$GF`
	Pu
"Q9	ùcŒccŒcVQ:	Pu
"GF`
	y±"
$òoþÕþÕoSWWSo++oSWW"±y	`FG#
‘uP
	:Q#úccŒcc:Q#uP
	$`FG#
"±y	����d��è°�����"��!#5!!463!#53'353!"&5+¼,´þ¬þ„
+?,Èd¢ÔÔ¢d´þu
+„
+Ã þ„ÈÈó
+þÔÈüàÔÔÈþ
+‹ÈÃ
+�����d��è°�	����!��!	463!#5##5#7!"&=)+5¼,þ¢ýÚ
+?,È>¢d¢Ôªþ
+|
+› ýø^ýÚG
+þÔÈü|ÈÈÔþd
+77
+P��������°ô�����#3!#732!!34>3!!Š¢ddþÔ¢ÔýÈ!,ý¨Èd!sððüà,ô Èd,ÔÔ+$dþ¢Â$+þpþpô�������LL��2�9��3232#!"&=46;54652#!"'74633!265#535Šd2þÔ2s);;)ý¨öþº;)X>,>Xý´ÔÈÈL2dd2ú–;)üà);öFD);–>XXýæÔ¢d¢��d��¼L��6�=��3232#!"&=46;54652#3#!"&54633!265#535Âd2þÔ2s);ÈÈ!ý¨);;)X>,>XœÔÈÈL2dd2ú–;)þþÔ$+;) );–>XXýæÔ¢d¢���ÿ¢��Ô�����	#!"&762#";2676&35’} ,û, }@DÐ:#6#:àÈ­û°&77&P'þLþÒ.þdd����	����LL���/�?�O�_�o����32+"&=4632+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=4632+"&=46!32+"&=46!32+"&=46©ú
+
+ú
+
+ú
+
+ú
+šú
+
+ú
+üêú
+
+ú
+šú
+
+ú
+šú
+
+ú
+üêú
+
+ú
+šú
+
+ú
+šú
+
+ú
+L
+–
+
+–
+þÔ
+–
+
+–
+
+–
+
+–
+þÔ
+–
+
+–
+
+–
+
+–
+
+–
+
+–
+þÔ
+–
+
+–
+
+–
+
+–
+
+–
+
+–
+�������°��)�3��3#!2!&/&63!5#5353!2+!7#"&46!2!546¼dd^>1B)(üü()B1>^ddÈþ>¼‰üJŠ
³LûP°ÈdO7„S33S„7OdÈdü|*dd*þÔ22������°���+�5���2#4!!2!'&63!&54!2+!%5#"&46!2!5460P9Â<:H)"¯ýZ²"
+)H¯¼–üJ–³LûP;))%&!‘‘!&þ•*ÈÈÈÈ*ý¨22�����°���$�.���2"&432!65463!2+!7#"&46!2!546
–jj–j·."+'þ¼'+#þͼ
ŠüJ‰³LûPj–jj–þë9:LkkL:9þr*dd*þÔ22�����°���,�6��2"&5477'632!65463!2+!7#"&46!2!546X/[3oœo"o£"."+'þ¼'+#þͼ
ŠüJ‰³LûPk‹6NooN>Qo£þ
+9:LkkL:9þr*dd*þÔ22�������°��"�,��!!.54>7!2+!7#"&46!2!546X,þÔ%??Mýî<=BmJþ¢¼
ŠüJ‰³LûP°¡‹9fQ?HS½TT¡vKü~*dd*þÔ22��È��è��)���2!546754!2#3#3#3#!"&546/R;.6þp6.d6\¬ÈÈÈÈÈuSþpSuu;)N\6226\N)þG6.dddddSuuSSu���dÿÿLL��/�3��!2#!"&546!2#!"/!"&4?!"&=46!'–„ü|¶
+
+þåà
%
XýôW
&
àþß
+ªdDdLþôýD
+2
+à
%
XX
%
à
+2
+ddd��������°L��#�-�7��!2#4&+"#4&+"#546!2!46+"&=!+"&=È Sud;)ú);d;)ú);duè);ûP;ñdèdLuSÈ);;));;)ÈSuþ;)þÔ,);þ2222����©¬�
����	!&4762	!2!546ઃþýû  'Yþ¬V/þ«¢ ü|ýUYƒY(þnþª0Uü22�������!°��/��.#!"3!26=326!546;546;33232!½'þp'½q*}¨ý­20È/2‡úþ––ýŒ22,þÔ2������°°�
���"��!#!5463!#5!#!"&5463!#5„,
+þ‰þÔ
+w,Èý¨,
+ýv
+
+w,È ýÁ
+O,T
+þÔÈþýÁ
+
+¶
+þÔÈ�ÿœ�dG�F�V��32676'&7>++"&?+"'+"&?&/.=46;67'&6;6#";26=4&äÃKŽjIC
 
+
+)V=>8'"d1*Ã)"dT,Ÿ|-oËtEú
+
+ú
+GAkŠI
+! "%,=?W7|&êF@Je5&2WO_e_
+2
+
+2
+�ÿœÿæ~�	�$�4�<�R�b��%6%32!2&'&#!"&=46#";2654&'&"2647>?&/&6%?6'.'.§. ‹ü+jCHf7ý"	*:þÔ>XX¹P*† €@--@-þ˜ -?0
!3P/|)‚(	)f!%
=„÷&*
xÈ"6Ô2&„CX>È>X¬83DÉ-@--@þÛ‚
+# ³=I+E(	/—/}X&+	5!H	�����d��9°�Q�`�o��322#+"&=#+"&=#"&=46;#"&=46;546;23546!2>574.#!2>574.#q–
+Oh ..40:*"6-@#
+–
+d
+–
+¯
+
+KK
+
+¯
+–
+d×))þùk))°
+m!mJ.M-(2N-;]<*K
+
+KK
+
+K
+–
+X
+–
+K
+
+KK
+þÔÈ
+"þpÈ
+"����°®��)�,��!2#!"&'.546"!7.#ÔVz$RýÄR‚(z Œ}VG+œ0œ )IU!Ã®zVþ`3·BBWwvXZÅ3 Vz™&--%óó,(1#þÂ��È��„����32#!"&546+"&=Û–g¬T)þ>)T¬H6–6¬gþ)TT)ôg¬üá66á���È��„����33#!"&546+"&=Û`³–T)þ>)T¬H6–6–³þB)TT)ôg¬üá66á���������	%'5754&>?'	%5%ý‚þ†Nd––d/“‚\þ¢þ¢^^ÿþåª<à–Ç”•È–ú

+(Aýb¦¦“¥¥���dô° �����2"&4$2"&4$2"&4¼|XX|Xè|XX|Xè|XX|X X|XX|XX|XX|XX|XX|������¼L������2"&42"&42"&4è|XX|XX|XX|XX|XX|XLX|XX|þÈX|XX|þÈX|XX|����d�dLL���/��!2#!"&=46!2#!"&=46!2#!"&=46}¶
+
+üJ
+
+¶
+
+üJ
+
+¶
+
+üJ
+L
+–
+
+–
+þp
+–
+
+–
+þp
+–
+
+–
+�������°°���/�3��!2#!"&546!"3!2654&!2#!"&546!5^ô¢¼»£þ¥¹¹Ëý¨);;)X);;ý±ôþG°»£þ¥¹¹¥ô¥¹È;)ý¨);;)X);dþÔ,dÈÈ�����d�d°L�;��!2+32+32+32#!"&46;5#"&46;5#"&46;5#"&46–è222222ü222222L*È*È*È**È*È*È*���,�è£��
����*��.62"&%#462"&%#46"&=32ŠW??WW??þù|°|°¼°|°ýÀ|°|°¼°|°°*(£C²²BB²²þÀ°|°||°|°þÔ°|°||°|°þӐŽ��ÿµ�È”�B��76+2+"47&"+".543#"&'&676/!'.6éE*
'?)’¸
+T¸Ž0I'*L
+#3¶{¶,#
+nþÙ
6F82 þà*<SC#

+(#(ÁÁ(#��������°°�%�C��#4.+!52>5#"#!#4.+3#525#"#5!°2&È2þp"È&2èýD
+d
È2d
+ô„ ü®dd	R ,ý
+þW
22©
+–��������L®�� �0��5"'./#!5"&?!##!"&=463!2èþßEþÔ	1;E%=
!'þì†y±üè,2 "
+ëý#	22+.°¦"A2‡Vþªýãdd�����°°��G�J��!2#!"&546#"3!26=4&#"'&?!#"3!26=4&'"'&'#&#2Lû´FF
þÕ&	7
 
-D
-ˆ
-îVæ>°

v
ª:`ŠÜØLˆÖ&”`ÚŽbº&’bÚL†è8‚¾,˜üJ|¶Öä0N†¶àôZ¤î2ŠìF Àâ  * F n  ò!j!Ä"B"È#~#®$$’$æ%%ˆ%œ%²%î&Z&ˆ&¾&è''j'Î(8(d(¸)6)Ô*n*ì+h+²+ú,D,˜-¾-æ.f.’.ú/:00¶1&1~1Ò22¸3`344¢55f5¾66\6´7
-7`7¬7ü8P8´99X9–9Ô::^:†:Ö;,;t;Þ<@<h<Ü=D=¨>>H>¼>î?0?š@@`@´A"AˆAðB‚BøCˆCöD<D`Dž����Û�›��������������������º�����������	���j���	��(�|��	���¤��	��L�²��	��8�þ��	��x6��	��6®��	��ä��	�	�ú��	��$��	��$4��	��$X��	�È�|��	�É�0’www.glyphicons.com�C�o�p�y�r�i�g�h�t� �©� �2�0�1�3� �b�y� �J�a�n� �K�o�v�a�r�i�k�.� �A�l�l� �r�i�g�h�t�s� �r�e�s�e�r�v�e�d�.�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s�R�e�g�u�l�a�r�1�.�0�0�1�;�U�K�W�N�;�G�L�Y�P�H�I�C�O�N�S�H�a�l�f�l�i�n�g�s�-�R�e�g�u�l�a�r�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s� �R�e�g�u�l�a�r�V�e�r�s�i�o�n� �1�.�0�0�1�;�P�S� �0�0�1�.�0�0�1�;�h�o�t�c�o�n�v� �1�.�0�.�7�0�;�m�a�k�e�o�t�f�.�l�i�b�2�.�5�.�5�8�3�2�9�G�L�Y�P�H�I�C�O�N�S�H�a�l�f�l�i�n�g�s�-�R�e�g�u�l�a�r�J�a�n� �K�o�v�a�r�i�k�J�a�n� �K�o�v�a�r�i�k�w�w�w�.�g�l�y�p�h�i�c�o�n�s�.�c�o�m�w�w�w�.�g�l�y�p�h�i�c�o�n�s�.�c�o�m�w�w�w�.�g�l�y�p�h�i�c�o�n�s�.�c�o�m�W�e�b�f�o�n�t� �1�.�0�M�o�n� �J�a�n� �2�7� �0�8�:�0�1�:�3�4� �2�0�1�4�������ÿµ�2���������������������Û����
�	
-
�ï !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×glyph1uni000Duni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FEurouni25FCuni2601uni2709uni270FuniE001uniE002uniE003uniE005uniE006uniE007uniE008uniE009uniE010uniE011uniE012uniE013uniE014uniE015uniE016uniE017uniE018uniE019uniE020uniE021uniE022uniE023uniE024uniE025uniE026uniE027uniE028uniE029uniE030uniE031uniE032uniE033uniE034uniE035uniE036uniE037uniE038uniE039uniE040uniE041uniE042uniE043uniE044uniE045uniE046uniE047uniE048uniE049uniE050uniE051uniE052uniE053uniE054uniE055uniE056uniE057uniE058uniE059uniE060uniE062uniE063uniE064uniE065uniE066uniE067uniE068uniE069uniE070uniE071uniE072uniE073uniE074uniE075uniE076uniE077uniE078uniE079uniE080uniE081uniE082uniE083uniE084uniE085uniE086uniE087uniE088uniE089uniE090uniE091uniE092uniE093uniE094uniE095uniE096uniE097uniE101uniE102uniE103uniE104uniE105uniE106uniE107uniE108uniE109uniE110uniE111uniE112uniE113uniE114uniE115uniE116uniE117uniE118uniE119uniE120uniE121uniE122uniE123uniE124uniE125uniE126uniE127uniE128uniE129uniE130uniE131uniE132uniE133uniE134uniE135uniE136uniE137uniE138uniE139uniE140uniE141uniE142uniE143uniE144uniE145uniE146uniE148uniE149uniE150uniE151uniE152uniE153uniE154uniE155uniE156uniE157uniE158uniE159uniE160uniE161uniE162uniE163uniE164uniE165uniE166uniE167uniE168uniE169uniE170uniE171uniE172uniE173uniE174uniE175uniE176uniE177uniE178uniE179uniE180uniE181uniE182uniE183uniE184uniE185uniE186uniE187uniE188uniE189uniE190uniE191uniE192uniE193uniE194uniE195uniE197uniE198uniE199uniE200¸ÿ…°�K°PX±ŽY±F+X!°YK°RX!°€Y°+\XY°+���RæX®��
\ No newline at end of file
+?
+99þàÅg°û´LRý 
22£™22$ìþ������°°���#�'��!5!!2#!"&546)2#!"&546!°ûP°û‚þpmþpG,LdÈü|„þpdþÔ,�����°°���#�'��!2#!"&546!2#!"&546!!5!2þpmþpG,ÈûP°°ü|„þþpdþÔ,ý¨d�������d°è�'�+��!235463!23##!"&=##!"&546!2dddþpdþpŸ,èþ¢––d––þ¢ þÔþÔ,������°°����'��3#3!2#!"&546!!2#!"&546ddd–þpG,þ¢„ü|°dþpdþÔ,þþp�����d��L°�'�+��32+!2#!"&5463!5#"&546;53!X––Âü|^––dÈ,LþpdþpddÈþÔ,�������°°����'��!#3!2#!"&546!!2#!"&546°ddývþpG,ü®„ü|°dþpdþÔ,þþp��,�0o€���	#"&54632aþî5þèþ*����A�2„~���	6'&4Oî**þ{î)ü)î*�����2A~„���!2"'&6dè)þ*þ„*þî*�����2,~o���	#!"&762{î)ü)î*aþ**î�������°(��
+��5-5!5!¼ýLþc¨üà å¶þ½ÝÁÁÝûØÈ�������d°°��1��#3!35#5!34>;!5".5323!°ÈÈþÔÈÈ,ûP2&d2"d&2üà„dd,ddþ ýÚdd	& ,������Lè�%�1��#4.+!52>5#"#!#3!35#5! 2&d2þp"d&2 ,ÈÈþÔÈÈ,¼ ýÚdd	& ,üàdd,dd���È�frJ���32	+"'&476½ 
+þ0Ð
+ 
+þ)×
+Jþ0þ0	××	��>�fèJ���32+"&7	&6S 
+×þ)
+
 
+Ðþ0
+J	þ)þ)	ÐÐ���f�ÈJr����"'&=46	4	þ)þ)	ÐÐw
+ 
+þ)×
+
 
+þ0Ð����f>Jè���	'	&=4762j×	þ0þ0	×áþ)
+
 
+Ðþ0
+ 
+×����Ùÿù=°��:��#463267>"&#""'./.>'&6è°|°þVd&O"(P3G*+*3M,
:IG79_7&%*>7F1“
°|°|°ÈÂ5KmCKG\JBktl$#?hI7 À�����È�„°����!2+&5#"&546!5úX–ÿ–«,°þpþ²	Šddd����È�L°����!2%!#4675úî'=ýDXýDd
d°Q,ü[u¶}ü4ý]dd����MoÃ__<õ�°����Ðvs—����Ðvs—ÿQÿœÜ�������������ÿ…��ÿQþÔÜ����������������£¸�(������°��°�d°��°��°�pŠ����Š����±��E���Ø���Ø���¢�����H����E��°�d°�{°�È°�Èô��°ÿò°��°��°ÿð°��°�°�	°�d°ÿÓ°ÿÓ°��°��°��°��°��°�&°�n°�°�°�°�d°�°�d°�°�d°�°ÿœ°�d°�°�°��°�°�°�°�d°��°�d°��°��°��°��°��°��°��°��°�d°�È°��°��°�5°�d°�È°ÿµ°�!°��°��°��°��°��°ÿœ°��°��°��°�Û°�°�u°��°��°��°�
+°�È°��°�°�È°�È°�È°��°ÿþ°,°�d°�ˆ°;°�°�°�°�°�°�°��°�°�°�°�°��°�·°�·°��°��°�I°�°��°��°�]°ÿÜ°ÿÜ°ÿŸ°�d°��°��°��°�d°ÿÿ°��°ÿQ°�°��°��°E°�°��°ÿœ°�J°�°��°��°��°ÿœ°�a°ÿý°�°�°�°�°�°��Ä��°�d������ÿØ�d�9�È��'�d������������������Ù������������������������������d�d��������dÿœÿœÿœÿœÿœÿœÿœÿœ�	�	ÿòÿò�d�y�'�d�d�����dÿ¢�������������È�d������ÿœÿœ�d��È�È���d�d���d,ÿµ���������������d��,A�2�2������È>�f�f�Ù�È�È���*�*�*�*�²�è�èNNNNNNNNNNNNNN¤"~†¬äFnŒÄ2b¢Ü\ºrô bÊb¾	6	„	¶	Þ
+(
+L
+”
+â0ŠÊX
*
^
°h´(¦æTª*v¶
+8|ÀtÐ*Ô<¨Ì6`°þR¦.j–°àþ(h”ÄÚî6h¸ö^´2”âDl”¼æ.vÀbÒ F ¾!2!v!¸"@"–"¸##"#8#z#Â#à$$0$^$–$â%4%`%¼&&~&æ'P'¼'ø(4(p(¬) )Ì*&*J*„+
++z,,h,º,ì--ˆ-ô.(.f.¢.Ø//F/~/²/ø0>0„0Ò11`1®1è2$2^2š2Þ3"3>3h3¶44`4¨4Ò5,5ž5è6>6|6Ü77N7’7Ô88B8†8È9
+9J9ˆ9Ì::l:š:Þ; ;Ü<<P<¢<ø=2=ì>:>Œ>Ô?(?n?ª?ú@H@€@ÆAA~BB¨BîCCBCvC CÊDD`D®DöEZE¶FFtF´FöG6GvG¶GöHH2HNHjH†HÌII8I^I„IªJJ.JR����§�������������@�.��������Æ�����������	���j���	��(�|��	���¤��	��L�²��	��8�þ��	��x6��	��6®��	��ä��	�	�ú��	��$��	��$4��	��$X��	�È�|��	�É�0’��	Ù�Âwww.glyphicons.com�C�o�p�y�r�i�g�h�t� �©� �2�0�1�4� �b�y� �J�a�n� �K�o�v�a�r�i�k�.� �A�l�l� �r�i�g�h�t�s� �r�e�s�e�r�v�e�d�.�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s�R�e�g�u�l�a�r�1�.�0�0�9�;�U�K�W�N�;�G�L�Y�P�H�I�C�O�N�S�H�a�l�f�l�i�n�g�s�-�R�e�g�u�l�a�r�G�L�Y�P�H�I�C�O�N�S� �H�a�l�f�l�i�n�g�s� �R�e�g�u�l�a�r�V�e�r�s�i�o�n� �1�.�0�0�9�;�P�S� �0�0�1�.�0�0�9�;�h�o�t�c�o�n�v� �1�.�0�.�7�0�;�m�a�k�e�o�t�f�.�l�i�b�2�.�5�.�5�8�3�2�9�G�L�Y�P�H�I�C�O�N�S�H�a�l�f�l�i�n�g�s�-�R�e�g�u�l�a�r�J�a�n� �K�o�v�a�r�i�k�J�a�n� �K�o�v�a�r�i�k�w�w�w�.�g�l�y�p�h�i�c�o�n�s�.�c�o�m�w�w�w�.�g�l�y�p�h�i�c�o�n�s�.�c�o�m�w�w�w�.�g�l�y�p�h�i�c�o�n�s�.�c�o�m�W�e�b�f�o�n�t� �1�.�0�W�e�d� �O�c�t� �2�9� �0�6�:�3�6�:�0�7� �2�0�1�4�F�o�n�t� �S�q�u�i�r�r�e�l���������ÿµ�2������������������������
��–	
+
�ï !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ�	
+
glyph1glyph2uni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FEurouni20BDuni231Buni25FCuni2601uni26FAuni2709uni270FuniE001uniE002uniE003uniE005uniE006uniE007uniE008uniE009uniE010uniE011uniE012uniE013uniE014uniE015uniE016uniE017uniE018uniE019uniE020uniE021uniE022uniE023uniE024uniE025uniE026uniE027uniE028uniE029uniE030uniE031uniE032uniE033uniE034uniE035uniE036uniE037uniE038uniE039uniE040uniE041uniE042uniE043uniE044uniE045uniE046uniE047uniE048uniE049uniE050uniE051uniE052uniE053uniE054uniE055uniE056uniE057uniE058uniE059uniE060uniE062uniE063uniE064uniE065uniE066uniE067uniE068uniE069uniE070uniE071uniE072uniE073uniE074uniE075uniE076uniE077uniE078uniE079uniE080uniE081uniE082uniE083uniE084uniE085uniE086uniE087uniE088uniE089uniE090uniE091uniE092uniE093uniE094uniE095uniE096uniE097uniE101uniE102uniE103uniE104uniE105uniE106uniE107uniE108uniE109uniE110uniE111uniE112uniE113uniE114uniE115uniE116uniE117uniE118uniE119uniE120uniE121uniE122uniE123uniE124uniE125uniE126uniE127uniE128uniE129uniE130uniE131uniE132uniE133uniE134uniE135uniE136uniE137uniE138uniE139uniE140uniE141uniE142uniE143uniE144uniE145uniE146uniE148uniE149uniE150uniE151uniE152uniE153uniE154uniE155uniE156uniE157uniE158uniE159uniE160uniE161uniE162uniE163uniE164uniE165uniE166uniE167uniE168uniE169uniE170uniE171uniE172uniE173uniE174uniE175uniE176uniE177uniE178uniE179uniE180uniE181uniE182uniE183uniE184uniE185uniE186uniE187uniE188uniE189uniE190uniE191uniE192uniE193uniE194uniE195uniE197uniE198uniE199uniE200uniE201uniE202uniE203uniE204uniE205uniE206uniE209uniE210uniE211uniE212uniE213uniE214uniE215uniE216uniE218uniE219uniE221uniE223uniE224uniE225uniE226uniE227uniE230uniE231uniE232uniE233uniE234uniE235uniE236uniE237uniE238uniE239uniE240uniE241uniE242uniE243uniE244uniE245uniE246uniE247uniE248uniE249uniE250uniE251uniE252uniE253uniE254uniE255uniE256uniE257uniE258uniE259uniE260uniF8FFu1F511u1F6AA����TP��
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff
index 8c54182aa5d4..9e612858f802 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff
@@ -1,98 +1,94 @@
-wOFF�����[�����¡@�����������������������FFTM��€������jUÂðGDEF��œ������ �OS/2��¼���C���`g§K„cmap�������rJð	šcvt ���������(‡fpgm��$��±��eS´/§gasp��Ø���������glyf��à��N��‰<3!head��Rì���4���6bXþhhea��S ������$
-2hmtx��S<����ôÁÁŽloca��TP��«��¸4VNmaxp��Uü��� ���  name��V��‚��|Ô¯™ípost��W ��@��„¹F¦iprep��Zà���.���.°ò+webf��[������X¯Ræ�������Ì=¢Ï����Ïò����Ï	.xÚc`d``àb	`b`Â[@Ìæ1��
¨
��xÚc`fidœÀÀÊÀÂÌÃt!
-B3.a0bÚ䥰ƒPïp?ÞGÌþ�ÕI0Ô�…‘”(00�a	Ö�xÚÍ‘?KÃ`ÆïmÚHŠÒPD¬ˆwZªƒ]»ÅEí œ:µ8Š“ݺvë"ÅÍàè—isœœÔE„øš€C]|àþ½Üýî%"‡2Û$c=™¾­LZçMhcHÈ·Ù
-	íÓ­å@Úr·]ÞùØ5U¯ZRG=­hMÚÔ–v´§Cë*¨¡#4ÑBCŒq›GJ’¯])qÏéÑhA}­k ¡%žë@G:AN¢ƒF˜`šMò–Ì“(éêR<ïã‹'ÚˆÖf¥YQ*².eYWˆßù•_ø™Ÿ|Å—Üç.w¸Í->ãS>æC¶¢ì+ãÒ7Öä¬Ë-6d_‘)_ -wñaõ7SŸƒh–�����(øxÚ]Q»N[AÝ
ÄØ 9Ú³™Æ{¡	ÄՍbd;…åi7r‘‹q@D
Ú¯ ¡¤H›!H|B>!3kˆ¢4;;³sΙ3KÊ‘ªwékÏSç$ÂÝÍ6ýNHµ³�÷¤ë덌´ƒZlfôÊuûþ›Ñ”;j�å=o)M;Z´§þÑü
-†ûüó;´4ÓôÔ:	é!æ›qKƒïͺËú‚Õáb00¤˜¦â.?¦Rþ·4çjË°µ‘Ѽƒ3ùÉ4@SkmšþÔ!ÕóqKË¦±6˜˜²þ$Á…ÉtUSµÌøÚÁ]²³è`ƒ*́ØÃVy&Ò·$Ê,
öb«Ä“
-9åÜÉþ¤@ùHƼIJ;ㆵÆ‘×À 6O³ÿ<›MmoÂøYÁw¿K:øȆÚb;b)€	DBFUù†Ͻ,äRûÏ@”€åñ´îØD<—µu1Vz~ÛÜòËŠ»V¹Î‹Bwoªj¨Ò)Íû^ξÇžÃAcÁ›ÏûþJú<,®4hCz7zÿ¢µêˆ«¼>²'Ó¿±Z�����ÿÿ�xÚ½½	`å•�<ßÌH£[I£‘dK²$Kò)Å’eÅñ‘àÜwÈ͝€€B8® …r´	†B(
-),rŽ”PÚnØm銶êÒB·,½XZŽm!»Ý&ñð¿÷ÍH–íÊîÿÿq$Í%Í{ï{ßûÞ=Ë´1ù×ÂpŒÀ¤K„É–ž}/[2þm°Ì±°É”8<lÀÃeÁÈ,<ž£b"'ÆÛÈ,õí?ÿ™k9öfû†0E¦È/á—02ÓÊ(LF±çRU¬Y¢ø3ŠçbÈ*îª"dKÒÉLëñ䣩‚,æÄ‚,D¥¨,¤Ä¸(¤
-EÂ=¿ãù
-¼§ŽÕ6O: ŽÑË�
þÑûZ™ELÙÂ0xsÞܐ-ÆÒ¹oá̝D±eË!…Í*æªÂgËfž2æβŌ›ÆÜY²Sè$*ÖþÈ(é"£êfõàø–º™ŒRœ
üøg˜³…Q²¥­ZnËâOµ¥ÍŽ(…#’U¥9§«J0«HÅZ-KV¼Pr!dÓ3JB«–B‘,|ºJݤSqe•tUqfKý¤³+ˆnEèWºÅ²µ%ÛßߏT,äzñB®¯Ð—ËÊ>9Þ›fã1+D…¨Q‚·0ŸË³ùœQ0Æc©4I‹—^/Þ–X|Õþ6ŸË-Yö÷Ï™é!×ÕƒF²ÞÍÓúgç¤Ð¢%¹g"7=^½ºuÄF3ùâã§îxáü맼]§Ó}ÅEWŽt:ƒÓÖ基𪯦Ÿ¼†Á1©Q~	{�øËMy«…Ï”ÚÈQ+Ü-Ƕ"9FÃÚ¿ØÿèÒÅ¿ÈŸÄHL„Q¸Œâ¨Â˜Å—)Éð%3'ºKV±¿Zçõå¢Ù¾Þd<&¤I<f”¼²ƒ8.[ξÍO\“îêzî’/ý’YCÞ_qùÓ<åØxõ/Ø›màUäà恅±3LžÈ’Íõ
-`qtéR²ëÙõ0ú]E<¨n®Ð½Ãc²§©6Ò5¶~‡ûèÏ>ä_à_`XÆȸFH�{xúz3$ìdé¿Ÿzˆ=ïÐÚCçØí8[öÍÿ~²vàt{Êñ€Ý^£À¤0f&Ç”ÈÏBUá`Y2Šé²Ì™s80®‰ÃM“×J‰+F‰Ó)y;ö&R{}ìõb‘Mâï;Ì—g™†I†Ia˜äÅ„˜DÖ÷z“‚ÁA$8fä[o_~ ?kÑòun÷íËç­rXÆ\ìþ’ö ´¡ƒ=s÷Ø_]rðò¾B{@>¹À]f±rßå<–±å¢?À�5äÞåÿ…€ñ0MÌ)Lف¹3Š\Uš4ÆhÎ(ä"UÉ…²A1À�vH¢{Ǻܭr¿bó™’ÛSÀܯȢâêWšÜû#àü´·’¼ñyÄK`wÖåkés%[dÒ¬Ö¼Œt	ÂÅ&¯I=xõÎÊg_$îï~W}Ÿ¼‡çÔßWv^­„“éZÆ^¤þùÅï™õü³ü&�I”`Fa!O:ª¥&¥{‡Ù0‘ፕ¼NHóÅé§^}õµ]Ó®¿æªõ}³¯½eïððã·\;›sÍÚ²ª›_8gî¾{Õ–Yý×ÞtcyÍšò7]´úè›Ì|þ>{c–Šzrž(ñ˜‰‡+, ÿ~{ù¥ºýnõ&uû=÷²\ERgúùgø¤|Øø>ÆÏ(v¿TñÀDr¦ä§ Oøu,äT!ž¦Þgö¿,üÎ÷}÷¥ËŽsGöʝ¿ýÂŽ?|áç?ŸÀ»˜Çy’%‡Ho_Ö"^c\"MÌTþG™™ £wR¼/WÙª([+¹ûŠêGw18ÿè÷—ÐuÉÊ8áwdàšgRL'“¡0e9ˆ¯–ü- (…ŒË)¦ªÒšU¬%™SlU¥-«83JGNqU•®¬âÉ(éœâ­*Ó²ˆ8›Cr¥—Ž#_Ýg²¹¼­rVá](¢ö™í¢„»þªÒïW†²JKu_k[×4<Õâ*EáÊD{wîrÕR“Í
-‚)ØÔ߯8ÅRsT]/óñü¤JA˜¥Qrœs¼rt±þÄÍØ^ú:0~_Òx	ÊRNǶ֏0º|ÓÖF'Ð0ÃÌdF˜²©×•´‘d¡Œ2HIÓ¼1‹ÒÃE×G?¼»J-€8­½ªLÏ–N¢|ò¡$®OaL£±d€LÜ'Ÿp>\ …B’ºßÇ·Ùõ':“m8Ì^Ü°3ö‰Î0 ='㾜9‹¹”¹‘¹ÖjJ…ÒàE9¤C©·˜EJ”–lÍ!-Js®„ýîLéô/À~kµ´ú–,Pg©Sr!Ó™ùÚ²”BÓ@RÍZÛýÕÒ‚õøé*m€c›o‚íª¥knÏfKwSÊá\ Úlè$±¤˜ÿø}’ÿÿöúTA‚àŒþßÎgë{äÑãmû¯ÿë°ÎÖäEã¯Õy|òx/þKrJsU™ƒ£ªœŽcª¬†Ý0aDåŒhiãñGÏëƒÝ>8œ„]£4ù<Žò=•}Qú·ÿÉÔfàÎØ|?þv#ÍÇ¿ý)(Š2<ÄÄøøÆÀ0°8¤H*Dá²Ǿö#ò²z:×[?Æë.d.äçñó@Nãu3‘ÍD0“IP}ë 	’àAõ-úÃ÷â5°VMÐ
RÌó´Pâ9%TU¢ÙrsÕœæ$h<¡fÜE@¿Öõ‡¶ý!	+œUU¥%[N$ñÒD¾•Làf²¾•¨kí0ÒIÐ2ʬDv¿’w¿�­Cv´Ù
Z‡«¿íccüx®I,{¤¿ÿtäyNÊIq)žÿX=d^±¢þ´õ¼¥{v_¦´‹0gO³j™ªYEuÍê9Ô¬šC£[=‡ºUsøµ+–±Çµò¾ŽØŽkÕW\eª!ö"q½ˆQ]‘‘ù@h‚Õ~.ƒ†£Ðè¢ë’P-Ô˜À˜SWÉyªe›ÚÀŽB“©d`ds�§š™» 6ë`ó½ÉTÞç
¥Y¢M`Ôwé–öøù[³l=ÿñŸ¶ûÕw_Ý}ùuH*âì(âõ<i~¬P¹¦täHéšJá±aõ—Ïo«àbb_³`Ý-2äR©®ÇLcÊ<®8&[.GWFáDÂHXÁLÖÐqVK"•6°°	ǵ¿"#]ú
-Aƒ„Vmhyƒ¢°édšø]ü.f>s2s6ƒL°¢ª,Î(}@½•”zªÊWi)Ü´U@§ÚPCÀöKÅ}N)׏¬Ðê.2`X–V�Ë—P`”Åâ>.šš‹gûܥÐá=Þë‹Á'dlæ²3Ù¾™Dî+¤
-}°™ïÍ°É)$SB*	›ñ˜“5:IÊ(È‚6
¨J^c,4ÞÏ:üÜŠîÁ[
Ý=†d[¬)“4¦3†ÏMŸ¶‚ó;É—†/—Ì­èüœ¡{šQ»Âí2Ü:^ÁììýFrþ¶ò6øÏžmO{ºŸHŸÌá”Áp?kr'w
}ÎÐÕƒ_nîNs†ÏÍÈœÌÚÏ;ÜÉ™Ÿ3dÒÆä´ÀúmÛÖŸ²mÈB)~ô¯¼ ÷k æ¦ŹÖ
-Öþ´Þ,,©L¹#Û—u¡©
-*&*Ž.8žÉP»Ìûà!\uZ]¥Îì҆ši9ÑF%ÝæBy¤L-ÕUꁭî¬Ò[UìÙro^Ô끋z]¨g‚PD‡�u¢à"R_I–¨Ú²’^¨nzôí¢ÓB<í¤«}€x,N‡õè[VG‘»e }lNû@‘Êä3MÚð$kqÛÚá{Y«Ãqìd¾öÁÁvöÀØö�XÆG÷k›š½‰ÿ5Ø ]LÙLõuà{ÐÏ͇PW7Q=©L_2˜@ð:YÍ$^sº°£ì-õ þ±§°·ŒmÛ‹r„]üŽðmFdbLŒ¥N‚\ÒÎX-	Ìh‰àÑfÕIë!"):¬äWdÔa=öŒÕÁ®']~›Õ¡ÚÆÎ�ô87âŽ2–gxþ)þ)˜ÃàíÚàΪâE![–½xY‚qñàSà °Ã¨¹J^@pü¢�\$»prüG£±äµƒœ²p̬’(ÃŽ™w¢­Ë”¼NØ»Oy𔑈6]»[[x·‹å[Zݺ�ö „ø=ÄMæ÷ž=êûêõ}߇d퇪OÌ‘ñÆ{ö°g©O|ˆ§ÇT éAj+°=È0/ÐåUZ·²„b•3CNêx fda”cº´Š“$ÊÅ9OŽ‹ɳ?•öþ„<;öVûm=o6=Á+è@9º‚®‡5¿«ëèÚ=1e+ÞS»˜ $;.*˼€·æMôہŽ*+K’Š5ƒ¤²‹ _©W½ 览¨íEþ¤¾òS}¶~óì³Ô"ýx•"Œ3ð+Ø÷Ï2fÎÑ5HËØX±ªˆÚB
-Êd³«$Á(Ž-¸¤Š¢{¿wËT7h•p¿"¹÷Û_ˆŽ©ì5—˜ÌLP_Q{‡Ùl˜¥K©$G…=GÎÚóÆá7öœ¥}œþYýÁêS+vUv!
'àƒeÕ§>Àó*®À´y6Èl¬ñ¬Î¢M
,Š˜€ë¯óe3b|¹ùÒ‹˜øEEêWà2§bâq"&F¡zÐñY’k‚‰OēˏÙub®TÏÖp¡LÂÖ}
-ˆO».M€G\T±g%oGŒo3¨r<qP,/z¢M5Y˜“£…­p-ÿJ@Öm·:*•,éÊV6Ž= ¿BÉ¥&`â“·`™=<†ãgæ5Ì{¤a€Ò`°Õ)ʉ6 o¶p>}SBùä)„òèúHÌlÉÈô!™AÚ'“‰ì‡êI8'¹»œ[Ó™š™Uº™alÅŒ�8CN€Ûé*Y4^
œ„ËÀ{¼r�‡Ø,–$®ù"Ž<aÌ^	D…í
³è@Ž{-I:™…¨(ÀŠî ²®$í:¢~4¢Û/¹‡ŒÞý•—A#bô®¦mU	4ª“ñÌu§íf4¡ðº˜(sSq<a~ùªe_ç¸/sÜŽó®l7à;ƒ.ò˜æœ€×7X-Ū1¢»~^0X- ›Dþ »d6!Z¾,/Q*ÌxèšË°)ˆÑBÝÆœ@‘éËç`NÆc)ÄnËË_¹[ÝüÅÍ·•Ž,$£ôs—v˜]ŠßuxvÅ‘.MøI1°êuž=žk£˜2Š?‡".˜Å Ds-”Ei×’C1Í"¯µæPwOd©‰c:T¶¹¼¨lX«e‡Û[¨0€´Ã•
—û©†—ü!•yí¥ùŒ¸[Ž½Ys¡¡×	ÝòÚò¯ýÛ[¬ï6ÈkÔ‡@^Ë8v-šŽÓ
-#vF¥lâ PR]¸Ô)�¸	:@‡Aˆ)µàªÆ;A:3Ч40n0ç¼I Ühê9([V’®•[¨"rl+h. Å©ÝZd×·TVnÙ²²
-Ì^8ÏþaÕÄu]ú8˜Ë²¶®a$¹‰«Òxä®g˜„ÙaR$Í@{ð¶k¶^~a±½íú[Fo»òT/ҏŒN³G›ËO&‡Ožkik³Ì=ÉÂérê~àêæ$æ|¦œAêç”dUé£ã2è¶®b1 MgUét•²°5PU\%UJ³µ³@#›5ÔL¥I2³Spy¼r·
Ö:'Ê9±nÅ“–0‘Æ÷ÓlÌÁJQsK AÑ-‘˜´ï°‚B·ã÷ÄøûtóœGÞxûGΩØL{L6úÆ®ß&’VÒuãO/¿ü§7ªµ½+áð½+Ç^%?ÄÕ^|oØÖåx…_ϽÍ@gcĨA4DIã#2X)0s5©Ï*;v̯ý'£ ³+ê“
‡j¿Åm¦¿ådÜU‡P¾‰z=Q�CH˜­ÿö¹—^8{­ö«ýùÛžýú­}—ÜyOmü¾ÍŸÍý•þfˆ¤q+ô‡õßFߐG<¬6û\>Y[Þ	ƒ
-œÃ£ñs€Db‚ÔïV’†³\@ˈhА{(,g
-×_-œlÜ9j$w\ÇÞ¬W�°'n-\rçÝUÓýß}a—iÄTþÝ[eSÝ?®€T›�g”Ú$3™Ù`û-f–¢qxiÚ0FÜÕr{Ï\”ÁL9Õ¹D3Pʉî¥x,–)±F8…<h–`/Z-õ.Dç
-4ZJ†0úF«%£’!Í;fGÓ&WUòðî*¥­Ju¹ÌÊ–ÓÔÏ’Ž™;ËÄêÄ»$\¥|gÎب–’‹ðÓUZ”É*Ë«åþ¡y(ËN†‹¦…`eòJþ@ïLT}	XÐÛÚ§c¨³k
-{¼Ó©ËüŒôلݳÌ_ ¯084k6%~OTŒçÑÝ’ËGÑ™®	G/„"‡ê`TCê‘Á‹´£ �¢¸«]́¸$(BáE£ÝMF‹EÕFµ,4ÄQxvi¹æ£‡íÊØ^üÀK¨lÕel
Œ!Àw”§ìü%zQ±[EîmdÎ
-ŠãÍx
-hî¾s4?¾¹>îSד͚õSæ½Í8ºöjI
-e³ôÕ\[iÐPó0 l±eQ­E}L+Ê´Kü°–k“æñWQH—\ÌŒýý¥&Ö4œþ4!<) ˜Œ+
|Jð™×?qŸ¢]©¯"•
-÷öѰŽ}Ì_9í´ã~NÐõM×tOµ<Tf`ŠS]Ï-�k0F+ÕõD®fÂxe_¶Ð×›JÆîëì°è~
-¯
-‡ð
†àW'èz6îw«CápßèÜ'`ûüZ¿o�ä·vg9§Ý\ñfk¶Y‹øÑûï‡ûû”çšÈT9ôžP8u@~¡ÝÞXkdÉ‹’Õ1	$÷ád-ö¨Ñij\·Ê4½×J—KU±L0§-z45îÞ@é” »ž‹Ïr_)Ž¹‹ìû<yö˜X°H‡�c÷t½,ÁýÀ@ìMÂ:l”*äEòbH:ö¦"Ô¹ü6o8ìmX÷P?—A»9…)'F°,Ôf´pµÔ
-EÈ–9˲¢�ÜÉf‘AMšoDÐ\³&+®ÎTLó䃡“;*y`‹K„Là
-Ãõ†ñQ•¡ê�°Ü±7ómìŠá3Y—E¶¸Ø‘$뱐Ûd­–±½˜³s*öµ­[É©¸–½ùK‡Ã‚oòBL‚龸”f#€¨kÏ(Ý ¦e`2Lü�,"Õr„ú'#À.â*¥èò^Ê*%Ð_êLJÑÖD]4ºÛa/‹£E¨DÅRºšÇ½ßf¦iŠ‘–Ý ù(Ó<,ØÖI³t¡y1ÖëÃì‡*íÜÛ¨í❹ªŽJûÊi«mhJÅÑÊèhÅ8¼~xx=êàU¨4™šææ;aGò´ƒ)׌’¼høLªïåéØ>6q^÷ÙsJ¸Zfm(݉Ï”Zu-4–ìL•a¤h>™JXëâ`�9ˆ“ìÉ“‹Û‡[=§“ÛVº:óäk±6wØhTo<C½Ìßlëp:ɦrúÊ__ןÞè^72B:<i‡{ë˜{Z“-(ä_É+_P¿<‡þŸïϵ€”èaÎeÊ-Y´ª}:>U¥'£YºÀat”øCp
.VQX¶0½´ë–C"0+¥DFÉÓ…æ~¥C„]¥ÿ€`ž&G¤¹TÞ€ÞK‰0Ÿ$žB»‡(¯mÄAGe;ÖùÅ5ß–£1«
ÝÛ¹å±å•¯rÓ
g>ôù%íÝ}ŠkãšåÝ)Ì'Ê
-gÚLg˝´eÞê»—V6®>õæâõKWn¬ÏKîRª{·è#Ah˜Ä€£Þ(¢ôtµàéÃ!H売ƒsÎè“¥ÊÒ+LO[ÚæÍòu6:#0n²L›ß/ÌÎp'OoõŽô÷›â©„Ívì_{ýûÑsº_Ès`SnÒìµ2kðá‚c®·Q®w×[€#’TPj.Z0[@Q_CÙO9þ rü4Ó_ókk“³Šs¦dÙZ2PÛ-Ò¤Å$l¢Âä`ö丘<b.
-;0D”Ý
-"˜¤œ´xñân€×‘]ì]Y—”ŽÆ*Eus±‹f¼"¨}?~ìÍǹsp™
¥$3{ì™l±˜åV²f)¢kPô£oðwüC|ï`@í|Ù*5Qѵ�ÜN
]Ë¡Odt›}¬ÉLPÑqùÑQFÅküÙJDÙ¤²{&$edwÔ£kØ5Ô½™qÔÓ’+wƒFîÇuÔǶ êì5Ôõ|Æx*£ ŒrÒeàÓî‡$~	ZbG÷ã;ׂ︆ÀöÛtÛO#˜ëis/¨.¸¬ÐˆKåc·þXÅIûžO8?ÖñíÊ	íupÈáú¦ºùxGoR÷2‚~ѝÁà@(ƒ‰C¥·Š¹z¾Å™'öä?Ý~#&ÅF²WÇ£2a´�Ï^TßTß>ÞяÇKÃHÃî“ð?u¼üø£u¢íq¤È¬OØD”LÇÍ-Àü‘•:~Kh~ÁšCs:Í¡YMó.¢ùÅ,b¼5‡1œ+ALÜ„:BÙÕ2-K³
Êþ¶éhõÜü¿Ê9^æÇÿ–µ çÇ¿¡¿eÂþÄíOAõc£Ÿf„ŒíÖÇÇšjé`f0‹`eD«=I³ÝÒ@õÅ445óœ® Ž)Jã`Ÿ^´MHø8÷•ÇCógÎsœ90ç»p[=8>ÿU[
j`¢Vmü’£oý½Âþ©"5ðãlÀWfʳ¨?kqF™uH™]¥èNë)üqÃгG¦éhäÓáǵ£W*¯?ú:ÕØä
‹‹‹u‘½M½:Ý4s¦Zªbƒõå…µÓÌÐ|¦ÄÛuç/º\&¦™åÒaߏtuEÆÜ‘.î0×=ìt¼“¢–¸Ë5Ìs({Š>»a¹¯…riÅßs¨Š®=üƒ¡�@$ö+’Xò¸©â•]	]M¢âퟚ87“RÄ#Fݺ&tóë=€çè^w°øWÒ±ˆ$Þ=æ¿hÙæeË6wq‡ÝÁ û˜
ÞßûÆg$Ãê›ä°ú#<·èvïGòÍüŒ´ô!ƒ{„®倠3Ö¤¬š$ GXC«Àø©žáék*&^ªµ§ùTy‰šÆ{¯ýéu×ÿäÚ…ÿ±¿ß;çŒ+:g¾xÿ…›î¿ÿÐ.ö[qó¶Wÿû¾Ëÿ{dÄÛtéžÅŸßEÏ܏:Õx|MbŽG×¼ZtÍ×]óhD•ÑÃ&ê bˆÂ€‘½’׊FÑŽCˉ±‰¡³¥GerÄ̬~õ·`ºŠá¹78èy ÍÂFÔê…4[¹fSɾ™ÄA®šsñW„¥…Ë×-™X¶íËË/ÿÞMÛ§æ|i‹“5›O/]g~ók_yiÃü»¶\}ÅUŸ›{ÊÅÞxæ7·­¼(x¶Ñ·¨máŽÞÜ%»êöòKüg˜f&
-kå:¦Dj8«ÀKÑÓ¢KH
_µÔ†Ô°a8FÓQñ‰¥H	bÂP±ÒB¼¸¯%Oè.Hà6^&(:Ic½D¤Ì€b†¼ó(¹$òmõ4ÉáöÊ;ª}‡ìÿyðruùÛe—I§££ýÑwŒ¦oƒ‘hÃ+o¨üæÑwÞ¹0K¼®ùŸË.[Ó<ϽæR3“fè˜Á´‰e”TU1k³Ù¥ËÅÒ^E‡"SŠ¹€¥P+°`É„¹”è/ñFøLÖ§¶lâã¸äk¨a.B$3‘b c`o]s÷ddŸþYáùŒú€à_0{íì~
£-ëk=„H4Ùë1òS2‡ÿ’uȹُ㵗úâ¸þ7éx™µkÕqûSÿðáú/0«*
-ãeD÷ùÀæ×Æ«Ôm^'-3›")À­kh¤¬>2¹µ¤‰-Ü¡®¼GÃI.ÕPš[ù:â´Cý=ž?ù‹Z~¶–—$3s™²±ðQëì³V¨ã=¤pYÄÍDuJ./LB#•i>Ì	²Ë0Y±ÄبçH°F˜I>Ì$fÌg–Ð
-7õ=ê
­|O}
Þ+ìi¤íeíÈËê/Õƒ/W¨3õåqûö ±¨¬E­9êöÓhðHõd-‚AàOS€*šzrXµÑ¬¦åª‹ÉÝOÞVÕrk²%}YB?¹Ý‰Y~z±†5SIÕî2~'ýF4{`ÊÍÔ€~Cý¦„¹½®§xõzÌ…2èíÂœí×og{ñ7Ù$›ÿ•ÜäB .-œÁ«(_V˜"w]/#S˜”Ð69Á­rüäÝ]Ç×Þô{ù%ô÷™Â¸+Js6~i.è
ßC:·Õp¦¾
-C#ÎÀ7",Ðä0Û;öC~	"Œ*äí)cDc Ùs5æä³(4õŸ!“âYy<Ã3®´¢ª…w€×sã&'ùܳ¸·k|Gauh|ç¦YÖªÎwÑãÝ««ñNô>î¡ÅA§áÛ¨NãÖuThPT ;OÖÍ£d‚™Æ/{ýH]'N¶hô-FàþƝæèbêmê[ìŠ?«‘f׍)&aqs}ô3~%%Z3	3)Yà Ù¨>ôvP"cÊ‹ôÒ±—|„Œ•4YÇ1ÿ4ÿ4õçŽÐÌGKÖjÿÔ̇€žù°3¨ÿBÂ4YÌ{˜šõ9Je\Šs{ˆä¬gÏõ=õ€úÞú¦;ÔîÙCN¦‡'Àåb</	ár5Àe×àÂÜ û¸lŒg0°Äð°j–ˆ±2xÑ|t
-XXxq ¦Ò*KaÒõUÝ	¦QH pG›Å(`Ø¥)7—r!UH	)AžĪWwìxuçNx?¸c
-,mµ3ð>&q"Lî˜<u˜ã09§Àœ%¤&C³‰xÉîgß=o
-$·¨ïÝϼ{žO‡c:3È\D!é¯*ƒTˆRõºW½!:×ÂU%¬¹e¾a€/ŒëM´Ö›´¸ß̷͠ØԇQ‰ŠJf*—mÎ4*Ú½bÉH¦àË¢‡|Ø0ƒæx‚ƒ—sÃ|¾7Ía¥¤øq2†¯ÜÅ;#k`ͼƒ÷pŸI68S!?©ÜݱæxÏœž¦ìÉs“·OåW6ÀmÁÀ±ÄëòÙ\„—#CIÎÒž]ŸÍ-ióýù
jº8>ɨq´Dd7MâñU1׈wí–ÜR‡}¨OE·ň'&œ±÷Ȩxœ
-ø`+p¾1çKó¦ìÕãpZÅdÊŽ@4G‹¨Ê¶x7LCé\64·£ÃS-áú7zPsb_,žÎÐásÞ"õ—LË	õ+D,‡ÛÚµ8^>7L
-ùœfe@ÀA)žO“TÔq8ÚWˆçs°áTNú^ä¶ÏWú¶lrÿàçO©|áöðÿ¥‹+÷õ¾R	œ»¨²øÿOÉáÊ
÷+ïŠÏέœ·7úÒKM÷ß°ðbÿ~4í«•Eúøù¢_óæ"ã9_žº	XÏ›Ó%~˜3Es¾¼Á‰Éq4/àÉq
Y'JýZxÛm×þŸ8}óW
W1SóU'㜊CÓü“p|€9ô›v¬ûáNõ±gøÅw¬«îTŸs“³²?_/Õ${@ƒ™‡Öríœ^
-³èÓav4'×N&˜âå¡é]½©)P³Ó‹W>ùauãæ'?˜šowE‘-8öÁÀ‡OnÞX«W>‡ú)ŒLæÜa8V×nJ¬›¡Ê1ÍdÆâá±½lœ¼D³™>åûzžIíûu_Ö ƒ–¤}Ÿ¦¬v©ê,Ò­ÁðC˜£‹`ŽQO2P/@s°ø*þP‰74¤U# ?$/’ê!­œyl/Öâï|á­Úïk¿CÆ–	ÅدnƒzòÒ°t¨3k¿S£É¿R½
«¨Á˜FÐœqÞÿñ ^u–òÛ+·¼úôù&âÔ°`[ç\Õ(kŒðM±–ŸåÈ”œºŽ'øóÀKŒÊ7“äNõõ›ßÙI’7«›o&£úÎŒG`~/ÆÄùüNú{ºQl]íWb$…©¯‘½7“ÔNõµ›8¢nÞ®¾ÆæñÇR;Ô׶cm
Í©|€êÕqf9ÕÚZªJœú³C™Zfit
-™5«/àÂìJ›Æµ,Ð8Èi3.W!èÙ?ÙoA<a‚j:ÆëPMG±]ˬÔ>ÈÚ|ÜÛçó3x¿÷Ç’HïߎŸ‡vžú3o(ä%ix{	d¸¡N×$ÓÁLcza…éeÊ)”ä=9Ž¢Ô†Å¸‡vf襝†�þÞѽßjóäghaw1'EirÀÕכ̬²wÂTƒMœUNâ ^‰–³zbXB³m
-aÌÅõäR±1ëPª%ôŸ>·Gz?J
Yâ,{isÁ‹\Ìã~õW°y×÷
Ž7˵hb‘X=¦§RÓÄQ»Ïou§“%“×Bh׀æeþ·ÔÍÜ-/ÙÚ×õ#}ô'þYZ;”Ïóˁ¶)°¥^ÊMR¾Æ¿aCÁË:ø4ú|…¾Ä0&¤’1-VÍ¿4›8iz:sÁ¹_¾ãíÏt-úÌeŸ½æúÓW9Ïq§fÈôy7ÖîãM‚7*Æ¿24¤ÞuŠï®ïæo:{ûÀàš\w¸?ü‚úßì^“3=΍öU#{“3ϺiuÖk6„¹+ZZ^ú!ΙK?‡ÿfpQRŽš[UæºJƒ0‹à58ØgFM½q{eX	}°a°‚.&ˆ_ècS>Ù—J¦Òl4œ0çà#n“K
æyó"#3¦·9[ÞåkECÄg1;9Îä´úûçlš=Ë™|ô|Rj¾Ó½|•!gï8QÚÉÚx!VWНœ!ŽÞ™ä[#áé7vK–ÄðPxä½ÔŠ½ÅèÂ.·Å)›¬„7z›‡f_2û)²êâ®5X!ú¹×î3EλøñU¶¦Þ¦69àâ-é¥k[Ò—`ú÷˜ø÷øef2ó™Ù.OíUe†–Nº £R
-ÕÒB BT¾Ys hjoËÓ</¦dž!ºŸgÄÖt~xd>ú@c6lˆ�YŒ±´!U²@™4ŸÒŠò½£ì“˜˜046Ï[~Å–/Ž~qËËç5ƒ“ìfwŸ¶úº›®^yJ×+)„fô‡{”ÿQÒçÝÚsÁ‰%/»¾ÍÒ¶nõ†ù™Ìü
«×µa6èÄ}ˆ¡3§w¶åNøŒƒ,L̝Xt
-–¼¯Y¸îŠ­³/ðohmÅi
-´`€
-ã£
'1_cÊΚ%:’ÁlP¥/øí¡ÿüÏ_3R§Eq¦Ší;†’ƒüÍ¡Ø¿£8]û¬N›§sŸ‹¾è{¾·Ò÷¾—ál˝-wƍ` õ+~%د´ö+‰~ÅÚÏ<oµÙ]`k"­ÿ#³,pÈáœp0Vf	£ÑÓ§s$Ž.¸‘¬:gšúW’0,_'ø‚¡ÁĽêË÷&V>vù)ËîŸ=ŸØt%jFÏp:H[Òם‰MódÈÆÎÔì›Óö`PHœzîÇÉ-î<ºâ.éÜó¯îlSßêÛá~ü¢™uÍ+›‚cßíLf“3ý³Ø§ÝÓw×,o[›­wÓÙçÑþ_áè¦ú†sÑ“Ô­‘´¤A}–Ä&’_Ú”08MÒØ6ïtïضÿ"/ÔÇ1à3gÎü¾%fh9z¨Èþ|¬»ˆ‚»ƒÔòµ$*wÛaVcò(rsGFIP9ëÃŽ8eÍ’ôù͝儯V£ZêN÷%`º‡Âh“™Ã°éKP§|¾·¯€Þê
-ô¤"õdH\0bŸ…‚h0&‹>'Ù´~ëz²Ééó‹êÅ çÌ7Îô‹ê¢ŸÛ½=2—¬^¿~X}ZýGG·Ýk·ýMýÛi¾Y^Ѽl™YôÎòF„¿Ùp5®å{›'ua(ÀjRÏ9eV1ëêÑ÷<–™i¹0˜†>FÞ³Ò?å¶æ9ºŸ_’vaâä.)TüØ4öľ_»0$[TKa‡õæïÚÒüôœáþƸ@—>‰êi~YôФm/ÁeǍ3Bk|°Ô[Å}‚ÝMë(\`¥9p‡öz@/)p˜úQRµ}X ×ÿ½‡ÆöªOîºÏ©O²í¸î!<ø—J…]ÿ2zP_B•íºûÇîÛy½v Ñ_æ]R«v!™›èeš#b<–¬e‹=¥þ¤ˆÙô˜¦åÏ#70Zžÿps7³)Gð÷ÍÕ²™–j˜1OÊbLGÍúN FšúR“Øqp®’›ÐaKKàrU\<n±Ž�¹dLŽÓzBI^  ¨S½X¼àu@”×Ú1jפò‰öˆhöý©¥ç~å;_9wiÊoÄöL¤‹]_9rYËé«ÕÛoëJûEÓ‘JÇÊm^¶"—[qÙ…ÛV’µZ"/Vùa¿¡ß2ßä?ýZ'££,ü;²lüíØ?‘Ý¿CwÙïØÙHëyÌëüy¦Vo&óØ9ìÈoÕ‡Ô=\hìvöïÐ	§ÕÓÍ`Š†- ã›`µ1¨SëNªÖèáME×6¸„Ñ
-H4(x¡c]|™t’®›qìMrï/È
¸ßYa&õ´ÖµmVÿ@šPÝ0fOÀ˜eÚrÇ+Sº€ö.%©ecð…¯"› l©³1e±Y‹^€²T’›¤n:*ÉðèèûDÏ'ç`;	]QéÑÏ8.¯xY4–L¹
NG€»)ihÏÄÉØ÷
-k
-»#¡ŽzÞ²4Fž6v[K·{Òïö<,JpüØLÞ7«½‡½R¨Òácrƒ±ŽÃ٘ǣ6®Ø³—zE"v]!ùœÎôQ	¥+zÁëa,^ånÑ
-ZµßÖòñ·]0VõßvÒüAƒöÛb¹Á>Ë‘(ã÷ˆlµ¤l¸Ó1?Ö–Õ¦:Im§25ªU³ÑÎNÔ3‡=œ4·o¦ÉiLƒ¯½ü2é /¿¬B×’Éuþ…ÿ°'·Ão6Óê"´G-Új<Œ†k¢(q¢ÒøOÀ'ýQõ/½Ô¦�•µú‚…Z†¹¬bg…-Q2PîñViYVSÍw¡VP9B›©E°™Vh™#¢>½'§ü4-sWö`Єa¼&“ŽùÛ"OZ½ìOÂð”zWQK´§Cod
û;_ª[k¥Þ,º®ïÖsu­ «
-`õвk‚£«Ô°eiÙt©Ãˆ~Ï %0L;“Hi^ÎrÆ’qÏüŒþKÛÙèr3–<7ðŽXÐ÷
-aYÞ ðö‘±3’Öbs¸UÞ_àÞIȼØ0 ëÏÚíGXAòE×}ÚÂœ%GŽ=SQßµYI³DNVË­¤¾þgh^Ë,úŸôï„u6¯WåhFk$‡2ÕŸ-·ÓœêöÖÅõf´ÖCí9Àª«G‹á÷
‚ì‚T’,£Fºî�TА3„Ñð4Æ5yÝWÍt^·Êmt{ÏôÂûªëœ3·ˆÞ¦ Û.^øÐòþ2c†;H·MŸ7Ý:í"r¦zšÌ_ºÍÛâ	JžVâ¹q©ú­§ó6³†$w»×+´ÿ[ÏÐPùSèAþAÔ·h«)üK¡·»  Ã;%²ôÇeovïÞÝýæ²?íßÿ§Úö÷‘èÇ>zúÁ®ß,ûãþý\ö›®µ5º¨×EĘ4¬4®ÜvcæX¨âkÖóÖªˆw€`D,m-ñ¥žïâdAGg’œ$D%.žÂàeqh«óH:ñ~h(¥~³y(•mšæØp··¸«†ó‹GÝŽm™>\\ì'ë#Å®“·»ºNnk~ù_‚	õrõ«ŸýÍ
êÅÆÚ°%:œ›™r3Žj‚z{™6€USÀ’glva©ÇÇa¸aýäiM†×Ú›h»Ø+@Ô°LÆEwÙÔÖ….p­^·Ý­tª’FÞA=I9± öäÙ£OÀzúX†M"0SÑ<â0Ó>	÷"Š´±½7Q €ºw2¾
-È“«é¼„õ¯hø5÷“˜kt¥¶Ò%í4CÛ‹h—{h|-õ9.îÝZrm7ͨíé‚ErÝ€ü~›ØäIÂ¦V@9ÉÛ”‘O¢Þå‚H‰�Ó=3:BhIV´¶¢Ú*AŽzè2G“¸£,æ¿äÁòML•b³ÃA.tXEÛÅë’^³éâÕ›¶MNõIá1°Ÿ569àr»]jXy3'ð<k°|q­ú4í൘µ‹	‹ù-£m³Ãëv\»dt™ú´/õpÓ)d•Ô–¼!BXÎÀÙLûó«ÞÕeÚ¹À7k™0¡\K;¢h™¢°^OÇú
-eF¶<ŠƒéýH»!º”`-m‚éÒjq€Ð^J@eP°$#XRhkæÛ)íB­4áB‰ˆ
-Ó_â¦cåHª‹ÒŽ!hÐH%À†0[ËbJqñX*‡2<Zº	CA%3'ž{Êê¸Øî²:ÈÅ‚7ú”I}ÒÕdܾiµå
g“ñ³$±Iýúº»-b�‚™y+Q[¹?VØÙ£Kȵ.—d¿Ìf|‹·§Ä±ì_k“Ȫb»W}úòßï­ú¦Õi5si!ª
)¬Íµ¨³`±ô13ÀB)p®M‡95Q¤CJû™•Û%*Bg�yrpÀ…z)öóC¿K;YÜ}ýý%G†æu1XáfkñïT"éP’˜JÄˆMP
-ÆA¬èÃIå“
¢Å²tÖn¸MRŸ^6ºäZg±ÙwÚªç}
òl‘:E5›ØõìÕûŒžÈcY‹¤¹põ%›Ö¨?[m#öK|Öµ÷¸íu‘
-ºÒ¾„T_»¥¢Ç0XƽgðúÝ3—QòZ˜~š¤žÏ*Õr'-Á霘G³X|šÒ²Òg�杴J^r¦�s;UÿŒ09g‚¬°Ödˆ$´&‘˜à$œ'*‹5I“yqV•TÒIP“g]¾Íö¤óZ²ttYåmØ>ö!Ì�Ë—ß%=E}ÊÛ–Ír‚Ñïûæ=€úˆï;±®ÉUÓ«/ºdõ…8™ÈZá±f‡SÝ£®¾¾ÝØìü¾Ïíö‘ŠUp™8»ûö2Š8‹ú8Ì“'¬43t}ÅEõ7=¿Œ¦ïiÍC]6tȺµ}Œ‡V„—LÞþzM¸6`AÌD2œµç××=\•½»‡$XPŸÈ=ê%ìšë~½ç¬=ê»z�ÔC,¯¼H’¤ã%]_}`rÁª7]·Ì`
-ú4˜´l‹–ÊPòbï%7æu•-ŒØ¯U©£KK¤aWI
-º³Ñ<@tmã+äI=¨DÖ�zT}ýÅW^šB£aFb:Zö{<ûNDcÖæì§VšAÂ,<wÉêÕºÎN S‚v­ Séëh¥S‘EË‹ŒN†i©“·qд¼Å°¤	`¹t°DšhÃuqõOÊ„™ö£8ˆ´Š³r7£%©é×|Ns;ó%æËÌV}<;ªÊòŒò…QvSp5»^ëNò æ€1ÚÀ®g9O4Þ:¸hÍ5·Üzǽè°¸gYì±ä´SÏßòÀ—©^Þ!ºŸ÷M뜷`Í:¼æâ,³…ñ®¿èÖ;ï¥nNÏDžð}‚×'dÑ5,‡Ù‚]p^A¡Ä`:Âìle£©}i‚Û…¾B˜•Ã$J9œ)s…dCå…4—êKጇ+SÆ”&)¶‡à>œü_Þ¼>)Ír”¤×Râi$ý›©É#6Ÿßä_íî™Ò\G·‘>sU8çi»cžhjI»².žÛyÖʏÕè2¶5mm‡‡ç¼Á"ø}F—)â–Í–öøL›Õé³Y…ÌJ§Çíì›œCNi˜ã<„ë!ä,¢Õ-ÄÌ]Í­“)󀜽ºÙ</`õð¶°)æÝ‹¼óÍFÅÆ]jŽ˜‰ ¸¬„µZã2›aí&Ηt‡¡æ°ËHˆ`ñ$Ì&n¡$wZÞ€ÙíáÌV9%µ)ƒ3ð­qŸãln£…�µ„”Ó*±Ë.³µ
-›Èû×ÖÈÛΪÅÉXþYþVÆË0ƒ¤@€ô}²A.€’ž"ÆX†8ÙõÑeþa§:v÷Qû?\¿}ì)g§óÒ»:]ìºs_é;ýÜ;ßÞöìéó2cO¹\—0´âàͧô¼pÍ7·‚Á~½U¥@­ãæö•C¦è—Ó«¸&ª4þ“?TêéïiYÎSë-ÖvFĘÐÿ¢Zƒ`³)Úpj¢Qw¢m°B«6­vºRù—qCï[ÇÛT@G { 8Þßm�¬ØÒêµôªÖ1Y³«™cÒ
w\œ Ÿb‘{ûØ"îõá
-¿¤ˆÞêAl�Ã4Úh§'˜
ÔƒChUk(‡š‚?†ÕíZh2£8)1ÚuÐC‚j`ÐFÞq­'!†Åiav!d³¸î2%¬¸JDsJSë%ÔkGÝÒ´3lv¤k ½Ò>€~ ýG
c2Ú> 
-K:i:3Á®Ç¸¨´£Zfž;‡QvŒªkáVÌL 4	=”Ø…+`U¸¹²³‚QWíƒ}Mß«`Hµ‚/8ÀµÐch'Ù·´k½Wç^~/Íw‰€>Â,a~¦wlwVÑS¾(§ªÊÜ,–÷Ó¾½Ùr¥YÛIæÎZû¥
)°$è…ëQk'vÚHj¦þpUvѸɂê¾Â‚Ù¦N¥‡ZÚOÏ~X†J0ö°8h[Ò0HßR÷ è?0ž3;=|FË:
-k=¹l¢Ög_G÷à0n¶iI8J\,epáñ“ãuùñéïâ±>êOÀ-l–zÍ´ý” …©ZA�Øè'êtq$ÝÒ"û–«¥Å'¯l\GÌÚŽÃ	v΂	·¤#pª…”OÐ>è6íüﻢ-é–o·ô¶‡Ã‡;–»}¡Ö\n¥¯oCý£¿døoï,í
-óRU´â@šôÁ¨U±Wöo`J)Ì9˜Ù¯´ˆû­Î`SRHr—²9jDa¹ÉeqUê+Œ·¦0€,à7½½€%á°~	6è	ÃÂjf„à7P¹ŒÇ@Â’¦à´ø–y3§Ggµ§ÚDrgÜïl:ÕkNŸW¯æ’k½¹)étµŽýºwaáT³Á9­5é÷’Ó{‡6õ䳶˜„ÓŽ	sYÃìé¢ë¼åsWm:µm¾ÊCÿ´¬V³«§£³õìÌ:‘ÆÕ+…Ùä*ŸKnMá/ŽÌŒÏjm•ð÷
-y^Ü}ö¹§ýí#F$ÍÞƺϵF~ø1Í·¸‚éã¿Ç¯‡—g†”ÂÝԏ#d	’´­›X‡¦5`³ŒŽfl}.8µ|.D5h~ uGavTL³)X…½¸Œûd0m‡Y´\cNJ'㊗n¹ëìóïºùÅøºÙó_Ú º:/Ÿ72öºøCó|gl\y™mÖìá
ý‹fl¹<·`ðÎõÙ—n¾ù¥Ï¦O½hþ¼þ¬,ϸyÞIóæ_tjºiíIþS/=ýRÛð¼õÍó7®zò™çhøõô5ÿOŒÖÆã@`Œ	mzŸ°>Œ³`¤'@¨.ð	&D/Í€ïÙ1ç´3FHÓÈÈ“õ‚ƒêõ=˝FŽìl$·Â~&ŠFvŒœqÖ,õ#dãY³vŽàW¾=²ÃlÂïüÏYîîé…Ÿß²Ðom{r¡ø…pddDýÃ,M®WôށØA%„yð4Ò Vµ›zdŒZ×ØwkU´ƒ5Úþ¥É
ʦÑàÓÃPµ”ŽšU\ˆŠQ·^™_<ïÁ'¾\œ¡…VŠh¨þËÐÚ¡¡µEî[R6§³Ò±ù ±ÿÂ8öžšÐKÝ?žÈ`£1ÓãG©do¡/+ŸW@Ł€Œ&™ÿTZkÜétt8HýhUÿxð'dëO¹vNõ-'~ÄÕÿRþìÇGRŒìÊß0=À¡³™û¬cì õÃÙr7O=.èI NHwµìÀcnºæÐ9°Öe«¸@f]¥.ÒYæÝ30Nod˜n¹J³€ :š±æ¾©Zš‹MŽ0»ˆíWºDÅŒnØmïWÄo0Ž¦ÔëWܘ1ˆÞpÐqÅ4‰§ù|¯ž)ÈËq
-¢Œ•øFÌÄ¢w7Ì—‰â¡M_Iêó†u‹Œ6=²,]¿}y19wå`'÷©oѬØàŠB[ywñKkÚ{]b‡·Yà‡þé‰õ+Iié9N²œLÿúÂé·Í–-ç=]3/Y°Ø®V‚§kðÜáÏ?a]ºL\׶‰
‡ºü’Q�³Þmëtß:k~@	ŸÇÝË?
´ÝÁà*v¨(aMl¦ì¬Õ²‡>ÄãÐi*RúiúÖlÙO»úÃæβ@ý_£U”;5¯RҏoÙé#”bNñ9k¤¥£'‡;·Ò´íèÁÅ
KF,u
jåÒhI¥J¼—>BC�K(“â>؆I®ç´Œ}Ñ’4C&5lÀ”âc~¯ÅÌeº7>vó÷˜³¢5±ÚÛ•ÃyÉ$Ií3âgKÑ/D—fÛ—§:äŸeSkeÁ(YD›hžfke×{
-Áµg¶­/_Ý»¸9$uõ7¯êȳÛC}V‰…¿¹žÚ¬wó£Ý*Z
-wÍ™Ö5ÿŒ®ËDjý?ņÍD(%+ƒŠ©ÞT4.šY|giìeý“FiI
‡ÛÊÝ‚Ñ=V—Fúì~ñ˜ÞƘ!­mšhb¥·Zbx`o;Í“§ž¹rˆFGC2¶@Ã>K8Š,m–¡åÕáƒ0µÎ.Ã-ú#_,´¢°Ô„íÈ] ²²Ù}n—d¢•r”MØi£–Ž§˜DXÀè5ÑZHÅ.*"¨f‹GiÏiôh8QkŠT�’}¹‚1¤Ñ"­¾9§x:»‹[ö !hÓW<«µ8:Œ
Š*•	4qÐ:óGË,	ì<D}’€«‰ú]@rº¨“·™ŠTßT€ŒSdE$€ÃEã_¡( ξ ÅjÒ4¼6Þj$€  ÁjÞ€Õ¥fœóc¦h †Ž=7™*
Ô@ë$9gœØãT9¶Kr(.ÑyÄ
\²©Ö¿Mt_�!(S”íÚÆPĉ-g}Qû<.ÑDí"ÐG%yh!vd²Rìñ!´Î~†åŒ´K„«]
<·º?ƒ"ÆapCDKKçnäe3mLk: ½
F>(¢Â|…ލ˜”Ý´¿¶Û{`±X•â`EßÕ>;ÅS 8X4DÊÂÏD|“qHPè5M5â@[ÏiÄ¡HÇ?Ê•¸DR¾Ôíp&b±’Ñ°ÖjD\úT¥°;•«—$`Rl;I»Úú,f|é«Ám5¡8åŒZKà´/Xí•“jâ„ÖƒÑÖ¶˜ºØ@tÚ¶»þúßÁkx^0 |,t°¸^‹ïàÍI\Ìux+z3Þƒ[ïù¨ÕwŒ×î6O-–ëÑÌÔ‚ìÉõcXÐøðûï=‚EŒ­¤Q«\ÔêµïœT+wh¯ÅÑj°ÄЋ9	šøThPdÈ h©%Sjöàfìx%ã“!ôt“÷FX°Òò‘÷&�Y!KÕ}é#ïiu˜ª¶#GÆã~ÿkxcãðFÿxå&,ç­C4Þâ‘#´ï?<Ú" ²ôÿwÚF9„µ6Îa%‡hL€ˆ�Ìl íf€•ò¤ÁKëƒÌ S_Ž©Û+ÜZ§cPdÚÕD©@¨Zö†"Š
-§åØcB„'_._ƒZ{Ô[¥Ex®Šú°ú0>lB!.Õó^Awˆÿ*ÅŒ‡æ‚%±™F¤1Â׬%C”<èñwâL€-A˸Éõáfèsú2 ‰®ÅÆ×L2Iï6Ìf³ÃfeÄa6ÉêÏÉ—YV0›þ€úáb+xÔE^ÉjrÚÙ<¢Hxò¬Íi3»Œ?WºÖSŸË”n~ã™L™Óéfšl,5
-Ò¼‹ÞúÔ¶jºäôÌDÅ%*ÍZçQÒB>Š…Ôc…YŸ´y¥)Žo&¯Õ"“ÃŽÊg<ú®LTè�1ßÒè÷-^`ÙwhP@£lCM@ˆieVëp:é¢À
¶™Uóä$Qå“ì9 iiE­ôƒ8V-c5‹ÉŽÅéÑ H½mõ"ë” {Ý´‚ßB
-ó´j@ŸMË®«UT?¸eQñÑwÈŸÉÆûÈáûÔ'4–8{áõ÷Öôºeï<j&kïSm÷©M©m9µVÓDÒái¬pѪr°¥X¢º‡ªö ´çy³Åát{´JF¹	Ž£`³»Dæ„5:¬ÞXâDU:òå{.¿|ω‹tÜxúò9†¾Pè~i½·¨wp y”hŸ	ôút:7:}ºO±&Ì,mí«¼ÃÊû­®c~òy3±[&6—uZÔ÷¸ìFŒl2¶%Ëçþ“îÿ÷Ý\K!4O¸{©«³É™ãwgÐðÔá£oM¸÷poì»YÃ][¡
ZcJÐèlY¼½Ho/âí¥)¸ƒ:áæ=ìê/«óv±·6Üü»êÙÕ»Õy÷ÍÈÖŸß…x£ÏÖ_Ç\ªb�Ñ õ"÷QÌ}ôÖ>¼up2ær!Å%<XYÚÀƃ7³ßâŽÜwð>ò£òÿÛÙ¯n<ö&aÿñ?áŒj?éÀáÉþ xdA.ÈÖP¶<ûUïö7rN1Š7$ï�|÷¾Ç~ë賚“ñ™ü³ I™°Îƒ§¶Ÿ™V>«ØqN+ªÇš3‘ùÔ„úýåìž±
ä!ÎuôâR¯&{ªÜcÓk2±HqÃ*Ì¥®FH#H|æ†#[6Šô<왲µçÿü1Rä¤î!ZJç4Šî²Ù'k^!M¤àsdZ1Ž:n,‰x‡¤#Àñ•°w×Øœ]˜)V,îâÞö†©<öè«›CÜùÊôÿž‡æãÍbP?B'e£sxáÚBm¤Š™’D`Ù*ûõÆøu $~¤DË£¸qÀÔw¯Ù¦~!›{ý5dãõjâ7¾®¾w͍�`	Nn¸^m垨ÔæŠÑà °ÊLœ>+±µ˜DCg*BŠÔiâi(‹ÔÁ8ÿ	õú¼N âOÜXû?Šú!½ˆëè«ôäM_Ç÷	½IÝ”vÑ5hç ´s Ict¡ÊÄräoÊÖÉç
-3ぺ@:]ÈÏØýÇ–¥NÀ ¶(ñ`i9¬æ%$°vÈ2‘Îø@NJfM)çhV»Fçͪ¢§…¡+
4;°z’
-#Ú>¸RaŽƒÓiÇÁéxØL€¿x%$bžG	‹BÊV[�ýC°HNFA(-Öo&ã(T€ú—Ph´_=؈Ã%:6:øôÔšg¦œ2¹v@ÓÁ\Ñú·]Á+zÿ:2z„æ'‹´kŘ›þ Ɩ΃ß{F·©´ÎØ7c¤¢äæ°½IIn¦‹,Y9|\dÉæÒ©#ÔZèZ©+
½>º
-S"Y-hU4ãÕ‡
xÎéÒc@n¯$jµ’OP9JÄô3!aµt[ø£nú¢zî`Ö¿¦_ÒÑ£zÓhº	ÚËì·iDór½Lã{õ^öµºìZ]6-½fjNÙŠKÓ>³K6aÿgŒÕ˜©Æn±RGa&EýÉËÚ›Pïg‘ðbµÎxyíI°ÅlVÿO†ÐFVÝn
ªïìÚk`jï› žD{`üs1”úõ
-ڏoeÄ#^)΍4ö6^Âä0C†F#m9%W-³VÚ»m™²¿9•æ)|VÂx²k&»[hSãh!§Ïö‘°-—§I~À>4pŠKn‡9Ôê(¼8@“QšÉ›
ÔÍ‹ª-°XÝ\;2Ý–$wª[’¶éÓ‰Á,9¸k|ÂN‡Ãêrgýð±Ûñ°ÛÔl'?ÓÌ´€œf²LÙ¯k
-¾õ™ÓR·Ý@™ŒÖøÈí¢,h¦Zœ8ÅJ*äد¹nÃGe)褢$Ÿ´,sÐN¢Ñ4Z¹�t™uEõŽb­¸0SÐc¨PiWkÍØœÊÙê¡bÝÜ­œ}v¥86ï‘[qq1.þ!þ!|F°;ÌÉa.7“ôaÁ'0MR…a‚éÃNâ"‘á{Î;ÿ§÷_‰<"
-žïxz][v;w‹ht|ÞÑí~˜û}çw<ïü{†¢äawÚq»ƒ·œ{lç±Çû¢Ç(><1·×·ŒÞ_	Ÿãš¡y{'eJ#ô/Mh_f`‚µ‰û’íÙY”h˜šP ùÞa.‹Ì+éõQ4+Áë›I†Éék‘%/vˆ?ÍÇcÞI$¹˜õ%Wn^™ôB.vH(d¼á÷ûÞÐ2¼ƒnƒÅ­¯o;ý±«Š3»ÌæìAoÎA2YÞސ¼MÍKVý©#çÅvxì“R€ò1é¿ÿ)›©b
-œÔÓ.EÛÚ¢VK}þbp ';÷F¥D4…=]%­‹=}‰2}zÇGÜ7n ãкÎWv¡O¤Æêæ¢îs¨ÝÃL;Ú´êvoŽJ;Ë!êMÖúTiö‘zã¿Z‹›\}«ˆ©´Bˆ~õͯ¥p°4®¢&&>KJ漢½°jlîOpÕíž®‚¨ùðù}¢‹> %ÞÖ¡u# ûÁ–d[»Vä9©†Ú<è<Ìi]ý
9t(‚:}蕭쬷›³U¡“(Ãc/* ›þ”3r¯PmðŽÕ{5!F½ßEÍ¡÷ÿNO‡]246 “þ bT¡?úô‚:Fü|š@[›3›Ö©Ø$tlöy¥æP—}Þ`sìcFF‡èŸ'ê\©hæ×D(ä~**&À4öàTØ›Æa—ýã°K>½ÏÅqa7ˆžnr\ˆu);Tõá]xx×®©<#S®9uR/ųآ1Aõ£ÃÞÖ�»·žñµYÑ*¶.o%µç6è˜iÏ:.üôéÓ‡î$<.ë Ä¤ñöö¾þävâékß¾=yœiqÕÛ׮ݾ[fMžqZï:y:¦ŽBg϶¦&̇X²íïãqÛ‰Ü¿»ˆÑƒÊÇÎpô3Æ	¸hUO)fÉlÚ¦bÓ®có¼W
-6‡#±DŸç½þ`S¸¥5ùñűÖUþ|ŠçâÄ>2£4ÿ»ŽêÃð	ÑüµNf÷8>áL)ÖZU„²5“”	SÙãI³0duÔÊ÷äf­âóƐcõ~ï˜ÍÒ^UÚ]4)+ƒöã‘)5aQhÑ^¬Ó8>ydk=N$ŠÒH†ŠŽK¢sŠçü+“•)ò¯BÇH*$iirß™ÖVh¾¹õ‚hÈR§CxÒc㺇ŽšR^à_‹ÃÃчý)¢øœÙÉ»å&ÊÁVYØ]ŒW¬šÔ¯øÜûŒ6‘œ¸½N¾¥¶CôDλи’wâ§;ÒAËýãù½:®- ì©aÍ€f€‰‹M™”˜„pœÏ–[h‰NK,Ì:…•@«Qä,>×TwĶxiJuVb“.>XvŸÙéæ)AbQ aý9ʲ?‚V§Ô@”Æ,º:Q€'¨B„ÏîÁÕñ¤	àüF¨xbÒ|
íÖê~ðуü‹üIôÙ
-—Ó7ê]V옩bÒª¼£
f6ÒÕjÍùÃÀ4>kE’±_)Œªª”’ŸfàŒ`|tº±hO]¶‹û¬NI{2 G%3ˆ6Ôñ˜@³0$¯ì D‹`;.[þ½éš'ž¸&ÝÕõÜ%_ú%;²†Ì 7yÅåÈOð”cãÕ¿x `slRïÓÙ€úüÃu뇡îG‡f1hÐV3Á䬉`hÉ�…‰|•|ñÌk'‚¡9/(_U/~¥xÍÓS Á5ƒè¹ºƒ}Á�ƒ èFIŽ`ÓP’CÃŒœ	f™úÁø¾„Ÿ•ÝÝÝ»©÷`©º¯Vïz-üNß
kãñúd¬LÉe"ü ¨7y¢8¤t|fÃ]ÛŸá/X4½ï’î[t9;pý)Á/žyå#¬Ã¼èö@~½äò-º ¬þ¨»›dÃ,òGZÎ:õ³ÆS.{äJÞɳ0ÿ.Ÿ‰xÚc`d```dp\úÿSO<¿ÍWy–
@†ó<œz0ú¿Õÿ9¬wY%€\&(�h3ÙxÚc`d``•øß&­þ]f½Ë�Aó‰;KxÚcÜÁ Á²	§ÀØL=¬šq»100Ü„âÅ@>ö€Ð 9¨þŒ_@ìÿŸ fýÿ5“ˆÅ!jþï€`»aXˆ³ jÅz¤ 4#”fš1ª‡Â³YÐô¡ø†™yIÌ!ö+VÄ®÷ÿl¨~˜Ø(¿‹z˜ùPö	T;u vî²€43ó'’¿Aøg ñ• á�ãçÝ{Šçc	PÜ<Òn@Ú
-H!‡QÍÏ^@,Š¤—*žÄL@Ì
-gEÂ,G ö0€Áÿ–'€éG(Æ„à&˜dAg@)` ¬ÿsP!HçÿOÿ?å*R®|xÚc``ЂÂ4†%ø ££c�cã*ÆsŒÿ˜Ì˜f0azǬÃìÃü…¥ˆ5…M‰Í…í»ûöS8
88§pqq¹pup½ããžÀýŒÇŽg¯oï*>+¾¾.¾;ü7|:®	ò	ª	NJº%,&Ü'Â#’$²KTMt’X’Ø-qñ6ñMû$u$gHþ‘ò’ª‘Ú&uMꉴˆ´´Ÿt›ô6éÒ_død¢d–ȼ“5’=$' ×%÷FÞM~üùG
-l
-Z
+wOFF�����[€�����±\�����������������������FFTM��X������m*—ÜGDEF��t������ D�OS/2��”���E���`g¹k‰cmap��Ü��À��rÚ­ãcvt ��œ�������(øgasp�� ������ÿÿ�glyf��¨��M��”¤}]Âohead��QÀ���4���6M/Øhhea��Qô������$
+Dhmtx��R��O��tÒÇ `loca��S`��'��0oû•Îmaxp��Uˆ��� ��� j�Øname��U¨��ž��¢³, ›post��WH��-��
+Ѻ£å5webf��[x������ÃTP�������Ì=¢Ï����Ðvu����Ðvs—xÚc`d``àb	`b`d`d’,`�H�J�xÚc`féfœÀÀÊÀÂÌÃt!
+B3.a0bÚ䥀	‰êîÇàÀ ðÿ?óÿ@u"Õ@aF$%
+Œ�1–���xÚí”?hSAÇ—¤iSÄÆþ‰mß½44±­Ð,qÊPKƒ qÒÒXE]²(2	‡.¥Ô©ƒ]´‚ "EœD·
+­¥¹ßi]DÔ¡ZJõù½\µº8ùà“Ïï½wïî›w¿„ˆšˆÈV"±F¦pUÔ¯û×â.Χ(ƒg’KÃ4On«;âN¸‹îR{¼g`'!ÛÉP²MùUHEÕ J«¬Ê«‚*ª²ªªYq”9Ícœå<¹ÌUžá9Ô!ÑQÓIÖY×…-Ïó°¢KCõ•è+	Õ¤ÂÊU)•Q9¬4©Jª¢¦Yp˜]Nq†Ç9Ç.q…§yVV
+ën¬×)Ñ9»’÷Ê[õÎ{“ª¥öºv¿V¬å×›Ö¾¬ö­FWb++{Ý>·×¸a|ã€ü*·ägùQ¾•òŠ¼,Kò‚<'ÏÊÓò¤<!É£rÔYwÖœβóÜyæ<q9{-]öíþ“cùð]oœ®¿I‹Ùï!0l6Ì7‚…͍áØ{jG,ÔOX¨^´P¼d¡Q»…öÅ{,ÔM4°c¡(QBXè�¼m!ŒK†,Ô·Y¨Ha¬2Ù}«Ì˜˜0B«AÔ)ؐF}΀,êQ8ò¨Ã‚'A5î©(£>W@õExÌ¢¾DÄÈÃ&ÃUØd¸#›ËÈÀ&Ã
xõMx˜<·aäa“çŒ,l2<€‘M†Ç02°Éð6óΠ^†‘…çP¿$Ґ6{¸‡,´#›ÆžÐ{ MÎwpÌBïá8H¢þ�#³6™7adÖ&'~‰95r
+3wÁ"Ð[žEt’ØÜW‡:ýÓ­:$"ô™>2Íÿcÿò5*ß.ýlŸôÿäN þ/öÿøþhþ‹±Á]GtýéTèßß�Ñ�(ø���ÿÿ�xÚŽ	|Õµ0>wÖm#Y¶e[’%YÞ-YR'rö„ÄYÈj¶°D% 	,@ØBØKZjHÙÚ¤@b¥¥¤-…RôÊë+¥nûhK›~¯åË룼–¦¥$Öä;çÎhµèëÿýþ^fîܹsï¹çnçœ{ιË´0¹Œkb8Fd:Ÿ%L×”Ã"Ïü1þ¬AøÕ”ÃAæY£Œ>,ÈØ”Ã㎀#œp„ZÈ4õØŸþÄ5maßd“e²ü ?ÈœyÇ=¤øI:C‰Ç “DÜãõ(nI¤xˆL‘.1¢!„P'™JD‰t‘Hj€@L4’ì…P†ô“h' )ÈbÒ)vHŽX,fù1Ñc\'²âcGÍÖÀ±„u˜>ëŒñ1Ù~Âtüà?ññ„éø!x¡øÁT_qâ?qB‡ÛÐF‚‘¤#ŒL%½©DÀÑ›"¯ä?Y­øýŠºÇ¯ÀƒºÈj??8>NÑSkem„²¦AY³µ²Db¡4
ÙJ)¤•;•@¹j“ÅP$
+˜ï'qh®8`›ë;aŒêXÍÃ6CùFâ*„dËYýcá±Ú"ÔŒ‚ù„Ïù£Ûø'?hÆL¬Vã—ŒÖ,½>c‘eË3eV¹Òh† =Cû‘Àš†éÇ~äõxC½\((qb@¸4ð‰x†K&hׁÎ
¥©4\2ºÇ±6N1|-Ô;­Ïëj›ï–É
YuÔ@†ájêî›Ñ«xú¦õ†ži¸äŠ§þmKóëÛٍDøEöw¦q3ÿÌ·.»¼cAw@¶4t.Žgãñìükg´Ér°{~ÛÓWl~¬{ÿÖlW2»êöð}Ã27Ð6a2Ì\€6o”z@³$´ñ¡ÞëHÄSÉÞHˆ «g®›Ñí±bõtÏX7ó0KštÔÞc1Á,«Õ7—BòoLëè˜ÆÔ6Ä·6[,–æÖ%ñiáZ
¿‡,’l>T†pòK³œSGg¬\>
ñ#»øAö#3Œ«ØEµŽy‚kÂî6v®ìÚçè…Áºç†;u3Ó!ZIÎ8ì˜M�†k?³8¶C˜£Wq{`ìC*‰Ðh>HÜ1¿_söÙkâŠìh)œ›ž®ojªOO'»
+!~dXñgÏûB(ô…ó†ýÊ0<
kOYxÊe§¬©±Æ§Ä­5k¦—=dã²ðÓϧ> íü+ütÆCç-o
+Ǫ†„/äÃõ_koïܶÿ¶¼sñÕ+f°ÿÎOßz±tpÛu7-™}…dõíþ9Å	sàˆ©e Œ³\9.H4’!0¥S\ ʱk2™ï"?ip7œ\2z§ÙÔÔlÞ°Ñt=¹î…Wùç\!ûKyOXimUÂì¾nov›ìÛÇ6²:½èå
2ÆóLZkAýAÍ^âqCæ™Þ”	&PæˆïaFÆê¥Iª0Üã>þ&ïù…Q#F£Qý»Ñlæ>
A³·q*˜O‚á­ýãÏÿ‹ÑȦæ_@27¦ÌlÄ,¨‚sþø‰Ñè¾fȾ6âp7üÜ©?úÿMþ›Œ‰±1vˆA˜Ü2‰¦]$j"‚‹;‘vÛlk~va0¿ûgì¥j£úÜzþ›¶ÝRD:ÿg©×濱cë6’ÅÅywú%ôgâ(þƒØ#'´ÎuBµò#ì=ù_@?ƒ>ÆFØýVbŒ0žaá!¬aL4tXv¼¡ü:ÅFööh÷²9‹ïj^µxÞŒü¾¡ézÐÏ}´WnŽ}7}¶×»j“¯ÆΚÎïi½H©­¿º¶ÆÁÞi¥ýÅtêïüKüSŒŸ‰aÍXEôºEºbbBQ1ØÉöf”t‘x†ôFȮܷ-"dqA÷×Æ\ê·~F`³»è6²i䁕+ÀÿÔ¢Û^ȲÂ}שï׆k&»ÝĹ¾»íÈà<-
\èœ;Äâg1>¨w†0Ü0ßvòÉ^x ìÝÝ7lÛ<”šyÝÎ}™ÌS·o›9éÜ-Û®ã¾6kžÐ±lË´¾ën¹ùðŠ‡o¾åº¾i[–uó—§~¬æoà`jàÁ•Š{i×\C4,"iW8’JoñVò„bp¨ûwˆ²Cýªºß!‹;Ô'7×D.v¹ÔÇ֏Ô
n‹õoZ-n²ë¤ÕÁ°eùÏP‚òŠio4Š~LYä/zmþw_ÿò¾ØìgþϽŸþý§RÞÏ"tÞ Ó&NoN€¥)4ÆÉM³CÛG2«‰\j²Ê8d-É@>#ÛOt^¶Àì5¼+x͘e.^á]ƒ×¼à²ÎÛG 8›^æ ômŒ÷(ÓÆt1	÷s™Ìbf³J›°ßÒ	—%‘Œ‘ â<‰�¬4ŽÞHâø”ÝÅ@ešê÷8CÈÔòŠ,»5<Â(—åk²c5Y®I¿þ¶ìÍØ—âùAøú]|Åךål6+›Õ=øHVãcb´KÕ‹B´6ßi4•#´‹_Û©|&ó>NvQŠk#®pW•=ä¿uº7”ÛHÉ°R$
ç÷î
³[5ì‹™™
ÌÍÌg¡	­µé%ð1Ïä9}¼°ÐûÉÇþúÏ&@$&¸¨ÿ¹÷Œ¡l¬”ð=Ó1RIñò}9æØ#ÎÏ‚«zû??1z&®ôı_aÚùc|PŒI[íÝ:uÐ; ¯þäÇl¿Ñ->k4ŽýæGõ£ñYÑm|Zôwà
}û“ÑHnÑR=-B¾ë™õü~åm¼§‰.ِ±	.ÀÃõ¦Mz^,—»ë0%£ñ°Ê8®‰Eý«G¬Ä**|ÿsg|oÔò±ŠÀ¹zOýÿ¿Ö¬0s–¾zâÚé.¬ãWN¶^±	‹„yHk<J­’Ýß{nÇÂE¤Ýh¼
+
+TG·~æ’ço]¸ðV²á¹‡††zn÷АzdØ,/À)jl.ùÝw<w	¬¶?5*F qH|ö<f7´[ÿ6Tõ‰dªê“ü„õ©¢×?ìC8­êSì'€øN
+#½0”fñ2^~7¥¯:
+œmŸíM	Iˆ`Mö:ÓŠH¦À­ÏF²Ø9ñBä§Þ:ïáŸýágŸ÷ÖSk·ozíØk›¶ó#åSæoŸÌ¨oc3¤€„›¿A¢™'Ó¹m×¾¶iÓk×nËÁZ-ÒyúZP
ËÇ=Uc™'…ŠÊê¯?&ȏèK¡—Eu£lÎ;éª÷><v3t{8-Ù|Ã'
+ø«eêøa~ÖìÅH94²Èx¼¢×AÅ-³@üy
bT4@0ìb#]DŒDÓÑ“½lj€DSio:AgÐàöÄS½ìP z:„;¦¶-á|yH"r
·¤{ÒB{\ˆ´5RLi‡6öAƒáAÖæã–tM¾]èèÛßtÓá›øaøRò±KºûàËC¤­!Ø1ô´CÞígCÞ샂ð +ù¸³1EG·!ÒÚ€ÝXzû––®î¾éÙ›nz–µvÜ@±x™�ôíô›Ê-#i^ Ïxñ*$)®ÎÀWü’ã¤=ÖO\fùäó€[WŒ´“öþX~V¬?«ÿîþÐ`Lei¬::v4Öß$?‹=Rþó˜•a#ÿc¤÷]8YåÝFJâ™b&'{%LCìEÀÏ¢­‰Í·Cf]Ç^$Šù/ÍùïÒfߪÞM;ÀÚ;«óÉœ…	¥°Ê„6ù°CXÕV¸¥À§ð#êÆX~FðƒÚ<ç	:þvC¿¯cºµyBpLvŠ£¬Ó1ðÐF”v#ß9†
+/êö8VFë©01Óà­_Kôí?Êæx>£}úÔ#€G7ÔÑ‚\WŒp!.@ü¸îü»±bùwÉ¡+{ÜoªÕ­#»ÔPÃQÒ®nÄ«66
+cZ­çD‰¡¥â’Â(. °Ÿºuï;n‹M}ÑÁ‹Åý?»œ‚ªžävÊtžÉxíêF»ì²{É+È–²ù`¢
+×=Ÿ×" rPÏ€l˜DîV̶ß�¤¿±™•»?ã�íZ@ë¢Hÿä°…]º[˜¥3Àö5€Ì%O¨¼ê)Þ\^„Ñå Z;ú˜>F÷ºtf›-IºzÓ®€ç�Œyúu1Üu™o<å:Éoa:uqߍ‚Õwòykk â‹œ‹}0?jv²«X+ÀèæÝ}V»›­ïäG$sþÚŸº
+?2ò6ùª¯†ý´YÊI5c‘$óCfýb!¯X¤*|FÏÔÖ^º$Üpº7ïpäí55§ÅÝ߶6[¿mµàjg¹¨°®¢l>*öñ	KO&
+ ±‰8÷ܝ¢:Ç°…o¿êÖkõ¢‡Kåm~™o¾Sä-*4¥E¼}P/ûÚÍ% k:¡e×"å1AéJˆ–èÂâCAXš´¹‹Š8=	�LƒÅ¢>°Ü±a¦åÿ—v{ä|K.3ÆÛ×:\B¬xǤüwðºå˜bÉeb€Ï<n­/ñNç…jN¶jOTQMâÿòû‘ßÕ§ îå±gð[
+×¼1®ÏJò[H*èd÷ÿéØJê(R¡Y}äþ¹ÈÒ˜¤c¹hC;øay«hŒ&ŒCq;7/SG—nÉÒõy'^óûÜ9w×”[¶yËÒF`4;ëÆupX_#6Qy'xCØêq/öQâ€P&ÑNè§t�ºî4pÞèÁéԍqD÷2/عÀÌi=õµ­ÑXû܆D£A<Ûú½-®>>Ö1Û¿v‰HÅ?äf¹›58Ôó†þ%Í6›$ɲÜ'p¢L^H¯âXÎbpI’VqnÖ濁ÞéAé8¥åK”g'i‚!Uz†áSEšªI×ßûõÞ5Ù÷ýN=ñ»ûhpÍÞVÜ?¡›(ìEÅ ÿàš½¿¾V¥³rûÍ?Þ´éÇ7ž®ýõÞüËV£Ú‹‰É¿âµ.´ãOø¹Ü;°÷•¤ Ñp¤�4žNéRZm.–OÔø> Mu¾L'¬Éj5©ªâÓ`;´Mt‹AQܶM„›ïôyëVí™ë<`‘’
$m)Þyš¤Ú³ÑX„™ÛDaî:Ìá݁ªšq»1JöFq³15¤ä-Þl¸è\ƒ…3‰~X¡æ-2pFÿDðe‰éÖ/ñf!¯è2®½iç:à“=Ãhýà{ü%Ü{t…^€¶*ÄPˆˆ…ðBͽ]îÎYÓD3ÀØjd
úÓÖÔ*æw|âê¼GLϽ}ùË‘k7¸Ã‡Ï=0×ä6„o¢z*­ž¶âzo‚ð1~Jçw0ý0SÏÔe“Pw%¤”#@BJB	À 
%Ùø+„’	ü'¸½œÀ;¤%!&©§)ðHÈq î7fÉqöH.§Žæ²ìÐÉç!ØEÚÇŽf³ì‘,ü9Õšƒ$9” æH{~iž€Û	ŸZ³ð)O|‚!"‡üD.K‰ÒQa2Õ
+%©£š2WŒ¥É‚\ëŽ{é*™õB{7â,˜9.ø'ew U^¨ƒW¯&Þ$»r9¼µçrcGõBôçwl¬¦òÿä’lö<üÑú¾™Ê·îSQÂã‚…ˆhì! i¿Ñ¨vãîÎJ
:³Y?üñ#ù•¸_Óm4²ûq[ð‡ýýËûû}×,¼EóõA{VåПºˆ‰œ®ÎP|žDöåg©?9M©ÅÇId?{¤)®ûÊ/ÂðÐ	/\[ ˆ«Jùҏƒ¹ë[àœf4G>ËÁÌÁQ€K ó^ Œm×â¹ †¦›O—Çù -7wê]ËÌê„ô<ÝU3jƏ,ÄÉäˆ:“¿Y“µqÅ~ 0³™/¥m‘¬Åµ@CŠ—CÜF€q<·é’y¤xËhúŒõÄ\ôŠ¦0=—RgYìd‘(õ¼(_ð2’¸ŒØÉÊa³‡_Ä{p·M…T*¡‹0žU­”T¶˜Ù!³if$ÔŸÔ(Wâ¤q¥RC:P a3=b²Ñ rK1'-»{ Íö•HèʽHý1Êá'`Ùkϯex¢$’¼.¹hŽ{܆`¤Fé¤z›EÃ0®øc5xfMÑĆ䏾}çß¾Sýï•S¦¬œÂÂKÅ]Nëf'ÛpPιS§`BmmHÒv9Ä4ሄ^ìm D	$¡˜Š,€'Ü„ „pìWÉ­îgØdV/L¶;–ª×MZL­ñõó“ê­µ¢H>{€,ß덷ºÂΘ±ªã×÷Ÿ쬷ΘQSo
ÛlÜûùsÉ¿hýùÿ?A¿ˆ2qªÓÐ`ÀÝ5 ƒ€œZ€&*ê“X1L5:Ù6¢ë´öÏ‚+ÙÝßêO]ue·jõƒÅ¨%?ïÛ¼&ÓØÑaW?{ï¢Ë­Ë2[þ}ÉÒW?ÎÞJÄbòÒΙ›¥kÏ-\»Þb7‰sIì¬kf&ΛÜfê¹x~¬¿·nì™O-9÷VÚçÎ
”~cˆW"È—y)b\)„2MrW±Ëfˆ;MíóUë7¥ƒ'[¯ÍÀô¹’-c/ö´.¾Ø¾”›æ¨uÙMèþlŸ&øš.Óõ9ÔÛ) GêÑÚ!Ã!W*	¸60CŠÑ„#”Üq£ÅçŠÔørqŸOÝÈKÁZOÎWqù,Æ8́/XpãðÏíTšÉÈ‘±g<>¤)˜‰[J8£o`
+;úÔS\ÓSЧ¾Æö“Àá“%š†h~ðÌpÌ|J˾F~Kì=E0Nî¸QƒXßÇ©ÞÇ*çþÑç8;D7öQñÑ1ªµQCÃ%
*E‚yëy}ƒ¡ UG?>üI`æ>Æê÷'Ê6<ž+ƒíÓÄÿ3IVògÕÏ®yOŽû•ªQ$WBv®ÛH	vî…¢è[ýϏ	2ÿ+ý£Ê'ÿø6N¸ß†<úÿúžÛÇîÉ•¶¦—
‡2”ÿSñ娚9ÿ³X†1 \•â”£ûý­Ìdf>ÃBŽ~¶²ÊÕÍ-ˆ”t>¦W]Ùìp©PrœîZ[±²'žÊåÈ+¤ÆŒâµl†9]ï8qã‚ì‚C§é!Œ¶'ë@AA¯OuÿШäª
+!?M\…JMÍ­ÍfÇž)«ß•Ë=õÔÉw?A•N>Ï–ƒžË¼}újQ<ǏpÇ ^Îñò(»€}¿±½½1ï„+¿“2ÇàqF²÷4R¾„´iHď—îITër8ÒÐß^§™Úù!gm­óä>¸Îÿ´Î'á÷ÆÞÚ¸hÑÆEü`­sÌŠo¹ãÎÚl¾ñ…Û!õ(9~í¢
‹oÐàþ%#ð)þ~ƃúj$Þ@€Õ”ˆLp½GåOa{é®Íß¿fÎìé”)°zèªØ”Y×<þõ¯ïØñõüýÛ~°ùšÏ^õŸcàÒËš·sóÐÞë潺ã·Þú²ýÂÝ´N•RUâЛÕRÔT”Y%8ÛÀ­¤òKÌs3Ãq¿d]^©QTb' œÄzx¯)îH´“FÒ©P„mUÎZ¼jQ&œX¹ñƁåoŸß<0¸jÉYG¼±ŽÔzê]Š‡þÙ$8cÖÚ&ÖhäyŸÝ¼õšÍwΞ{Ëê9^˜¼æÁsfß¹åšm[våÕÀ‚“ÃÓ£!É(ZíAsÈÛ§ÇÎyÁBŠ¼Àü•Œú8RiÔ£B­g6ˆ{ËUm¦’tyW!bšpÇ®d
nÅ/yÌ‚áʼ@vÅÓ/©»Ô%Çcý¹—öªŸxñEn’:üå4YÃýõ²¼,yZ-ækr¶—úcH&öÇ^È©ÏCº'È®'^T®Ç÷“5ºœîóÐÇê˜r)(Š(IèÒJ™U׌&#€ÝŒ!
+YM.ÿJï«EX^|‚ÂÂÞL–«w@´Ú¾ìò¡ZsgßYÓæ´ºˆ…ü\ª�ÑîµxêÔŸ ²Á¿xÓ„µyºý—LïõCyo™…’<ñQÊO$)÷W6¥m%݆®r݆Õdõ”™‡Õ½Õð’{¡üO‰bþpÿ»AE܀ʌÞgÐÎÎý²ˆ¾¤§iòœ~ºA¤¼¢™òßO"mo*î!ƒÓ[TÀœŠòm¬dHÑT1Ó$…
+	ÉPԐ4^ÌûsfcA3·ß,ˆêXA­òPŽêbâksîYà†‹	šyHˆhýPäÍËâ+b‚W=}¥Óû;¿¾‚µ¨"Z&x<SySVYíÖ&=ªþ4Ÿ¼&‘è1Jä5u~è,Ó¿¤zïeù–g^QB\/¡PÊ„%+p‚re|Pn¥ ¤T’†cZ>?¢çï–eòžV"_[‘çQ©/…5Y�ãá|Š±àqI£ö/\§Ó9ö–Óçããªdi°ÀEBh$ªåvÒõ ±€…ÓwOL¤ …êÐúfpa
¦,?HógHùf2¬ˆµRbî…²L
+v	>ÞUÀSo™–°^1/,šˆÄ“¢vc«°Yò GmôÀŨÔ~¸AmêzªË?Ç/¦’ÿ4ÔÎ0‰�‡yj̸pák²î¶2«öH
+«ÆeE€RßbéÅÏ/"M
7ò5u²lÂ[ŸdrC‘&Y͐Ü&I
+`!>pû˜;¦õåJ-bàÂ--.à´VäMÚÅ4>©¼Fj¿–/î5ÀºÎσ¶¯£²ƒ¢Þt5}Â>Cþ*›<'ß÷˜dµæ?,cÂø¾üïdGfëåü¼2ҁ0wã6óó˜òL¬h"ÜfõKä¢×òÿζp;ÕÇÕǿ϶PÕd¨cÿ©1¾EO‹šÑi¾%ÿö÷ÉŘ(DCäâïW¬·‰ªõVé2š„I)ˆTöiÃM›êµøF�TÛz¡0ëÁªµù›U¯õ Sµþ7V¯ÿ
mBW6;›nYZU¢zSÏTg>(“h……îF"âÞ½Të½·‹¤ñR]çßûLÛ¶™|¦ûLx‡[Õs,'NU|®€¯¹Eà<ñ4)«R–‹Š pß*Š¸vU#¤gÄÃ*ñg˜ò·jÉ™*=~܃¨ìA‰SÜýÄ“ÎÍîAJ‚Hwä3@Nur®bw™°È€ÊŒxÀ}[ƒ`ð7º½’‹ø¤Z§ËÊ›tPlh	Õ³¦L.)NU‚}¿¥¡kqÜ'ØÝvÅéõˆFQr×·úŒ{ˤóS]óZëLùÿ(×@ã*úSfÂ^‚–+uöPe_k#Žñ•.É8éÎÉ‚%Õ ¯,…ª@•›£TK£¤Ñ…º§Ÿ
+t`‘ß‘ˆXÔAD;¦‚b†¤|pßAºâ7ð}qÒ¿é2
+@Yû`Ý~¥îÁµ¶ŠˆiÔ¬K½û0jŸ÷ÒYÕ(
žøÛR„úÃÓ~^ˆ¨Ò§8ƒ>…è=ãF"šËœA[å‹ÓDqûvQœCîŠXõ|Zõ‹sO÷…þ<NǦûcêPI|žèÛÖ‰¢ú2֍ë ÄůÐ1…úQ|îëŒFH\[
îÏTk˜Þ½$âÕÔ3’½ñXÓÙ—ÿ5ÿË®A…ŒqÅ_»írvÁô7óßÈ@øvð2Ë€Ïýi%«Êm‘ØŠ²f»—P¶ú^{þovvyÚfVÔw4eåw³
""Zd¿[ËÏT¤CÊ­"Ù›!CÌÆ›ÿåØ#^îÏê
+ÔïZ¹’fRÌ4¿¯Ãx»�p¢VërSK\·ÙýBÃß]Q„
+ÕóóB~#”V*ØpÈx
¾ˆ^¼­(ÜÒëo/`D«ïסÍ.Ðô±õEæŠOWTvõÈ·6íçÝùúM^~EyÖló¬Í/öÑ«çÀÇŠ¹lŽQ˜6M«©ŸŠq”":}H»eaãÞÀ-EYˆ"­þz"ôȏVKF5€’‘Ê8ª/7
+tÑêDè€n#D*'—ÀÂÜ^I×û³˜³øµüZ}pITmdL%÷7½@¥CÞ:Fþ¢By%òž�Æêõå’ãׯKS<K»ReëÅÄ«ÝsoºkøÉ|ȝr‡à^Ósºuí›~·ú–Ûïw“N·_µVêPÅ6;‹YÁ\Ì\ÆlÐm¦ñÏëI£ì"†ˆÃRð
+2�·Îts¨0÷ã^~’áõµ›î
+ÑÝ;ÄgELc„7¹Áãùž"û–È÷<^‡âí¶Ù$Þg$²yª¾ˆ©s¨ÙL×´©Éä$Ö �D>	\ä/Íf.ÁÙÕä³F;ÌæÿkáPñ•ìb‡d³z7ԐeͶ-6‹b²y¶ØÌbÀaWjnh7YôLáFû!½4ƒÀwßâssFCºnh–Ì_0óû…’>á±M½Z²« °ò‡€ïnC휌¬ÄÃ*#5/OöUÑN\(3oÄ@…[7`‹Mg8xÏßg¬e;f\yñ½—|fÖ¤©Þ‘¨Û]ëi5®¨q5q&Ö>¹'ºôâóï¼áå°ÑßÙ353éükÏYê­‘œß=WŸ7çâ+΋yxþIÎe<¬¾“ûÂPÃh±X	aëêv׸‚Ó"ÆùŠcJcú›oHÌO†Cu]³L5‘®«†ÔÒÅk““¦ðÑ–†ó¦õ„§]xóŠ¸æŠ˜~ÿ#ª;!‘ÞÛ)B58¨/P¬í
õõHšÑF#0‰°B(ôÊpì}ÑFstÒÜM|¹ÆlçˆÉ)]tϼ&ƒÝ–™¿,ã™—nt,¶h[ÐäY4ݬ$žwQ×’µ,Ëž@‹ÑàÆkåš`D”ƒg]rÿ£™·|êüY}ÍVq’wRC*ÔŽ9[o»ÿ©ç§×ΝÜdðX6Žš&Í=ÿâÍ}—íß°À/*͏\�Ë”)³ƒÉ5gOò˜lÓ¦¯¬Ø}ÙÙ1:>OýŠYǏòs(•p6Ÿ‚[‚B/t爁*Ì -n:±½
<Цðøè)Èú¬á+Þ°~q_}ýäÅëoxt>L®¯ïƒV–
FßÈßG¼@dÎ9×Æ[<ñs/¼í®Û.<7î±ðÖsó§B²ÉždïB'·wX‚üœŽ³Î¿äü³Zéµ£üáW²ÁÕ—Ù>2²½?í2ȳ¯±÷8›ç¬žÕÓ={õìfgcsC³ÜåœÕmãå –ÛÏrâ¾õe ¾#Œ›‰E>ˆòü45µqo:áJ£Öì¼X«°^ioº“P,x‹µfµ:/y ñ¼¯n9§VóÑ¥S§7=éºòîè’u-í\¸%•KåϦUv¶Î¼,»â³€„íÅêZ=Öv›ûâk¯¿¤NÑ*+_§.ýÚŠŸõÖž»iýšÚƒ=w
@¥æl¢m˜röô>۝O­ÇÊo,VÔ²’×ëɝz&:'ÿ4ðÎ5¨Ó…!êÕ9èpI	0@I[ÍPU""©sÙîInv‡R>ñA¸Ž˜É9tæ$ç¨3/«š³|k£8y´išE
û“ßøÝc8óÂE×!Qè\Û‚}%Ašf4ì s*®A8¦‚A³Ø΀Ü>D®=5uw¶Öõúj³ênG
�z?2”Qª/I=î˜ÛfýHýè÷4Ånºå“]™æ¾€ˆYmðªG"³É2äPEÝH™Íf¹vZnž<š—PiA_Òq/³ŽPÉDÕ¿ð	ã¨$$Ž~%NyhrÜOdM\‘-þŒmŸ(ˆä@\³º#½„ÔêƼ“ÒNïçJŸOÔåã>a+ÿ µuJ¨*(%Â¢FP„JÄW””¥Š¦½ø–ßð‘,$)ç÷)åÿ˜ú³’ÿê}×ÿ˜
+B\­–àÏ_»ïúÇþ¾w¥Vé] 0†ÑT¥OCÊQ}è¾ë5±ÐÂâ{Ho*ä™;;õè‘žÉrǨâêõMÔcå5­ÜãÑ4S
+: ´ýMŒ‹îæ›7(kY:멪¸•zÒ`ˆgp
›J†stˉý±v'²¡¦eðÒG^~äÒÁ–içD›»1šš‘Š6ºdA Ø@'N ðŠæ±³Ö­<?ÓÒ’9庳b¤ý„É©´EÁ:Ýh²{ëáh«â0ž vÛ§˜Q~{©"šH”ðƒßGQÔkl”<ü:Ê›^g£/ïó¹_i²«´‰ðó¿ÐÅPœ’›¾®>N.Öô?Îf²Â…Ü1˜ób•ŽzJý¡±D ì¥V
+o@7R@6Š<Àþ%IF©Ø0êmj=
[Ž}N‰âÒüÛŠ¤57¹ÿpò©yŒÄv4@<mЭá¿Á9TÅòp?ÚR7úú¥Š0Ò›š´ÚQÏG¸[j„¬ÐÈßÙÍziß÷·b“´ú~ƒð/)wC?â±ï	רa¥-/ŠC®n“™û.Ä•ÛHj63¨€’иŠpø‘“KrhëÏÏÂîX–êIçÆŽjß
+¿‚o­è1ÁÅ9
+ŸfÔ\Ž~Ú:-¦ÔÑ“K 4©±7BYÍö‰Ì†Žy%›DC~e“èmÀÞ@Ñ]Ñúÿ%Àrþ©ÖÙs4T®	™Åâ®ÐóÖG-âUgõ>ÏíûH‚OpVÖBìÂ]ô{9&ÿ^6¹|Ðm’õå_PLLI7Ç’¦iÊ®õé"'T	}Æãï? 4»ó¹›…|‡¦[FÇ­útu/Ù_y;Z”¼?Û£H†K®0Wz¤èc#¤ÙÙÐ)€Ž~.rÁŠÄ¥+ÊB‰°Š±&J°“ƒG 0ùË[ýÐäÙü‘.Ρìr·ŸO³kŽÝ;VC•‰ oX¨ úÍöK۝Sß³ër¶t‚åí²í„:z‚X\±úxm‹ÛJhÿ™x¸ðÐN÷ÇhÛ5¯¥Kè`…;ydp.Ec›4²XžD<-´llµÛip.»^ØâpÕ×:
Ùu/î»öü™.«ÅY[ïrl¯_æ4¸šã½ÉkzÎ$~Dq…]7/T_<菵ˆ¼¥Þã4K§$ðÆ–˜ÿ ™»ð&w“«öä·
†ž©S¡¸7ÿÿµ|K‹^üŠø›Žâ¯7íMsMGýáùçÿ°èhÇÃw”…¹Ã㢴0]?²´˜fjaÍ5aŽi–Цè6C¼2ôno•¤“Õf ì=ñ–)õd^Ëÿûövï	qNcãÔŽ´ûþ‹l=uÙáì]?;¡fâù-EÕ~äìöáÏnÏvøÕ}5¸Ï×%»šë¾÷ýú–ìèOÕ»³d덿=„Z%v¹Žè Ó³Ð
n¯K— u ÐÌ“*J¦„ê#1äh„u1HrìÐ	o»ý}ÿ”õõSZâu=¶‹îw§;¦nÏ—UØï‚Äãä•ü` FÝçïȶŸ½En?»¥þûß«k&»¢ÍÙl9 Yõúíd«†gAâÃ8NSGáê³ÊDŸ09M‘AK{Þ€K3ÝŠ„­ª�[_]’%W4zÖÛˆu9é\~åúåën3ÔÉê~ñÉzir–„ñé
Ååô¨“X3kâ`PsÄêøÜÊüâ’nÇåïÚ=mùºÁ]‹ÔƒJËks„ÍóTÓ9d™ÒõeYN`}ž¯/û]U#Æób˜;R̨“ÐÀt,¢ÚlŸh*ö¢×#JB+
+(´¡iGx\}~IÖ³F·Ýv@T÷Ëu†ÛÖ­¸êJ¨Ú
+±­÷ÌÿœÃ
+@-Lœ™¨áwäzÃY§îg—”úÓâw‰`wx-ù¿Øö´(dÙ¢]ƒ×ÉÛFÏ3_÷øXcY’mQÔƒçßWæb¤-©ÐF¡êKõ5Õd-0bƒâ¨çƒ—֨“T+æ‘_ïZ„xÜcËÿÐj*`ûûåˆ}|xâ~¸LÇF*ÚS*oêŸMتêA­Íó–²ýîTž1pÇ7µ1?‹Rt>éó»¶R'"ú‹ÀäÆÁEÂyÓ)oƒP7ž”æ‚Å%«ËÀ$rÃvõ¬
QŸ¿û½eE”ÇãØç”+½»nùzlÝåVlÝFrktÉÖ'µ¦'?R®„'ZƒCEÕI§Ky»	gaÎö0þ‹ü¡^áê} pE;…õKq{ÒáT/ù?ïi"%íÆÞ1ÎÞ’ÿbñ-ÞÔ¾qÆ›Ì˵ƒÛ+ ¢Š8Æ]ÀÊrI¸Üú”Ú£V•{¬dȪÍœ¹\è•AÍôÓQÐvOÄSÕõ]0.ÛêúN¨ìX9s¹Õv¡b?OE~ÚFPU}ož[YîKårÀéÖðñA¹ÃÌ“U%‡§7D€w
ýêöˆqÔbá/í‘hÈ
íáAÙ±‘hPbQØ“JB8ÕIºä?áI%=ÅX‘tÜO¥;¹(P‘hºLìd£Ñ
S •'hÿݱŸ>|þùÿT»‘¬ÜV?Ù,O•Ýç"\`ª7‰ÕãíÁ.‹2ÐçÝ>Îæ¹Dá²Í
fÎÖm•g;œ-íö„ÌCŒ'œ¥Öéu¹,»¡¥Î z—A`-ÇÙ¼¼Á$Öxvc“Ãk2·¦[x–p\cÚbüí“l΀ÝihµsµœÙivðaÛÃêM,gĨlñŠÁMžà–zÓܳ›7JvÞÔÙÀË‘V‡RWÏ‹N³•ÝäoÎ4‰(Ú-„µXB^ÒCl&Vnô±nŸ¿¾Án D4[k6ž³†›ìN×&µº}f§“3Y¼QwÐ@$“U$(Ǫo¶:-üZG¼…#&‹Å†/…}–?ÄßN}Æ¥¼‚7íA!M´àühöøW>£æï?iX²pÊýùr›¼A–Ù¡àbþöó?uϱ›Î¹³-hñäØíëå6;»êSÿBõ#/‚µé@Ñ¿J	Æéþ
+!%Q­)”ÀDq:{JI^Þ‘Ë¡õPY7UGçÊ(ÂÀ¼Ÿö¡h³?Hmÿ¬ÈÑŠævREˆíHŽôçÔ=ÜN`P)QœŸ¥Žæ€G9®ÓFM‡ÖSáMG§õ@2¤E‰$Q
+µ$Çs±~ä’TkNµ"×9®Õ†8ûcêF¤ñ^ê"?+GÙ 
+^÷*¦¼gUlFVxªÚU™poC¨°ž.XCƵŠ×µÍ‰×qï‚Kê[¯k[¯ãöK—(lÀ;ö
ºÓ¡ínè�%^ñRÔj­,$)§ ø·Êì1‹‚n.¿ßG÷:CÐïfŽÓ(ßñ,˜íÐ;š„Ä´©ôR—¿Fëž_~ðÎã^øø;¼ó¥Õ«¿D¾ô;6|/jGGSSG„›G’ӎļD¬ñzbRï¤/X?½ñûŠÃíñUÚÇp14u˜$`¾ß[ßœH47õ7Iò~¥‰~Iÿrêß™sùù#èŸ6ŒÛ+‘h„ºe€Wò6@wK“̸h6,	‡1Cµ"à‡·æ©Ú=­mÎèñe°AòÓóŒâ–=¾àôî@“z—ÜÐÐá²	¦sÒóls³]ô;kklµêÓr¬^"sƒ¡é’Ü>Õ&Õ„¬-[×ß{ÅJiÒ´9[‚ݵ³È©¹-ç]±dÞ¢µ²cÒµAnµÛ¹ƒägç}ê’‡¼»6hTï–ëüÉ–´?3sÚÝ^k­úŒLêcYˆ1ëZ²´n[÷¥ƒbÝ´¾E߆ŒçÕ¤Íw¬ºàk3Ôf™•åˆ>†þÿfMäÕD‚è…Õ ¸aåñDðé~}&ö¬Á@¼£5ugn¨›OÈ¢<¹­'`&bÓ¬¼±-6à÷®;ƒÁX÷"‘d*²a¡wÒüÞY”¦´vÖÔt·L³ð¦Xë¬Ö¸kñU�ß©ø­ü·aîèÔ=HR_Ã@¦£Ä+j“2—öT*‰Â£è%ìÓ/͸oƤ ¿±Óyá‡ê
£—»î›1ƒÔ9/7›  þ~Æ7áýŒ´_“ÛùoÃÓêÖ+‚þ$DüÒ¯sÞIH:çr£	ƒð	¤yiF:Ýå¸ðïäv÷ËýÀ(Œ¿d®O":¦ omØÿÅìdM”8åÒ;¤žZ9uêÊ©üHCg\›K/*‰ŽýÔ™g*¾-óIèÑö—±¢ˆ_ÁE¢œ‹RqîR'û[¥fõ?GÕU½Ao‘vb	A$ÿeõ]¹Õ/‡Ô¿ª£o©?|ƒÔÞQâm–4™G¢Œƒ7ñG™83Ú3+
¼74‡z*)¡$Ý‹JÀØpDµî“Núj5pÐq¾·“eDf/ÒÎ>ÎÛü‰è´à”%é–Ãg‡Wµø¸{…Uóë:g,ênŠ¯¸l²¿µU‘\ŸÏt™'Ö¬ñ%ÒüÑE‚«}àò͝íu¢úC›èꘒÍܻߺp±}UË+^b'‹’¯«o(5gã¼VÃBÕIœ¼äOEüm>·ÑÀ½©þ€5yšzgö†}úÁ¥ÜüA”©P-øP/ú€Þ«�ì„ò Õ6Ì)¡x5/t;1šp“1”L º9õAܳ|÷êÝÑ)ýµáåîX]mûókFEéH/ñ4}:¸,oLMªoò®»6]YãMó5¢Ëê0u[›ßyÒ«ˆfVêh¾˜?¸äÞE-A§_i﫝ßÝj²ñ
Ô.
+6|Þå5’`#ÏÕZ-÷svÁfq˜ÓŸ›íês·Íš>¢ãÚwêÿ î7C—å{	A“ú…ŠÒÖ]B¾ëÕîz,i÷H'dù„äávÚ?’`E‡•
+üx,‡öm±¸z‡`ÍF[ïê2aõv‰hp™%(ÔÌ’öü¾Ê‚ÉýÙ5Ô¦;GÚÑŽh”í¥²³¹\Þy";|"«ÙÊ–©rx‚zËsèP‰HCT×v¨P$…éõly}‡iyhvMŽCù…r)Ý#Ãx®›¿-Ü.(ót%fu»ôÊ€(Û…eÁ•UU–oâ²
+¥p´ÔqeÑË¡å•—¥sòy¸iº	X–æk¥`É>£X¯@2Pø¯.
¨2ÍŒ>«n„|‘Ê,/4—£Ôþ}Âò ®ð?Aí¸&ÍJŸ†Åær§+­ðÃɐñCV“]{ŽèìZÍ0�-	úùA=–ä
+Fø®$ë+”Óöñ%U¸Zy¢­ÂÞ—Ž°Ù²RÕ
·Bƒº)¿÷¥ŠâwT8úÁ(áaÙûRÁΣ*-Àª—ÆÙs€r5v
êÿ!^tZ:/ÇK,'±ÂêF

9€»=ãÚæGˆ<�§¸CíÑu“"$º-¾î²F÷óS2ç(óÉF
+0Q©Ü+XšðwÈ,»]=b÷h[qžB‹QI’
þ§ú;)"ÁÅŒšÓ9ÜÒ2ãšô6Ãr?çÓ}lŠVÇ=b¸[˜µ£j¯¢4€Az”ó™Œ÷KÚkQ?TÿÂ[%“É$°K¢Qõ-¯Ñl_@l/	&;ÿ˜Éì°¨ËDrª?P_d£E1ý~ýz—â^Iº~b°÷§ÔrÜè¼e¡uŠ¼f¹­P•/ÍÕº#ÜEÿ+šS\ìG‡-ØR4¨«	‘S®óÖS®óVä¿‘;ÎÈ*`ßG¸é*5'Çäûd™Lº
+˜¯ÿ~¤ÚÆê	à…5¯”FšÒÆhb` 
+½êœú³Â4€ý[b$~¿Gç£NÏAX$òÛ÷ß~ô‚}[»‘Wß}åê«_Á‹z×6múÒ&~Oñ%Þæj/árÍ&|_SˆÆÒyã<ç-â*LÏ›ø«Û,©·JQ›z»Í¤œð«·£ÙÂÉçÑ|’V|GVW~öË<mbl»¶©œÇËÆòB¹&Íö©Ì­jš šy¹ì\r=´æñ 'ç®9á¶Häf)šÿ¨¬ÜÇÔ…rÓ	wÉ!;;vs©ÔB™7Ó€ž¿'òkëå*«úirµ¨ˆ÷Šbþ/¨Kû+Ô”WÄÑR™ìO ÌÿÅh$!`‹1õ[¥r¾§¦ûŽ(›a\T™R²šòü¸"Pž?]Yã;?ÕÂÑ…ëyKRXâWòOCzó‹£êÔÜ©ÏHjPnýâ[°¨å¿Š‚;é͇Gó“ËqÎÛZ.ÀA¥ý.*@/¡)WQHQÕâ«ÙU…L†2^…²$,T=QÞêå�(J~ÉBI¢UP‡J°ê=êWC@Ûï°‰8&¢~Dõ«ßW¯æäìÓk‰[½š<ÅՏ}ô.÷"S<#Aë«>Íz	·ýê¨
+àH ¯œ†ó³¨EÉ	¤º²Yîn‘¢çH4ûr7P?99­Îæß¡|O-µ·5³Š	²%ã4µ	dzêO/4ùL_Pså’TÔ>¿LQ›ÄD(ú˜ÚôùJ8òÿFµÏ+)jCb
+›MuØ2Xc8$ñt°}œ&<?¸ö9lWÿ¦~½Ò¿Í‘åÛn“å90AÁ=&W=sÇÔ¿À—œ_V‚ýéÓ}¢?køU(m†øutEÔê*¸
+ÚK%ò
õtñÜÕZñp¶J³Ã ŽB›W·¾P üA lµž(ZÍL·zF íýZ²}¤®/‡è¿40”l™V	¬²‹i%L·ÿ^V`‚jpŸPäßËžÝ×5QV—ØVêk¹ÐÅzX8¹ÄÏ^s³Å£W4U*u´ }ŽLÊã8æFþ ÿ ç~ê3·¿B›"Ió/.·èO
+=7B¹JAÓèô’§�î©¿KÒßQ-¿|—¦’ÕVw|()8¨éC™»¸ŸªÏ%Ê´¥To×lásù7*ØÂërevðÙ¢üáì’6m«´“Ç–	£âÖC™T¾ÉpT'Ç‘pL!èjRC4·š¸}aºöSm‰°ú[%¨4a.ÅÑì²¹},—LŠìõBý¯ð=×:ݍ'©b¹ë“
dmã¬û}V›š©è‰Y,êtúö;¼ÜÙ9­ž¼ÂŠ›ßï	³:\ôI5ˆ–fDAû©¢™uìIœÉôFºH2  @:2	ß!°ÔÌŸjõ-ÐýÉ@ÙµÀGŽûðƒ“ˆ`vKcw¡™I“larº%l›¤EsÛ
+ÑêrDe·ƒT¨žibš™¦·@³…„d4¦›•ÇB’DH†¸Tœ. ]‚ÝK¶*þËÕ·sè\m«Fá::£”4v»ÏX
†€<¸;‹Ú»r—£þÕð%—ä²Ä6ðaꇷï½ýû¹Ü¥GÍÂàÏÎØùÇùÇѧ¬ í|°â¥g…уÁ‚†h§vìqtJ÷JÇÖKÇîÛêH¸^v‰Ž½œ­³gpñ§.ÝÖ?뜸ËB¸ÿÞã0¸^q÷8¶|fìS[¼t—ÔåØCx£Ò”œ¹¦þîí׬˜f¯Ð¹
+é^ùFB‡
+žPi©ÐWFpRßU
+©:̓ D‹Œ}ãÉÍفv“ÉïþÛŸúÊ}4ÀÙzú/½ö—F<„«P莣\‘ÈU¬'c?ÐÒ4›sJ
ä‚Êçjj>§@€«Qr¼-ÚÜÖ¤þÎU_o6ÇÕËq7õP1êŽË¤+ÎÛ¾rc6ªI
+ë\ ê(*v´2¼4Uc(Aü Ì£9ú3öŒæ]Çz÷Øü»­;0'¡=äÛÑ*,e5Õ6ª»VÔa,ÌqhÌ*ôë²P@wȬ°G²¸/ÓOÖj÷|ÌFImÇ	#Pzë;J¨wÊŽ}ž < ‘úŸÀzTŽ�út‡ˆ~£`ÂȱGP%;?®5(Þ(u¨”#”ÇÈvÕŠIÈñí#9,?Gù¡¬b4K]ýQgÔŸ]ÒE[àphʯ§‡ÛG›¡à+` ÜÄĘp ?Å@á>!Ú}"
+ÍÒ½¸Êr=ÔCÀD5ï 62¾¦ZYêèå��?à׳ÖiðËA¨‹
+T(øEU•Ju³;"}©ØÕº#–ê‹Lˆc¨äÊéÓ—£VäòéÓWþOû›&ÙCIÔ™úÛÇu8*烞QæçaðQ^*z(¨L­|Jӏ‡½^Žf©p1¿ûõ„0À4~œCˆ³Ux¨Î*ršV²*N9Ï€„׳¯Pðú„Å«sñÜp¶ˆœ_LŒ‰ŠŠòÍá3ÙZ"}ˆ&ÓrôO¿|lõêÇ~©ÝÈk¿C¾/Wj><ËüSÅxÔÀåMêbS“¯–—úg(]½J(Z#Ÿ†x©\$OC6¿8-àf:{êƒSÒ³èš¨oý4:œÓËÜ)Ž¥ËWb¼"uÅiu·hŽŽ~½dãÊéì%û¯¯ÕB±ûóAM
+sÍâÙWH.gvÿ%ùç4ý–ãvø+¸œ§ð=¿
+ðÕSêG‡Ï‹jWHWÀæçu>…–[ÿB{[çuûɶsÕ;la›z›iñÕÝWß­Ô\z½ÆåCðäƒÛÖ|¥ž\f·«Ÿ×�te¿º&ÿ¹ß•+Býk«è/t¿
+ÏCM„	/@SÃ>Tm
+±G`vú`?þª£ôþÙGÆ(Ù,zb"Õçðe¶¸üAÞ×AÞiàÿ»´š7ÐÓéQÁ¨R<Æ"i X ¶:¸IÜ‹(a‡V¾öœúã¦Ëç§;4Réù—ó]}—Ïœì^þá«Ï1ÜvîÔµþÚù—7œÔÊ=Ùpù|§[Jοœeíµ{)­eÜüÝü#Œƒief0ó™KðJâq²"*öF#¬(©¸GjJFhŒ¸‡Xè#ш·âµ£ñݍkš¾—5EÔR¤PÍ΋ã†	^p C©eoÿêíe…€:•ç¯{6ÈÛ¬Íï5Ô͝s‘ÅÆ™8‹XÏK6×ðV[ç=çÙ}V+ÿhͧ×ÀßJŒ›lÑâŒZZ›5ÈßW‘‰±”;®þTýé†e«V-Û@ÚH†êIðÙë¬ÎD<Í™[Ç)֐ÍÀßÏÖl^bÃXeòÙNN±„¬"K]£@Œƒ×bŠ©šË?.æH÷H
+gzXaÆðÐÙ’Aîˆ}MO¦eýXÂüH§Nr ÐóÚŸW¨;ñhtñ»gttOöyu3=–Âü*פîÌåØ¿ C ÂFGsh9JîͽZ°-”k‚’]L-Õ~hÎii¡.ê49ÍQr5¦ñ½I,VÝ“ÿ…^jf”»_}Ô,“í¬Q6?Ì5åÿNVçÁÏÕ
+ޞˍªYÙœN›å%ezËÜqƨï>ÁZè
 “NtñŠÓ1š �aÕ%þž=è yÏhÞ™««
H¸Á—ËJZöš?ý	h½vrœkÊÁ@åmÍY`®^insðêF\”*ö|Lœz!/?·)(“0Éâ
+MS4(šÈ—hðØ{²º™’æñ-î'×hŽæ‰ëoê7ûcCÒžÊ?‹6²âñ’²'|ubˆÕ£@´þÌ!³býÙ¡¡ü»Ðf{tzø…1UÒA?=Œ@œáá	t%˜ä•‰ÀÌå�iuš“[
NòÈiáD±ˆGÝT@Š:Ïp<ü(õcÓXéÉÆUm2Úϱ7z›ÚOòíM^öFÏ´YUfwGsüÁ“#‘t:Â/‰ªƒ•¶Îå~±OsÞ]µÇF×ÿÏçÝ‘¯ž(úü(^È‹Á±?Lû$ÀSʽ…WzT>mì'_§‚údŒ®ÐÔç:¥Ä�5®Lh;¯H7ÜWgzêgÄZÆÆZb3ê{2d5Jj¦Ä9Þc+ãù‘\vqzç²DbÙÎôb ©Æ¶g ù"l@צpæQB½b�ýÛS Qí>€“+d	p²¾î%}¯L!“™ƒ‡òçšcdwHo˜¸Ææ×p€x(Tì¾pÄèxî¿ßp#ê�:dvQ
qŸdAðQFdÜL³¦K¤mÒPRËí
¤pU?òlÃëÖ
¯ûzg°-ª‰¶…ÔjPÙî©b·ùG×aRõ¿ú&^qÅàä>uÓ8¤•p&ÃӮф
¤`íMGSŸ®¡®óÙܵao°ñã¡ÜWÜ›Z´aâÌÙŸÝ°·V5ŸÊR¿s2NX	ÛqGB	 ¾O “ÊKÒgéôðÀÀBWþý)Sg\õÙùêžÓ¡läË÷ö]zöÀ<ß²o-_þå-ø±›ÆA£ŸKMqÓ­!´Ã¦Si­gyñüý¿ÄÛ°]Kû;SêÆT'ã©ókPqÉæeêÆe›7cZT{~*‡7‹bê\H…?ðjÙµl3•P
œïоwïT2²ðjŠY;Ö�)ºl
DËueytOTøïÚjö¡üñU¶H­í¨úœXögɬ,õW´ÉÏ¢^ŽÚÂu¶¡![]Øv”Fèç”|
+ã®QGá¬h`(¨#	ƒR¼'5X©D§ÌQ ÊqMË6gûc'býúu³:'—ôÿ™®H(„?¸yÕµ¥ú¶Ë6£~.òe¨¬[n	¸ªŠÿ*€±U«yZsÃt 9ï‹›¸R!GÙý·©ù“MM$ÚxŽz€¬$]êÓ{ÐÃL<ü}ùç4ÞÆàJZÕõê~ÒMVŒÕ•hy× >@u»Êí
šå…î+³¿Æèôõ]áß2FqO8jü–Ñ¥°WCÿ»Qqíˤërw®‹.Êìä„«¾Þ¥\õš_´úü§ãôöyš¶\O¿nÔ)IÍKGR§êHŁq”¸ÜIÚÑÅ.
+d+u@Ï´õÓ ê¾k–ÙŤ}9¥êT«v6ö*x¤g¶e7?—™Ã¬Ô}õS§éÕ-ð íAUÛü‚íOMlJ
ÕpÛíժݧüîÕŸYw–Õéhœi6û\fAöZc,·rjFœTå‚ÐMj8kOë«51‹þT»¼ýqW½_ÙnéØ`•7®%³K«èÜéWÜs–d0š‚á:»Ñ`´¶OX•ÞùÒs$ã4¼?:ÿSI1¢�¢W-¾Pr}ê²£Š§9õ.Ôû& Pš™^f
+³8(ºW¡I¢ÃÛ`¬¢`@5a}ˆzµêiþV ¾p„²PÔ½+:–£d\jÃ"=üa€j£Šð­ä)W§Ô$qö{ÇÚÖÍœ×p)—Vüõ®|£7hj¬ŽÍöâ—³õ»¥Éâ$·Lëè˜Ö¡Ê9›\öúŽÚn[ ±¤k{lG‹‰Ä.m„m~ÇT—ÀºE‹Ûù¡ÑbÈ­¶m¹`
+»—wònyæP&—:P¯LJØí–YŽúéÀŒÕ_îp™NW¨‰ž›zVÛìS׃]7ÖÕEÚd“%i¸ç™¬|ñ¾úèÙÌEÔWMÁ“™7râ
ÀÞHB¨´Ë6þ`UG¹ZˆæÎ�
ø9 N2l2ÝÛÉ…HY˜½(šÅ—ÒÔÙiwœ½Ý“[ýÞ`ªcZ¨–R;Yz=TrÒvHþ9ëc.¡Ö²êGäŠÒº6»*pÕüÎ…'»[â‹:ú/˜ÒªXØ¥œ´CYÑ…Mñ˜ÖtÌÐ-'º]£n,{@üðcø˜Ob¸þæþÂIÑN‡.”xÁN¹F9ëÊ뛝Nÿ­Kóß[º£ÞXÓr=ÛôéWÎmó°Ý°Æ¦ØY+¾Ê?sýJõ¢Ä×gÌXµuËPý¹¯%È—V^¿Ûéè[­ù‹ ··ô„ÔWˆ ¯;éúWæ
³xv±iÈ/‡×XS3±åȼ”2¬¤÷Ô©Z¾<FŽ¯=0Vó[%•R~ËŒÏx—ÓäyÑsÃÕy?§Î˜(O†q_”V-ÎøaQñ*Q1	‹t$ŒjÔD„pRR~‡zÇ¢ìðp–"ð]ŸgwóÕ=¸%GV³§ÔßïŸrtøõ¾>ÁÛf×2Ôå/yòÉÏ?ñí»ä8ð®M@ÓQÔÎ*Ë„ÂýÈö¡¡íCäXùk¢÷²?MzT�y?±àÕZËÃYu׳)ÿãé]Í•ßô1–-ã—þaÿ7jô‚~”ÍÄá
+.dãÄá
+»
–Ä'Ó·½¸š§º“VÔøz£tXKþÙ2k̹d?¢§z‚§úz¥´ÙKŒ.º>,¡¸BZ¦¿`q„—'ºk–Hèqy¢û°æ¤5¯¾j>aÇÅÅ\CÙÕ#ÊçH;#pÇø½Ð7lº4¿}”ÖIR¸7Œ„°ÞŠ0§ûœð$âì=«VÁ¿úÑö‘í#ì¸ä_.Ñvª…sð{g><cÆáÃê˹_«£ÅÐO¨ÚÝgxôçñ5&Ç?ÀÝÊÌ ';zº„ÇaÎæaØ:zÓ‘ èQìFꉢ‘®^éÂMFÑ�°³ÿ9Ûç&­£A¨•„·ÕEbŸû†Ù½\±|ã3ÝgE}"+Ê>ƒÁh!­îÚA·b¹/p7¼Ðî™=Üz—Á©¾mi”%—ÍŸš3)^Ošj¼<_ãU¶NY63dsIr£™´8E—jñ¬ßý®Uð´„*Ï
33Ï|v¾ãè;ÔÛOÆéB@ñù,—ü,ŸÑ\cwd}6k.žuØkÌF9þ±'Ìä2Ð6D]e±‘xÜG¾J³K.×½}†ñS«†$ƒ@t"š;2�É©�ê¹*¤Ž”ŒÛ4§Ü1_ƒäxõ7³ÕQ§bj´Xˆ£§ß9›„§ÚQõ½;®#Ϗ{9†Ôe¼I
+š-ì奐br	B<ÞÖ9òdpzœÜIVªûóÿQ:l„+ëséiÕ#=ÑìT¬ð¬+R˜Ñ(ªâMÞDC$â
+¹Êaç̱	êONgÄj1ž9˜¶›ÍÄÜgqXkè„}F«Åèðùd¢¤×ÖÒc¶ŠG“,µæå&—Ó.Øâ˜.^É·wwcƒ>ÀE´_]3ûžUˆ±|ãt{JÕfªçª‚u_ù.º\ÿºþ*êö²W•=ÌÅ}ÔlNçՍo+^®ïßVÌ£îé‘	vØP£>~†‚s¢¦T¶jWz~_¶¤o‡gSÐ}-­üDñTd‚Ý-TÀAaÈêYfµ²˜Ç3,PATcm²Ú
Õ¼4gã¸}‚½•màE$BŽ„w¢Åª8Ü>«¬9–ä‘ì¸JW⁩°O¥õ/9ÿPªJCÉXA{,™@c,tEJ¯ËTÈj½¾9ì�•8QÊñ•Óõ&¨ äHŸ þPÁl~K%Æžù1€¾Ñ»¹
ü-èeÈDzxN›»Xuz’Ý.9½ä}‰MÂc&œ:¯ê”Z5¿ãÓ™8·ø%ÕµÕ½øm³˜¼ïomõCBö:ÐäÖá‡l´ï˜8™ÎßÄí¤~óËܦ¢E²¿j•T§ßÁí¤YH˜Yá»vønƒV^IN]]ÂŽåCXkg#ÅscÀSûˆB’$‰Ã=’$ªkø}cG¹&ö÷/¨ßzç»ß}çä¿çÊƵ_îÑv6<7¸½ý´IVGG™úg*lôŸ\RXS²T‹‹®)ÙšEî¤Ê%Y uôóÁ~Q~>X¤¸ˆÏÐ…±Ö`9ÓW‚“k*‡@_ÕŠpM¸]0¦*ƒ%ãaÀ“3X팁K¹Mü|ô{†£FÔ”»ƒú‘
+ì·¾d7[Õnò¦Õlÿ’ͬÆD‘üÜÌÏ÷@¤Úmõ˜ÈÏñ8‹Ÿ›°e ¯cżô#gH›ÐÄdd@~.ŠjÌlÃlÉ›äeRcxîEÌä((	Íí™Kž™Ïm¼êïGëX”A7¾×Sõ·µ@[lÚ×.%ÈëæÕ£nMDsˆ]n€_Qî·• Ú5Ài?zûÔGüTèG3²¦T@e	èi´×,ˆƒ°r¸
+O2<°Ðè•éÒl+³À°/,Á–%‰¹­m²à ¼ÓÛšXØn›|–Eš›¶÷]˜Žˆ¢lÃ­™ôœžÆÏ[m<’|#¹z×+„5ˆ¢ 7&\5Sô-˜{þüAEß×^Ù¸ì¬t“KäÂËέßçMñ©^rq]‚îFmÞC%2þ„vJÒð)W-Î}OM"`Õ9l²+ì=…%"«çë£ó­Tò˜'8ÂzH3QҐßûÑ©ùYìP~V¶‘زèNiì¼ÍÜ7ŽÕðÄÛ›¿ ëÎþ?w1ê×�xÚc`d```dòÍ?ÌÏoó•AžeP„áBYñtý?ðÿÖ;¬"@.H�cèxÚc`d``ùß
+&ÿ]a½Ã�A‹Š_xÚ}S½JAžÕS<‘`ŒÚÙ‹«‹€Úù�Âb)6∍>@DÈÄ"èX\o“ !‡­Žßìι{Çé,_¾Ùoçgg“˜gÚ ˜¹#J†VYp>uC4Ó&*Ù<=$Œìð¾g9ÓW@.0Ÿ¢qêò‡ú- õñüêñÛ;Æ:pt"HUåeèܾ5äÕçüVg(÷[Aãx­9ÏÝ!ÖÞ´÷EMŸêß—ï4þN†&Óž×ðwj³tþ™³ÔžeσèLpŒ>†w‘ï†õ>GàÙpfz`Í|´Þâü^ªaÙżø>äŒÇð¶)Ço©o¥²‚MÜg+RŠm¹RqÑí,÷«‹RJ¹à1—ÔÕX‰TªäN7t‹{I–E—\îFÿë8ãU
ºÉÌmbÍù:f—N±&’ýj9ÌY�xÚc``ЂÂM/^0úáK˜Ø˜”˜ê˜Ú˜Ö0=avcÎcîa>ÂÂÁbĒIJˆåkë.¶"¶/ì
+ìIì§8ä8’8öqšq¶pnã¼Ç¥ÁåÃ5…ë·w÷)ž^-Þ8Þ
||||[ø5ø—ñ?˜ °JPK°Lp›—…PÐa)áá"Z"WDmDWˆžc3KÛ öO<H|™“„žD–Ä4‰
$þIjHfHN‘<"yKò”™T†Ô©oÒqÒ[dŒd¦È<’•‘u‘Í‘"»Gö™œž\™Üù$ùK
 n
-y
->)f)QrR:¡\§¼NEDe’Ê3UÕÕ9ª›Tß©E©u¨íS{¡Î§ž¥~NÃB#Ec‡¦™æ­<­7ÚÚ›´é¸èÌÐݧûL/Mo’Þ/}+	ƒm†j†u†—Œ8Œv'O0‘2YdÊbšfºÏLÌ,Æl‹9—y‚ùó?[,%,#,§Y^±’°Š³j³ºf­c]b}ÏÆÁ&Ã掭‹í
-;;»=vïì
ìg909$8lqTrìpüàÔäôùÃù›‹K‚Ë<�Qˆí�����Û�›����������������xÚ­RÍNÂ@œ4I8÷àÁ‹
 "ÂÉxÿ‰FÑ£T(•B‰­TŸÂgðâŃGŸ@ßçð`œ]$ÈÁivwöë|³³S�ÌáÄ/ŽÎhÑ×+îzXÃîÖ1‹…#ØóÂQäð©ðnµ¬Â“ÈjO
-O!¡½+#þPx‹ú¼Â3Ä…ãÄg
-¿"¡÷=¼!©ß‡ahÚn·]w,¯å›–×Ä&<´ÑÅ5ب#€GŽ4’Ha…¨Â·vp×]ò;Ă߀ÉÊ\>Ɛ‚/wU®U®Ηdnñæç(¡ˆmžzˆ“W¤–‹‡C}›=GäÛ¸aEœ’bgRz)à„§—ÙW«õSiyDë·Œ‘¾SyŸï=™Á°§’Ôèí¾«u2X’ßt˜Xã\@“ª
j
-NUqr…‰›X•#ÇÜÓXÿã-Ç©ñÕP>&»]~å6};ʵϪ@Íã”é²Bç¢2ÙW™öý¥™‘È3‡¼Ì2Ï,2ƒÿcæÉˆ…��xÚmÕU×”e�FáÙ€`ÝÝ­s¿óÖØóÙÝÝŠ€(*vwwwwawwǁ?Ÿ øÍöÌ÷ä^3kf?ÏÁ5k:c:£Ïß:Eçÿž?;Æ0¶3¶3±3‰q,Âx&°(‹±8K°$™ÄR,Í2,Ûù‹åXžX‘•X™UX•ÕX5X“µX›uX—õXŸ
ؐØ˜MØ”ÍØœ-Ø’­è
-z”TÔ4´ôÙšmØ–í؞ؑÉìĦ2`„Ù…]ٍÝÙƒ=Ù‹½Ù‡}ُý9€9ˆƒ9„C9ŒÃ9‚#9Š£9†c9Žã99‰iLg's
-39•YÌf§1—Ó9ƒyœÉYœÍ|Îá\Îã|.àB.âb.áR.ãr®àJ®âj®áZ®ãznàFnâfnáVnãvîàNîânîá^îã~àAâaáQãqžàIžâižáYžãy^àE^âe^áU^c¯óoòoóïòïóòó	ŸòŸó_ò_ó
ßòßó?ò?ó¿ò¿óÇøi3çÏ™ž	ófÍèv»S‡;¹ûïßpãnÏ-ÝÊ­ÝÆmݾ;y¸ÅÈp«‘qƒysg¾¨F¦Œnía_jº£x‰—x‰‡<|àáxø ›®k'vb'¥k/öb/öb¯°WØ+ìö
-{…½Â^a¯°WØëÙëÙëÙëÙëÙëÙëÙëÙëÙëÙ+í•öJ{¥½Ò^i¯´WÚ+í•ö*{•½Ê^e¯²WÙ«ìUö*{•½Ú^m§¶SÛ©íÔvj;µÚNc§ñ^½Æ^c¯±×Økì5ö{­½Ö^k¯µ×ÚkíµöZ{­½Ö^ß^ß^ß^ß^ß^ß^ß^Ø‹î£ûè>Ãß­ÜÚýï{­;¼GôýGÿÑôýGÿÑôýGÿÑôýGÿÑôýGÿÑôýGÿÑôýGÿÑôýGÿÑôýGÿÑôÝG÷Ñ}tÝG÷Ñ}tÝG÷Ñ}tݧ¶§ÿè?úþ£ÿè?úþ£ÿè?úþ£ÿè?úþ£ÿè?úþ£ÿè?úþ£ÿè?úþ£ÿè?úþ£ÿè?ÿ¹ïÛé;ÿ=þÌ]3@¸ÿ…°�K°PX±ŽY±F+X!°YK°RX!°€Y°+\XY°+���RæX®��
\ No newline at end of file
+ûËw(9(MSڡ̧¬¤l¡\¥|Hù
+“ŠJœÊ4•Gª&ª	ª{ÔDÔêÔž©¨ïQÿ¡a¢Q ±Fsæ-5-/­m.í*]:otet;t¿èiè¥é-Ò»¡Ï§ï¦_§¿Iÿ‡A‹Á%C!ÃÃu†/ŒTŒâŒfÝ3V2¶3Î0Þf"a’`²Âä’©Žé<Ófvf5fwÌ¥ÌýÌ'™_±°p²h³8aÉeéeÙayÆJÆ*Çj–Õ=ëÖwl$llÙü°5²}cge×cwÅ^Ã>Ï~•ý/‡‡cŽLŽuNN+œÞ9K8;9—9/p>å"à’à²Îå›k”ë676··-nßÜÍÜËÜ·¹óó0òðóÈòhó8ã)äiáçÙâ¹Ê‹ÉKÏ+�Ÿsª9�����§�������������@�.����xÚ­’½NAÇÿw ‘h‘„Âê
+/‡"‚TÆDñ#J$Š–ròqr|è!'‰Oá3ØØXøFÁÞ§°0þwY …1Þfg;73;3»�Âx†ñE0C€q=ç®Ëæq£XÇ4î°‹GÅA$ñ©x×ZBñ8Úƒâ	DµwÅ!ò‡âIÌéaÅSä¸âùXñ¢úw¯°ôÛ.¿0«?ù¾o–ÝN³â؍ºgڍÖÑ@\ÂA´`àžsbˆ“
+ük`§¨sÝ¡}›,ì«0©YƒËaDðä®ÈµÈµMyFËMváYd°ÅS÷±‡í2Œå¢Äé0~™>´/ãŠqJŒžG
+iòô<ýÒ#cýŒ´0ë·C~G²ÿ²ƒ9eeKv«¯­Ð²[Ú·{&V(Ó¨1j•1…M‰Zqr7±,gKÜ¥þXåè›­õå0éíò–›ÌÛQY{Ô
+ªý›MžY˜¹Ð¶z=ÉË×a°:[jEÝ¢Ÿ	¬²BZìZÿ=nôüs¸`Í+oÍýÔ̏��xÚmÕU”SgFá샧BÝ]óýÉ9Iê$uw÷-J;m©»»Pwwwwwwww˜lîšµ²Þ•‹³ó]<3)e¥®×¿7—Ré^üÎèVêVê_@÷Ò$zГ^ô¦ÓЗ~ôg�Ä`†0mé[¦czf`(3233³2³3s2s3ó2ó³�²³‹²‹³e‚D…*95ê4X’¥XšeX–åXž†1œ4i±+²+³
+«²«³k²k³ë²ë³²³	›²›³[²[³
Û²Û3’QŒfvd;1–qŒgg&°»ÒÉnìÎLdOöboöa_öcà@â`áPãpŽàHŽâhŽáXŽãxNàDNâdNa§r§sgrgsçrçsrs	—r—sWrWs
×r×s7r7s·r·swrws÷r÷ó�òóòóOòOóÏòÏó/ò/ó
+¯ò¯óoòoóïòïóòó	ŸòŸó_ò_ó
ßòßó?ò?ó¿ò¿óòóÿf¥Œ,˺eݳYϬWÖ;ë“M“õÍúeý³ÙÀlP68Òs䘉ãGE{R¯Î±£ËåŽò”MåòÔ
7¹·êænáÖܺÛp;Ú›ZíÍ[Ý›Ƶ?ѵ•Öµykx×~yÑj?\3V+wEš×ô¸¦Ç5=ªéQMjzTÓ£šå(»vÂN؉ªk/ì…½°ö’½d/ÙKö’½d/ÙKö’½d¯b¯b¯b¯b¯b¯b¯b¯b¯b¯b¯j¯j¯j¯j¯j¯j¯j¯j¯j¯j/·—ÛËíåör{¹½Ü^n/·—Û+ìv
+;…ÂNa§°SØ)ìÔìÔ¼«f¯f¯f¯f¯f¯f¯f¯f¯n¯n¯n¯n¯n¯n¯n¯n¯n¯n¯a¯a¯a¯a¯a¯a¯a¯Ñî…îC÷¡ûhÿQNÞÜ-Ü©ÏÕÝö¡ÿÐè?ôúý‡þCÿ¡ÿÐè?ôúý‡þCÿ¡ÿÐè?ôúý‡þCÿ¡ÿÐè?ôúý‡þCÿ¡ÿÐè?ôú݇îC÷¡ûÐ}è>tº݇îC÷¡ûÐ}öôúý‡þCÿ¡ÿÐè?ôúý‡þCÿ¡ÿÐè?ôúý‡þCÿ¡ÿÐè?ôúý‡þCÿ¡ÿÐè?ôú©îvíNjÿHMÞp“[q«nî®Ïë?é?é?é?é?é?é?é>é>é=é<é<é<é<é<é:é:é:é:é:é:é:U¦>ï÷ë:é:é:é:é:é:é:é:ù=é;é;é;é;é;é;é;é;é;é;é;é;µ}·ê­VÏÎhåS¦èèø·ªÙo����TPÃ��
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 000000000000..64539b54c375
--- /dev/null
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff2
@@ -0,0 +1,73 @@
+wOF2�����Fl�����±\��F	�M��������������������?FFTM `�Œr
+‚©$åe6$†t„0� ‡"•Q?webfeŒ5옏€ó@ Â?þ¾
+Úöˆ ¬töÿŸ” †ŒÁ“ÇØÜ,3+2q
ËF®YOì&>±é±bÒm¤5ZŽæH$±ªYŠœ½{ìH	jd†Õ‰ü²%÷¹Ù§y"§÷ö×+@¹Œ]½«eŸû{úÒûv Nc‹)»nù“É?~?萤hò�ÿž_ç&iÆÊÈѝÁ¤‹?º>üå^K ûv´-cۍ1íô€‰2K áy·õ,'nä«à�(ð3EwiàB‚ &©ÿéÎT´lhØ0MÒØÚÒ†dåYØrñﲬ³ntiÞ]Ýyur•´¼®û™îVXsj¡¢žågMnªÓ™HW•©ÃÔ r2ô>iT`V7¸ÍR(±¨ÉÏàÿ+ o6ó'cÅÈB°æë4ç·Öι݇ƒ‹ã¿š®T	]a[Qd<3wq8,Ž…îrTI¡8áŽ0>E¸?ù*E¨ç—¦•#Ïú7'ìÝý†S	ocûÊ·í_‹7&#*Ñ+)½³ Ð+4a°A6¶cŒçy±Ù£†f(bFéæäÿé´$;{ YAÃ1vP-tGøÿŒáÀ±Í"û°•ÛCÂf- W‚÷®šÔ™ÎuKÖ°Kã#­íä¬Ö*K†<Ûü (ÑßëÔ÷×ÿZþ`Ù«åµ[—%êYTŠ¬{%¯ÉŠ$ˆ­ s{oïíœòˆƒÕ»ïvt"pàœ4`Èêß©ŠÏ¤}o`ã³Ýú'neÜ>
+äG5s�zó_Nó
+’PKÓ¦vmUÞɾ{z½ÜòîóÿŸøøŒ‡"3`l
’–W#Ԑ½^@+,c¹Éko©AOpnuµ§Ôzó–zJ)õÜÎ¥÷˜Û1Ç}ááÿO=Þ­¶€x¾RÆÄ`ÁJ‰`§qƒ¥‚Us/¿+økÒvÇ1xlÝßçjl–Elì\nDŒÈÃƶ¯V†±æÿÐjg›{Zdå‰z75ÿß!xmÂ5oÂ[½¿uïû&·¯1Ú‚HBkAâìqrêÎRÄ
£·°(\ghôÈ7‰ìÒŠy=†HµZóUPhéÐ$8RgÓÄ€zÂgÍ­ÉN:‹à�1u¬$Ü…¯¤¡ž>Rý]åú—¦¬"Ÿôf7¼—õK¯^'˜ªë½3“+E/¼Ä^‰YU5]¨NB.ÞÊ‹¥Ò8ßÅ+Î͏8ù,|‰{M|ŒAŠåua|Ðaˆ’ìŽÕÞ˅՝%�
+lKG¢Pí,NuæÜÔkþcï8mX@ÚÓdÿ̘?ñüÚó¢çYÓ&Ïþ{êö”ø³ÇÏ?ÛPÜ(®GŠ]¶¿ÏÆä¯äOää·ä×ä—är-¹’\LFÉ9—,&§“yä8r¬û´û3÷ÜŸ¸?p¿ï>ê~Ûýºûsèäÿ‹žÐ¢ÓDǤzó1ú¡?\U5q=­ÙtÑzÔ’†&Znj¢%émM´"}¼‰ÖtkÞDºwh¢-=ÿm¢½Bíéõ76ñô®ƒ&:Ò»Éqt"Ö1:“¬ëЕ¬©u;ô"K_¡/JdÖc0–l²õ0²Å'^B¶ù8VC¶Õzg°²½¬[ ;Êúdì
+ÙYÖbȃu‡¼©u;œ@ž*}y‰|.©¬'C>\g=ò9àVëŐ¯·[o†|gð õ^ž¶>Šüd¼
+9­ÏÇûäîØÅø”
+*E|A¥ã*M­[ã[*mOÜßQéz?PénÝ?R)YÁoT&[ÏU*‹•5ÀSÙMBþì¡¥ð[³
+­„ßoYDh­Õ{ìÑ,}1<f&6h¤†'Ê¥U#V¨Þ­¼¡¥EûD"TÁ¥Þ©Ð¢AD9ƒÿeB¹:©Ä%OœÁ ÒÐñ‚‡ØFuŠn 7?%RG4"„¸f©gÇÁF꺁 a=‚‘-³ÕQ—á½y+B½,ÄøÐ2ÃËÖ…5¢•‡ð™„Œxn¡Ϊf*!¡³æëlâ|GXQø ÞƒUp”ä
+ÅEu Â@ž¦å-ð€Do.6YZö‚-&a>f?›�«“NNœ¢	]ÔO/^;\ÚÂJÊ
ÏBÇEsJrª ÄšõÆ'ò…g/ããÑB%Ÿ¡o Cõêºn•7‹Ü:|õyƒKt²&÷$§Øs¯|¹õwPˆùÄ\i]¾$Z@+Í¶¶Õ€90x]»r¸­%¾ÈÕ+öRU¬Em‡+Ü°ª£;w u¬À9/I¼Ô7È7Õ¦¹Qþlu\¦yÐW‹N)ë8‰Ü°vYî*u´m”¡±¿éâ©âºm(	fÊE½òÿG8²¢j#I¬½RŽÌùz#q¸ß·ß	„)Y ×$‹áЛ†c_%¿m-{!0-`;áå…¬ñhyVõäÁ]Hv!	Ïta½\KïÅ¥[Ì1{"çj 6@ì–3T0%¥¿éΘ"ÇÔ™ÆZI†Gä›S“÷‚.³ÄΣpÆÓ¬SÆ1eéûÙ“ÄØ›ùYÁÿv»8d±\±B¡l¡SûþR)ÒÓ†çù¯–®€{IŠÓ†ôÒ%”¯>û0ÐŽÚ¦³\ð'”cg½2%4 QŽD¡
+0Í’3B²"ÉMŽÕŽ&€ÛŠhIÇÂÚ§ÒRg·ME¤¡©¡¶š
I½Î(©ÞÕ5U–D]}ò™bí8$—‡ì8¨>óáX ²h•"lµÎ€âj.%ˆÛ€HHÇ-Iš¦Ý¸#1’C4õÞYÞ7„íî®íYÝ–¡Vo>PÊ]¡6¿·˜ö™O4ÿ7f
½~�AJdYFÕ€Ê.–ÞoõÃþy)	Æ8lƶ22ŽeŠœ¦Ò1H¡[t‰°@!È…2\€@¸5ÄÙ“Ê%Z×îüÛkÞ’aõ®Ü@ú.`n¨3ÊOFŒ¢R(󅥶÷ÿ½ZkLkF íHWjY
I¤ê5×ç*ñ6ÚÎeµSbk.¤¼5F,ì.•N0ßÔ™’¹€|”†V¦€||~Nô‡(	 4·ìÚ],ìJp|~ùxeÓÉA¨Ô¡¯5ˆˆ/»Ú»S¤ýäô”Ðvò×Üy?›ù²'_v|rê„ËXÜøîHéQÊ°µÄ“B@=ÝX¬ßú¬B9Ë4³˜«ÃT©ØB‰B©c ­Á«H‘P£Î+‚ò‰_““ÕYHÙ#¬$ªËÊ` ìFø£ñB;ãµÂ+Û”…BPR°4̼ t­:tõ"ZEºJ^!XÂÇ“à¬q4_dTW(5äÜ€§åÿä¸ÚI±”UŇÒAÍzþ@U6ÿn.WGXýÀÁèHìRKÀÛ&'swM±jŠÊŽ˜‹±<Ÿ”±˜3¦)€–`#F@F Ô¢àþØvoÍb$xï+²à¼uû&´}‰|ÊX&[Ùª8F‹-¹E&/>Š/ÑGÅ.aêz^ŠÞ/ƒÔþ})œ²’ó'“x©‘$O=<ÇÂz™¤oä§áA9M؝&ò~î¡™¹3rµ3gŸœ¦'¿8Ò£\°-¶MDzÈè˜økºÍ5†ù±´A
+ÝÂýªG9©ä|1-Ø! Ç87û[œô¤,mRîu|¦57®
+=Xþ‘¤,˜aJ§Ù›¸^t´N›4ÓØ\fЄ]AzH^7·ªF•èþ•™„&k"LU>}ì>çrBåX(Û‚ªë‚Tš%¿«Jª¿„­dhKÄ”ó¶P“²KÁTFaA‡3HH†C[r;a›À¶d·™‡•54ÈÌ‰—lL„kjG{¡ì8Ÿh~ä
fR@Ðìü9wàB¨¤àÐ0ëzSõô°âÿ'— a7‚@Ý@N›±ŠÝƹl‘bj3hNî²Xö‹F/Éíe¢s£Ù'úŠDsQ«ñ<þk^Óíò×¼²ýˆZASO¨idºSJãxN4D½³ÀKÓ!´¹Ôù	!Ù«v‰¬hA`ÛE–·X•�¼Ê-
¢P
íÄ:Ÿ‚ÛѤCê:ÂÂWÍzS½sÄdO:¶_¿«ÔË`Š:tÁaηБ¥†²Íسú¢®
¼IYð4Ç# ø*ÒÍ+<êq�n°oÔ�¸u
+UÌcwwóx$dµ³ðÆ¿}ρûÖÁ94Ìýšíü9p¬*T:ú%GQæ…^aŸ‹‡äÝË'¨çeƒôbö¨Šl-ÕÜ*XÝLç%*ź¸.…ÚŠÈ\Š@pR$Tå*KÖͽ¸hp‡ÀˆÈèÁ‚ßã¦múÁ‘â-/“oSÚ3ŽßÂEàÏÎto¸ž}çжV‡oõeJ`<™$öÙtíؽßü	ª]g*ßZ›„µ6q°Àùl’ø~÷E¯«
+†Sú¸/Š’ùi£ÄTÆtÍk‚Ç®à²WÝþÜ=?j¹�G¢ÒÌÔUUAJÆõý›`†ÒbÔË‘—ƒGˆõQÍAÏ«©ñÖÎÆÚìcƒûê½WËï©èWSmÝÀ­g³ºÚFËñª‘&©^õúؘԡˆ6;C1:=ÛˆP‰äºÕ`ÊÚœVVÿ“ÔEÆ5"´hO«Xà~«ÞØN3_5Ӂ]ºz-þ­ä’CWÓÝtÔ¥‚Óˆ´ÐËeÜ]°\¶”©¿V¯–‹ÿcÔ#m[ÆkuÞ—­_ʱ"©ÉösH³ô<}xï±…m0båxHÓqb‘a3tfçMTÛÑÏ*]I»
+Þ}×(ú¾œ,M”„–=Š	Ý@ŒJAÛÆÐd‰ ¬Ë?§6PV±ö[
dVãvôæ4jžÒß›‘lH\â÷ÔŒÅè{˜ØòMôå½È˜\ºåYþ܁€`9MÃ`Db‡<Á;a#zò†‘<Šx"ó,¨d‚gCi¿`‘c’›:ÁÈâI´â>jw·Ì}JÈÉz§^:V.ý:×þÚ‹{¿Í¼(ȲB÷æËɦ’ÉóxŽ<Db#"S£¡{ô’PùHu½N/ë{r6;wU¶æÐòsÖPО“<¤çXÀàYâsÔÄ÷ÞMxu°‡\šb�‘Ús¸$Ž˜xŽÊ(¢‰/^|^*0j~mà¬;#·%J„ÞM4Çp˜QM׬ð::b\C2gf°°]½zÒP8T™ Uª“QbÖètºƒC½TŸ>
+p 8+6g_2–lΡ6§Hò ÚÎ�džH:÷
d›<æCÍé6³¯Ø¤ê/«¿6ãE:ÂK‹”"Ë`kJ©<›ÏÆ¢ä=ùvž7„¥âN5·µ`°ò›¶Jt‹Ù\j¹6Í…%Ëž7ô*¥'¥•U•Ù4±:âX+
ä\b�ü’E
+äìôÞaf®ŠxŒ“}Á‰1+p™‹B¥Ë0î6òâ”åýž3rõA$Nš~¶ô#³dª}ÇפŸP7h÷H7b£FªžÂ§…‚¬8ð
³P>øBtGNÐŽ¢ðmä‚xô@j	…‘¸|{Às9à»=þwRÙ/­«oDJs5z>“;Š'xÝñEÐq^ré^=G?½…9Aê¡æ–ÇAä_—£íK%µDÉ®:uikjkîIeÉ潬Gú՝#*¡†)µjm‘á|½t£¹}`Jæ©Z؈éÖ÷H=4î{g߁¢¾)¡qXˆMA,šHøŒ7û1‰ëV"¥Ùo,çY#hýü÷ݨSò_ê;‹Ía_Ô—Z^cn4¢­ ‚H¸E«®?‰«°}Ñ
+ȝ¡»­Üî¼Ù¤=}BžWvÞªUeðåhšƒÚ�GŠ“F…‰‘æ;@2S¥Øœ€@Ëf þÂËünÍâ2Ð#Žæ¹ñfÝY:]¿JyåH]­•-·˜G׌wgv'¡â|ˆÄ0eñ
+Ã_7ˆðҐ«n+fßÙ¸âàY<«ç(Í
+ª?öì’©‘yòù¡%wm¬+jƒ&&!è¢c“^¡u'bü&ñhŸm6¤šÎû¹*2?´AÇI«¶Æ²5FW¾Ø™[âÆœ¨BõUzïIÎE”“!’m:‹ÒûœxhÔe—ÝÇ®n¼z|]%mÙrÁU¸FÚ¯”ù®1Ɖ};!n F¾& gòÚñÿP‰†Ý¯¯;&×ö©œøï$$¸éF«).t›BíQ¨3¦Ž½(žC=ú·Óä¦XÀÎØesÔ;Ýiû«¶­ÙŠ@¼Ñ~üNíÉΡEë	ÔSR‹¡ˆh\éè£úÁBeñoº†½œ ´¹ÎbTÑ„nÎ’ju¹¾À	g@ä÷'qQ딎nx.u6bVU&Ô›]¹;Ûïª!C_„ž5Æ*Þz¹ɺûm€RQu‘ªq‚’঱PüÚZ0ƒ¶}mñ¼¡ÌÊõn½¦^nÕOrÉT¦âÁ‘µÎ:ŸUã'×hÀæ§0nZ¡p^Ré|DFª_b\ò@–Öm‚èDEë8�Æ{oèGM‰á œq¸ÝÏ}ÜîSd ®C,ûiÀÜšEêŠé/°ÞË[d8]Ž×,MCIšÎÐó_u—,]V™cñ"—ä¤p°g@ì`"y)‹,;B³^e­žlÚ¡ª2'€.(ÍÐĘây>à-|Îh­ÜÓÄwšúþê;©jå¥è’íՍÑÒiÔ½±ä¯ê_o|!@ö)ɢݪÄ=ÙÌŒSPz—éˆ*!z})¼|ƧT}½j‘†E£tC¬Zå¡nŒ½ýœ*ÕžõÉ4ۆ׽[¹©±¾9»Ð®¨Žèˆ‘’Ý“õŒz`Wmeôo‚‹|j8j­ï5á9¼öµ@.úšE¿VÌ/ÌZW@|—f_ç\"${ᜑv¡àòƒóœÀÈ/¸ò¶;a×:Se¦i3TäGË*ëÎýƒ]¸Æ¡/ÌhÀ2C32$¿Óô¿ü1}¿ŒD¤ÍNXÉøþtì?Fϝí~n,Pj9.î–>×£ü¨Í{
+9ýÉEN-v|3h†ò‘CÅиE”•‡ XTàâË;P–$Ã=JÖ-ÝÕgÝ•ýùigz~q—(Aé<:h1±9³3áNì̽õQ‰‹ãÇ}CLؐWùߧÂ׎Ü~ƒá
Úb™¥"†‡Í|Ç4u}îð­×Ùc™y€à‹È6°¡2ÿ[ ¥ØÖ\d¸,µÒŽÕ³bkù¤ÌDåä¾%0TÜx­®{=;öÔ·‹†(„i‡ØLS·øß1½˜øý©Ñ3ÿNÏh/¤6?æ'E^ö~ÿÆÔP®{sZì™ZÓK”ÄžB{’DÌtø&‰½Ôz’Ó÷)µUoaù5Q¦3‘È—ˆr~¿Ž‘¾
+¦ôÙùF] $º<èútm(š}ûÃÏMB@‡ž[œGxìÎFÓh8�›#}ˆô,£#À˜uýLaz(ÞQh±4%Óxm`Uà•Õ¹.E¨ãv1a’ž4_'/[¨d±{Fx¨IÊ59žŒƒDõ<êì&8VˆEóFgÉÈÙ芘#õI‘䟍2S²Íîÿ_ã©]QqAšnˆÑ_ðQç>bÞ˜4g¡¨­±-®0&E#c¦Üi8¿	vR/Õ4ÿržŠëšP7•£KsOWµN3ՏvE\bq†ûQß5Z¹Ú½Vy5]½Ööàh/	i)Åû¦Ž-/´°ã¡kµN¬ÑŽ¾ÈÄ#eì)"Píñü	{ýKSQx‰²¸¦>aã&µí¶Ž<a,릌HEHÏòó‰
]”%,eDž³U~W»lýÚ›«;c¾á˜“÷`þ? ¡¾p‘M
²lëê.‚P²W7õ¡Ù£È./ôWœ#;Wõd*–:z;E2†¨Ÿîöãúj¡ø9yÉÜAÇSS8èuÀŒ¶à¬;fY8»m KѯèìÔ„Ô¶‰Í¡>,„ 
_èg¥´ñ-mác<×n]Ч-®5‘2c¨¹¡®ñz
¬7d Pœzóåµàòð²V„ö“û¥OPvf¼RþR¤ÓÆà°“9†Z
-ŸÁÞd†÷®šˆ¿C›šñóÇ`,öatÁ=‡k?v¢í4#P
è¤BÌ¡šØ¥¸/[õs.<a0eÆ{´&Ž¢vþò¡a~eÐó8‹è)fä±Ûny’êfäBPLùuñ³Iy²H=Sø2öÑ”Ò"[ÃÈ(Ù¼O@íz*I¸º@Åö0—äª#˜ãÜà,Ð�­ôÅI$Q¡Ïy

côÑžF
ëaßžv"²ï|RÇܘ	'WœF x?þ+aNƒMö®KÎ`ÆDÞ/è·nf:X¸I8:H	±IRm]›Kôº6i ü@UÏH*NíÐoF¬àý;–±©›á‡"Wq£¾d\“‰‘Ѝ*C=#ã2Ï6x”7ì<TÏÕ
+7yˆÔrU>-bH)ɺzï '}¶×¶Ýîwœ!rÁXÎZŠµ	´.:’Vn×;î-î>Š:á
+6àrÿ½‡UÁcsÕ4k¬VW¬{’ú‰ð#­˜5ß‘0ÁBÝãìÇ`ܝÿ0ušÑ".QÊƬ›dB´˜0£”õ˜CžÐrõ]íïà#íºQ9lqœàN^ôÖ³¯éôh~ NU\´ ¼16š
+~éè“á”S‘n‡Tòl¢‘\þTHÒ²Ú›-ÙÉ~ªG~)$…oQ7-ë¯Cï°ÌÈì}q%/a™¦³vO°ª|[q4–‚Š’³~Bc-$NÜ7<V…HE€i-™œèRÈF“GNMà{Ð"3•û49‡[„j< á¸¬WÓ­ÊãhÕø˜¿l‘nÛà üÈØQÒ¨Ú‰Gcq¨ï@w¯/e qÿ£ÌægήÈ<ˆ£ÍÆ:  êáaé’·¢‘u¯êÍñ”•_P‹`Ýùb{Eëá¦I(ÏÙOWGÝæ«fEyÀÜéABa_žß;O^ŽDQ£â'èµsóåçîÐìó`Dî#Ñši¯:Ñ´Û+ßY{©{Òpå&¶Å\ßRažšÀÁ—gþÏž0ÿÁgúïTùLÎi<'Ÿ7ö¦?ÀÒçX1¹ÀÏCïÖ
+a¥¿éîn0o¹r1Ñ™/U­¥‰õÎo/?é•â™¯aùÓ_¬pêHÖ±
Gõì´ ¦Â8ŸÝ£?3F‰0ð˜€Ù`%Ã÷Ï‘ÄÓ<
+Gš]Ô½œ8bl͏%-,Â)}%žJ”:¹Y­ÒjÐTÍ;Ыȶ5Å’>ž6½ŸwÒ{œV餃.&£ö(†o¹©*õn<§Øn9¡ÁJ–
+"a‡©ДÍÝ+¡†aÊ/»ýººð;7zDØZη{×tM	Mp—£	iØšk¼NPwˆØ‘ͺðH`T
ö$23–†fÓöÀÐÚ0šzÆÈ;­¡¦žç"ð]Œòª‚*ŽY²¤é,äQ¡WØàô¸lSéµÆÅOŽrW$5]K¡VÙ»Bâ…Üš…I¸ŠkÚ|ß=²&Á[ÔèêÞÑÞÅ58EÓR¤0Þ‹Gk«sSîñÁnãònnuãúñExKÐrô¢¬Œ}‡~mñÙ`ŽG4u{ÐÑñ=]6f¤�÷âר
+BoÖ&<
™Ã±c;2 ®P$Ãǃ{mW_cžõª'B6Њ?$½^z[C—Y¹Ý­™é¥jÐNó~þ¦Û®0¾»›út¢¯ú°Ûâ„6/)-‰1:p$Dꥅȗ
+®
+,'³†üyàõ±øÁv˜Ä …nœ‹F³T×с™['a¦MbÎJ]»%&î¬lc6&ÂèIpFåÄ
¨ÜoðŒiƒªÄÉþã5± ø'r¨äËår‘(q¼ïèú®ëî¾z6Á°öžîÉ(5óÐáEôàÉ¢ÕŸl\…Lñkº7«°1ÅY4^)bٗ¦8ù¼yøƏªäÛ
+NžØ=ƒ›9zT–^[T$‡dkÂœ
QâiK%áˆ6ŽµüqµéçõÌîfO|àÚàcÐ8$•ji^vrþ.QQR"âYárÄŠãâõ¸
¨Ãkø’¥ÞrŸº¼Kˆ¢µ<QI‰"·@´ïêR9
öÀ/½«\&7Y}m‰gÒŠ7»œz6¸-Mùu=‚Àé,õþN3O\º6ŒÃaDAŽ»Þ®ðLd^rëÉ/.®>û æè
+N·eíÏRiû4¦¾Õ!3Rù¢º"4¦ˆÈñúšn™bámÉ-y[X¦¦ÿÏñ."Æô!”øÜQK¯åE\Nëµ4gՠםø§¿¦ƒï±aN¦p‚
>k)9ÁÁ0ˆBZêÌBs
+ö¥yŠrŽšer«)v¯¢®Dóëtèrv\ûvù[­ü>órµJmœ–
+aœò«µÌ¼›~uÝêêՏº>µrMZœ°˜cíB<øã`)\y×t|ۍïÿr'<†ô˜à>ù×Öþã[æÃŽ—ï­èh7ëú­þZÅŒ8caI!¹
´p⢟ÍÌ®�,¶GÃí»k 5@ÈÙô÷ÿ`ôÉiw
ˆÒnО8pŸv¿ çÉé*²Â'O
+ÝÔüŠ² ÝA[È.¡¤rhóT
pR?+;Ëÿó\*H‹sLqÞæëUš¹f–â:ql-ć¤ñ*6!…hç+ˬ�{h·‰ö- jg±kÉMMÉ×P#ã¶ä:¼}‘±¸{/ÝëîVËßŶC]옙ê·&[³W$Ú«^ß#àû¸¶4fWa\
‹Á5ìð躺M[6ž½)T§3—•›~üÚέÉÔÀ
+ã:. Z”¦¼¨`sÞi(ÍRô©Q…¼²Ì|/ú`ù
+ilÏ^°L# §÷òf¤-ñ×;-C;_ÜÞù*ù{@EMCooÂ_¤œÆÃõ7¾TöãrqzÜFµ%ׯ|™šU<Z¤ÜoÁ[TA=Ž„Ð'DPJ]´;,U9¯µÊQ›±ÓpŠžkñ4~€êáÁâ_Cª^™qE¢Å®œb
SGsÚøßíY…2N–A®Òuí®%ððSD„‚ ×hj	
+ÿy;9$ß´IA¨ÕhäEOÌ„á²Ë}
+¨g‰³¬…—/+ ùÕƒ“ï5JYÊ @äGúøü¾‚ê®f2¢´—Y Äç/¸Âß¼™e„ß·¹±|vÞ/¸"ÞÿÕpå€Ø~刋ñTãô8OKór*ÒžÝ*
†ƒÀ4hià@Q›™3g"Ñj²Ÿ:ô$û•;:”ý¤fàÍü–÷Œ,d½®®zÍÈÈšÙÆԌ꺳°«u%ç Ë£}Oõ&³¾‚i2Uè,@Íkêj%u?Ûã4§NœKmöÞùÐd?5ÉÝ“;Ê0™YïÚüe}sZô€‡ª>EÆ«Us^Ýœv{ ë¤¦fQ<Đ¡‰VPüïÃÊTfͦî?¥õmØpÙP*�È&¦÷ÐQ‡G‰ù{cœJïñEPe2)ŽxP½0AÑßÍûMɪZH¶j•"×»"ÙA¬ÐC+zq‰mVzá–žóU%ØCµ�:@1æãðW¹Šî[y)ÎJ@÷o±b%÷j”A>)NÒÇ€Ôiç¼$’AóˆÀìt`>Ì?f0g�ÿH36pè6áÌD|ûM›äáö4N¡°
+œ’ 4J½JÚƒ¯
+µj¤ž˜Æ‡´ó\
íp 3ÓøŽ£8À¦ªÑã–Яï”»­6p®ùV?:¬$‚sDùÀNúµƹ‘2ï’n’,¶„HÝO\‚[¸øÕ¸›öKÙ-)«W~¹iém™?ÿ®ƒTÐ:°ÌðÞºUÖeYŒÓãŠ-#dJe)¯±ÚÏZªÕ5”?ø$»æ¡\d©W<·¹¹,Ɇ†š;¯Ø·¸Ã5ÍÍòS¸Õ¸¯¼—T«T–ñšÎÌ„f(PY°v=Q
~DX*¼ßÝ8ø辩s-	Â˨®Î€55­
X¢R¥l QCÏá¤Îá“øÑÀl|òý5Î{ûÓ¦T\t꼕+éï£e»nÅÛ¸‹’ÂPsÓèlû3™ùUO©[üÛîÇZ»ÉS3åÀîŸ*èì,˜ª†ß:ÛZþ¾ÆÔL‰›¬†ÕSô'̵æã*õòŒ*@¨øı~xgno2±¹áˆâ-
+…Œ ³W³Š«½V�;äpZå9?~„«$«6Ÿ<”µQr‚bQ8&óse•ÉEb¯ÚQ,·þ^|B²µï碘ïVd¬V-¶(Ü]ã .ïèËŽ8/qhV¡nR®ó®QÈD‰*ùU(*1hç1Ã`؝QL{…Uj`àÒ"šo3�Ü»æ™V¨l…µ:	ÑíêÂØÀ
jaFaàžE­¶ÌžZˆ‹g1±·zü°Ì2Ö Õ:ÍAuÙZIf6–ƒ2Õtw+Š‰‰f§D‹ïÉ誩CL-}g»µZ³0>Ò„óxJ¢ýÿÅ>\îÁëQ‰¸AÚ_C¶i‚hßÒbl]
‡6ÞÕÞÜ4*šA˯É°üqX‰¤7„»YòX.€-¾ŠÚÕ¸•aɇÃVâh¬–iKg•ÔÏqN³RĆN(r'Á]¼à%Ù˜„…­ôˆ@3Ồ΁j§Z¬÷J†.;üãnmÝú¯ÕÎ,SûûØ0x¯³ÃõøØÍ»£OF33­Ò§¶…«<$'Û»¸G—E+´Ú}¥¥Îóúó§…'1ðf3›ÆýÒyÐ5Ý/&¤Zœ\RBô7dmíô]æ¼8§§Â\Íý„3ß‚„Ȫ˜@÷ìo¿ûTé¿3eu^·W@Šªü”–Ž¦e7l–!Bã,Às‚äæ1ÜÍß$šäò¯ÛZ§ã&Ù’ç?¯âdCéá (YЦSm>‚J"&ptÞ܈ªP㇄BF¬ø´Ú±àÙø4ŒGá5œ	t^Ć$¯Þòj-a㠍g^ÁʐC¤–…ƒAsÖT=k¡TS,|€ràåš9I·½BϘЬ†ö'ÂìvG�A¶Î@ÍtÀÌhQÕNj†&€åT=Îxt;2]¯P¡|T-	LÞƒ’Éç¿ñe1ãݽWÃZÅš*MrH5?„ñ‚=à�ýÑo°¬"ëÆ9ÑK5Îø=«'kÉ-*•„èA¦E|	þ Þ qÒ”‘_?\£7%öŽ|M6°fª+““+’S*}çW�_Ü]3ª¨ú¶fmÜ®ØÒ˳ÒÜm w!–—î÷å.ÛR#‰é¬ª;Æíú¦±q qó71ŠÖä$•ݙկ_ÀóiKà&ìJ©Î¬M®Š¬öÞÇemåVÄ5PÏ0>¾¾ Qçµ5ª†W•©H­Ih×åù&ù4ҍIlÓE7}âsÈéÄm[cȾ좄|d^	¢ì÷%Uvé1¦D“²>“.èT¬Ò7*é=tƒZ¸_§ãŸ¾1Ð¥:=0pZûš6Ò‹ŠN„t�(åuíƝ­; ÇBÒ]³‘$€k¡ÚŒ€Â.ó{ªFÄ*/UZ’ÆNüç ¦|oqŠÊK—G;^Ö侞9N§ûeÿíxK‹’¡¨\‡whþøñ~¡òòZpHÔb‘‹Í䉸»ˆÛ[k¶8âÉÍÌk÷â.bX.Q¾Xp¸xYa^µÐ"˜Ñ#럙ãB³wnb¤¿óåuÓð ém5žF²½~>ÇÐ8€­ÁbýúŽäN:Ýp4µ[gv^
+B½ÓFÐUzû)?œ¼60ÐFÉÉ8˜‚�Â/2 ŒC8¨Œ®>N8GîÍ%ló%èÝ5ºFH˜{4„6h§Žï¸4Ž%Æ#
7¸è›ñŽÍúËxóoºÜN tª\•'ßȨ
¨ úæE£Žæ½0#ƒïj¸NãVïÓ¹dà?WlcW×ð‹Äí
+ž½Öµµuû-“»}2„2¨¶¥EN¿}#‡äµµ2H^a3ðõ»¥r»Áqs§¤°ˆ„-S3&Èïô„f´í‡£ÌëÎfwl.š=Wø8å„,õàÒcHá®jžcTê±W®‘× s9ò0žî”ZàDÎM“ú¾C2’ZM’ÝûdjµŒtŸ"8À:gí{.Ʊ°Ð1Fb6ƒ1Ç8"yÔ¦>˜õ¿’­WÀ9£ë ÓVšŠŠö¯`×j¿ý®š¿Tò””‘‘€<I£½MÔ±W'%­f&¸\yäZëdkÍ´èùRyÑjw˜æ}ùˆÐ€Ïß[8Âԍ†»£ÇbBí ©'d'müoû'<ø|EÔÊÍ5êõ:³¹Ú‹o¼š©É>²µr,nƒ©iÀ­Á

<Tª¸S¹¹Ÿ>¥d³… ÿôéqN§ªÝ.g+ ïSÂë¼
Qúù·¾ë	
áKaB¾ŒÛà?_í‹ÛQE ‡“µr¸†ÿj¤î‚h>ô•E¦Ó›;C×­7…‹·^q¯
+Æ`U¯eú#-Ÿ˜·;oJ˜Ä‹ãÒæŽÔ>)Çý‚;Jgí£Ï×­9R;Ogí¢ÅýiI7ú}—â8K¡’œہq¦j¹ÑeØ“£+Ù—'nñÏ·k3‹Á­»üeFρûžì…0±šò¯ßV#©íÆp¥MAzb^PŽ÷VÏu¤Û~Þ1uº—Ò“•wnÈ	^›.II—¡Š_ÆÌÚvdW®ÈöóÎ[Q,ÍÞè+L¾b‚í¾É¥å„Æćq¼þ
9«V}ï	”ΏVÑw4qUä3&jÛıHYb¼ ü¹ˆ¿ttTœõˆ7ρò’«ÙarBwP9?)Ûu•é‹T/Ùa£•ŽA19–±kªM
+\ÓäPÝßs›<ØTažÐã@‚<?Mâ(ê¼.¡,'%?,Ç%a~eÎëŽÀŽUá–0µÍ/zQÕö(Ѹý“÷¤a™¬ªp:.6«jÂÿdF@\V®4¦É{ÓRiìþˆÍ8é¯Éªnuý®Fï˜M_†§=¦½õZ8á¤HãîŠl‡sy5k%õÌ|(ði9"Ù6äº}Ô‹~WK„ÛŸ‘hY©kŠÊö¤—\àû×l“RmŽ»´&Ò
ºæ¦ñØò0¾ïÁbû]gÊ”µ¾"ÂçÞ€D^ý²æ¾ÞŒ¨jÿ±J*)žš6¨µ‹-YbÙhÖà÷òé
+Zý¯éß=Þ‘¦A,ŽÊ(ŽK#Ð	
–²OfÈJ:î;¾I†¾Ç!6Yi&ûdÙàÖ%m®86#ªö™QµÒÔÌW_‘öA›v}?+èGášÊú	cc*ÿmûô’g`Ò>…õq±Ø+û£=Ù[5ÄÍ”·¶Ö×?²9£WÀÉ+^ýo¯^Eàã8s)åfç—2aôæ­QŸx¤·i‡é&	NE>"^NaäaŸ;fŠÙÌ9]NE&	t^°ÀCLz'âe…8ZRñs&6Þ²7_�üãcyJž‘1
Äþ@TZ°?S�D2û
+‡|ÔPõÔËOÓŒé\dªRïÞðû7zHÕøƒî±9iÈ�‹Q#µ¿¶‚zr³óc.ò4ö†GýR4ÎÈqx¦ð¾<2~X’hµ÷náãੳ¨Å2ˆauB­NCÑ�+›¢k—Xó0Ñ
aj5n>Þ‰¨õ²e3övÞ§Óôé<¥>°_²Ÿ ÛuH: XRÿ%~9á!4öüoÑѼ¦è�3…ºâ”8?¶‚ Î1d#ïÔÑü–šA&‹„„{A!i6‹ŒíÜ/XaŸ£á㇤=W‰;|ïðä) Ðg¾~£
?*¾æ‚½Ã }¿ãÚ§ˆKtÌ>5|­EŽµÐîÑÜÕ.§ýôAûšQñ6üú
²€¾(6
+
+6Ñ”Æ7�–Ú÷<9ùù_ð•CÁf1þëÐŽéi8¾®†å»,
V»4$ÀŸutÉøœø£ÆiÁ,.`v6r	â£òŽP
¯½gFBÉŽÇ
+tòÃçÚ
C3½;˜,¼o“æãœx|	
+/KóMp©1S_¾‘X.f÷Vª†#¼U>È’Èõˆ#Böñ]µ
A‘IVoÀÌІϵÀ‘¿üGTV1nr+£ÎOXÂS•%‹›³¶™f§OZ[Û_ý9œû‘P­ß°÷ {Gln‘%ß#ÚÛhÀdw¿H ù=† ¸y©e/íªW¼³´¶>Ò,Óö¬°IP,*MV•ð„~ºK&ãe¢Ä‹»ûMì½£=ò)‹qF¿ S¶ß´"ÉGÑëTšF™*¹LX,hŠ[—´º“§wŽw´íeñWQEÙxÚëº?áè“{^Ú†EŽxïh»iý»¢×‚„J”³ÃÀH¥|ó^ÙÍ“Š…Ée*^‰Ð¯.ãuÚxE™èëËb#î;›’ôԝ<]z]\íƒ×¨wÚN»ho¼chq¸E˜£=ºçâ4Q1¸7ýÝçWü½Ì“lÕ6á§¿­HE_Ì£ ùqyÿ‰áYRŽ¤Û«<x=ÔcSßXy!=0û8Ç—óxÖ˜ôþ?±{}¢ÿÀîßF_„üáÇ ™zø¯‰kt©É±ðˆ7³ÊÚ‚|tû§+a®m¸<xe$‚ée–ãɍª×<[¹T÷¦ÿX[þášžø£Ùö�¿s»VÃÌ‹«Þ§UžÉ*³áŒh—S©K=FeËsw uYéoÍßÙ¯nQ«³=NE:[Ò(t]å
k×|ç@‘Ù¿uZ\9{h±v€ÚÜ•Ó†.Ú¡úsaƒ‰$u+Ÿq¹w:#ãæ?åeúT‰3=ЬлÐ!µpìPL`Í:…“ÝÐR;ØgÊ®FhaÎ;¯Ì†5Ie +–ÛØõ»×bt06AW40TÍhJcc<&ÀmJccà
+¸ó¡OCn«W?üùNÂiþî¾o](XЄûŸ{÷Lzì˜ôÙ;¿ðØñg¹ï|Ǐç>ä9~l4sæVyù­™`Š×Uß›,ùŸþñ×Å#_Êu´ù+Deêêí™àéMÙü¢~h³qªë²‡’·#YúÊæñzü$;Û5ͯ9$µË z²>ÿ
+¾*jõOŸøŒñÛ$œÐ$O/¯ÀÃxRí½ƒÂtýf-}*žoïɦøÙÌ|3†M;xÞ¨¯U”•µl/.ñ~XÇŽ¯Yá¼4™x3&æë×x®";¤$KIö’5ÛdÚ­½Êáüú‹~w[ÊÔM9OØã%4ÒáQ¨}éS^žìt–è@ÑËæw[›Y;-ÝöÿÀºs;¢b¾ÍwH-*ï––Ãim½¶IÊ-¶1e/•~ø¨TNN®.òp²ßð)H$ûë«Wïß~ÎðµÉƦí¼O
+( é9è†,Ù
]gM6rê+„#»%ƒà/süw¯Aœ$õŒqÆ4ËO>
+d9}÷+ðÑ$Œsôš³ý?0£™a,>y‹¹Úˆs<ðþ=†,ð‹c_*\âƒDí¼Ü}È2Mí°ÍÌT8/í4ægæ'Ú¦žâ8'û}"‹Câ*„\9½#Y>z$ŽæöÔ7c[s“|"$}»	ymÌïÕÀ«zQx 5·%å oùå“$j†kÐÎp)ñx½Äû-:º†Ð˜|?˜oãøf§‡gFrÀžß2ŠS‘ÇZ÷Œq}qˆŠµ	…o€,wyÅO¡gʐCF1Öl˜çŸ'íL5T3õò3ûÑðyª¦M‰9Ú2"s”˜ò5uD•‹6ÀÔ-Jì‰U†bsºÏ
+«O)ƒÌw¸R
-2æ/5fÜ<ªBQÌ4kŒ˜ê­G¹	)%ß¼ã<dÆàĪĞí¼3È2`ŽaØÃ]©ªS{£K%ô\]¦3&Šp„“®®Ú¸Úˆ”CÕ¸¢ýœ©ë†¶“,÷À
Úù^éTÐÙÛ7¿h¼5™uûlDÀ£xÚ·¶—ñL'D¶ð„rÃ6úvÕ·fc\þ£ý§µgAꑝ³ †²@�?¶½žÂØÁ‘	œ•GFæÁVA·l,¶µÄ:§¾ •i#~NUûæ“DV~7¾k·K`!ˆP–ìMX³üRÍÆ$#îTiih¨ž®omÕ˜Å<.8UmÇ<’Î3ïÓéESä4Ü«úŸV9²ò'½™bvÒ{¿¡ø?îVVÞý£3×;”U'Ö¬‘Àµ1RÙVé{BÇôÆîiŸëº4CRhÜéŠr6~˜Ó–J”¥PàÍŽÕ÷M‡7GŒÐ�-,NLo¼ô<Ÿ²¶Ñ£zç÷••2H&|$³²’¼<{
¦Úœ“Kä_œæÖÿmmSŒ)>r’Ï›f@=šâBF™‹ïCB�±©‰‰ƒ‡&'‡F}@©&ÓÈÿ„y×ubâÐÁÉÉC?'«êåñçSæ49+—Óä±Cø®³íIîð¤ÙŒ+×ç˜ëf/R«Uê
ÌîC°Fu:C*£}†T:º¶}{ÂÜݽâ²·ÔuªÎ×ø•¬e[!®–>ú?‹ÄåýÚ¸¸"ÇM
+8gzƒô0\HkƒÔZ³:Ähå­~™@ª+ô#«NêÖfj¾çyµîå‹ioÀ!„B÷	þñô·“±R'©5>Ú`Úò[!ÂÄTˆ`mCšI…ѝÃ}¸n
+>Wßô!M}UËavõ¶4€3)!§kcÈ‚²ómþ?’Ž	Ýådïw•ãv«!×”;XÏ¡Û¨}½8ívt•ëÐ"Ó¼#kÂvXŠJ™±[“l¶[ZÝ™MÀ§ñÃXC3lê–[
ÃTa¼Vj‹¡…ÚÊ»¥åŒÑ¬"Å“Ñòt:‚(žêà¦ÈÁ<¾cZóve—ýQ›ÇîT…Ÿ qHá‘i{ Ò銀Q埓'Á“Ö»“i öPØöï¿­èüȯáímKÊAçIŠõ¤BFƒ
+£=‰‰µâÖTá…½¶à(âœ&TSŸ?/ï؁A:Ö·¬»ÐžV§(ø÷@wïFa^ã¦]…Œµäo]*Óñ99¬R¿iáñ_Ôò˜À™þÎË2vM“€Ø`P§“ôf¦´{QYÏ«íH#V7vÅ7ÌÒ° q>@àó«~uɘ׆Ax°Ã/ƒ«xÙ°Bþà3£Ä Ùô‰tƒÊÁy†b0ŒžnG`ÁòEÚDìٍäA’Ô:ÆPØwIÓ7ÏìnWÓ÷2ED<hD&Z˜ˆÃ	Π7Í3á&úÍë)LDË4;Ü7èæÑ´?$­îËk@Ù"ö¿"L&~§ùö1ʺf«14ŠÊ±|îÚÙ7OsÍ}úÆL1;éÝ?Â{1$ƒ¯w)™€1}Ðà0è~7„Ú#E5Šª`Òq&o
ÇowÞÍËÓ_“…é´ŠªÔ8Q1ۏGó»»óëùÓÉŠùêù08å×h¸äW¿e ˜+º²\êåÔ‰†R‹ÔÊ“ÃU?w®àeÙôïOُÝSxAUÖÌž3˜|	=WAµÍÝÅR
+Pñ°tO%Q"1Y×”!so%%­^zÿ_hn,ý{?ÔÜø"L¬5±_D6©îì+êïÊËSbÆ<à§ÌgfJËô¥0äbì_ç¡ÑxÔ-í£;‰H«âãââW‘:G˜MðiÄEeÌIuª®vJ]~mÈÙßØQHLKkì»ÊhbžA>}.(h•Ü"‚óãU]¢9Iíh_îV¯@‡›GZ0C
+Üpb
ó:ã™L3¡tN*ªN½2¿Ó!¼3Œ
Ca³—yn.•ÊÝÉ‹Wâ`̳Ü}±QBÌCªÃi Á¡8*Ãï{57‰¹ìO#aT¢ËB½Ÿ‚½Uíoþi§0ç
ó_ËðÑù^
+ChrU}~rÈL 1òzÿ>..ö=%GÁš›GŒ£ëüo ™‡ŒEéu‘P³Psؘ޸èó8­ðüþP¨Ÿu&;æÊ*Œëù|i&¤ÿPbÛÈ›°²˜hÒ;´[—€|y*cƒVšh†Ò¼Ò(ÿ”~Î_A•qU2·½ÿôGIQÇ3`®^Êvþ=î@¬ÜK'¤µÐ‡èËZ#4sJ=º¤:sY©è	sÚ¥bÂyj¯ë·S_E܃"Žª‹Š@ž~‚Ÿç¹>­86ºñ#Îy±Úäå[ïècòSï„¥ÙŬ–”òò#­SJ”GZû®yvvÝßSùя扝p¸waTšžÏõÅ/,
+9'Jkv%%.†~oò[ÌóŸ 衧üœÂR±Bj¢ŸSèÈ€*$'ø腁©pçS¥u�à+ç9\¬í_f+åòüù8õu\,¶ÊÓtæåðpžÑÐkØ®J0hó(]N„QÈvó³W¬ÇÌ7ó•8«ƒ6:ÜÖÝ£Ïâ·ñWc“¯Y_i>ú¬ŒÝ"‘ßR¡çõ’â(Óe]Þ6ø¹ªRA%U—6&´F]”½7@̳k3X
h?ŒÁKïà®Þ�Q¤2™Bk¾[<o¥-[
�s~Ÿî0¯]Tœ°Ã2ÁÍä¯hÊñÝJÆqîK¹v§«Ÿ(32Jºþí//W…¼,ã¬ÃÎÛzïd$2ÑcA´kP”¹—	§”Kÿ+€î­Ec¥ÛÂÜà[Qžùàóôùûiú—EdVÃõxR8šäBÐ5ÚÌÄa=:¢KQ˜¶çÓ\ °@ÆV»^;KrÌ	—M{ü÷ñÆ{#þóCw}{^,í§$0Rcÿ\o¾«Q½Ñ¼Á×¥PüÊ$é†YÊvpà®>?.ÿ€Ã.K¡ÈKAbŽÌ6ýÞÄ5¿·kò’eŽ+]²F<HËe"ª;{wN‰yx/Æ×å&f檄/XZ[Ÿ¤7»š¶c%ßÅ€5½d•Y_Ÿy"Ыߞ£2\37×
+–k\Ä띲|FO Š’´68Š¨ñð…‘œœÃïü½„ÿnKðzR"ƒý‡ –Ÿ?/7Ð32š:аá>Ž°eöWH©Uò«û0OÝק¾5…´øÿ
¤úîäe3H‡®coÇ>l]0¶2±ˆcý¹‡ÝHÊ9š{Z
{sOõ–!¥A,þ7†?Å·3�wä¿ŽA
+àFjÚÿ¸8¸Bí&8U$G…¡Â�µÙßé$µY5˜‚†FâL…5nÇì²Øò1–”>qóº2££.«6“e—é
+î
ì¼Úõ—œ+˜–@/¬¢ð™µkíb{à÷(Å7Ði=¥É{l͍¬Ý‚­âÎ濦ï 8«…1g(»üè%ÎÓh/ëEf¶M¹ÒÝtŸ�5½Ÿ̼vg½oÚ ê~à©›WKi父U«ßأݖ­w¬RS‚EìFíßT¬²%ª
`=í‹ø|*=1‚ò*Žù»ý·S§Xö¬€·Ø^êòÓw)l–ÃÖfQHãúŒ(YSþô„SËŒK·æ1ÞØâíW]µf™Ÿ·°7ך³^&ýpô@T'.ìÀ%3³•„Ã
š¯´ßÞò»ù5ÏzaTf6Ñë©A5ÜL•óXÌ¡æ·Á|ñL¸-Ÿå–ηêÄT×g{A)ªî­®FÑ•."hü“ùj¢ A;.ðâ~Âþ …oÞ%°èýG#Ñ}&]Þ×¾cÜ`C»hH9xnN†·Y Îlð²cÞ¤\+v\EŸ¥«Æ§1¦D9K·Xá)2b.¿ó­“NôÚýW¢§ŽÜQש$¥/£”|6tð™Ã32Ô›£´7¡¡¦�–2¸ÑÛиyuü0e×ñ€)’NØuh'dœ¶Ãî„õ~xY‰É�‘´>ÄÚ#bˆ"k3ÓðÂ¼ƒ®Ì: 9¿º¢vˆú$ПCÝ:Ê)H¹Ë>	Õ¦šzÇÛ;e“d\jmfŸäOÏa%ò9š‘ˆcK›xÓÐÛ¥Å!k©%HÞDn“ü{YÜ"“{n_Ö}
+ß)9ƒ=
_/û‡ZÎ(éù>lú¶­÷YžŸÖV÷‹gQ#§ß­:QÄ•ÈbwƒÇ÷Õ$¾zw±ðÙ®‹#¿»ãU˜?|ÅðïGÔ΄hÁzü{ùoº$wñ×Ïœ´º)|Vh‰Ú?»Œ
ZV7¾%ŸüGûo/£×†‡ôéEÏ"¹KÓ²… ìµl¥p76Î�-z
!Ál€4n>”¼$\á×zV?szûqejìQçëé]m‹›æ^æ=^µ
ä§í­¥! ²ºl…ôHB4sLi9}Þ2¢^×ýKÐ5ÅOBú)èíO
­çv^~ªêµýïÝ€x¦“rm\KÚ&G^Ð5CçÐL¼}&Fºò”ÀËâ¨B]K†¡n3††|ÍsGjyðkþO¯µÚbåsܽæaW?R6ð¡·²¾JÂÇfhãÚ2	ÄÊlBS§\=¢jÕÕV—Ê*”ôY¦“^¢¢Á™„˺^E)Õè*”\½Ÿ 
+‚rÔr(a¢@ø„6nÔŒ£?¥}ÚdL°©¦šg¢IvqØNcÐÇa‘Æ®kŒÍ÷mLŒöcÁA!¤±hd¸£±Vëðµ¹Îòwc=¢¦æ†–áæ–Õs_Ò:ŠÿÒ—•¢sLËí£g>‘œ—1Ü*4-%ð&Ëõ0Ubƒ)Eܬ†*b¸ÔÖ51—Äï„ç	ä+è+;˜Ž<…«†’`!q°fÍÎMù*Æ,[/GK+{×®,>CâLŒóR%%cŒ³ÂÆÃ~‘’'EG†A‰®GºÂ=‡hÂ䟔Ž°8:IDìN)ÅWÌ»áAF)ucw'qhÍXè²L@a„¾~Œ6ÌPc2Lã"¥A…2bìÈU	™À&Œ€‹ÿ¯9öA#ÓQLO¬:E€9k§©’‘ÆfÞKF•b93tºL$c‰Ë¬pÿLzÿ ¿5ÔdÚp¢þðùÛ°>$`œ.÷ï«~Xó=¶�¡ã?„ NÍ°/ŠÄ©L®PªÔ­No0šÌ«ÍîpºÜ¯Ï ‚b8AR4Ãr¼ J²¢j¿}øŸÐ
Ó²×óƒ0Š“4Ë‹²ª›¶ë‡qš—uۏóºŸ÷ûAFP'HŠfXŽDIVTM7LËv\ÏÂ(NÒ,/ʪnÚ®Æi^Öm?Îë~Þï÷‡Ã	’¢–ãQ’UÓ
Ó²×óƒ0Š“4Ë‹²ª›¶ë‡qš—uۏóºŸ÷÷ÿ�b$œ«tV&g®Ï–íÁr>¿<Ùyóå?’“˜ûfþ{ç´·£�‰µ›ž%îµïÇÌ~ßZûþaÅzW¾¿¼÷ÜõÝ2ŸµsvïÀÌò™ÙeW«�‰µ‘à����@DDDD$""""bffffÖ}X	ÓO„0ÆcDDDDD¬µÖZ›6Wò08BÖçI¥�����������ƒ.H¬W������
+¢ßˆÇÐ9 �‰u„*¥”R*J^}€Ä:M”´$I’$IÒF‚‹™™™™yÑŸžûÞóÀ_WÍÆý<G<þ��
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js
index 7c1561a8b96d..c6d36920be36 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js
@@ -1,6 +1,7 @@
 /*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f+', [role="menu"], [role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.2.0",c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.$body.addClass("modal-open"),this.setScrollbar(),this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one("bsTransitionEnd",function(){c.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(300):c.$element.trigger("focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.$body.removeClass("modal-open"),this.resetScrollbar(),this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;if(this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-k<o.left?"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger("shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass("fade")?e.one("bsTransitionEnd",q).emulateTransitionEnd(150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?2*k.left-e+i:2*k.top-f+j,m=k.left?"left":"top",n=k.left?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(l,d[0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.removeAttr("aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one("bsTransitionEnd",b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName;return a.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:0,left:0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.2",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.2",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.2",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.2",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.2",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.2",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()
+}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.2",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/d3.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/d3.min.js
index 88550ae5124a..d7cfb702fc4d 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/d3.min.js
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/d3.min.js
@@ -1,5 +1,5 @@
-!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null!=n&&!isNaN(n)}function e(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function r(n){return n.length}function u(n){for(var t=1;n*t%1;)t*=10;return t}function i(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function o(){}function a(n){return ia+n in this}function c(n){return n=ia+n,n in this&&delete this[n]}function s(){var n=[];return this.forEach(function(t){n.push(t)}),n}function l(){var n=0;for(var t in this)t.charCodeAt(0)===oa&&++n;return n}function f(){for(var n in this)if(n.charCodeAt(0)===oa)return!1;return!0}function h(){}function g(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function p(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=aa.length;r>e;++e){var u=aa[e]+t;if(u in n)return u}}function v(){}function d(){}function m(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new o;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function y(){Zo.event.preventDefault()}function x(){for(var n,t=Zo.event;n=t.sourceEvent;)t=n;return t}function M(n){for(var t=new d,e=0,r=arguments.length;++e<r;)t[arguments[e]]=m(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=Zo.event;u.target=n,Zo.event=u,t[u.type].apply(e,r)}finally{Zo.event=i}}},t}function _(n){return sa(n,pa),n}function b(n){return"function"==typeof n?n:function(){return la(n,this)}}function w(n){return"function"==typeof n?n:function(){return fa(n,this)}}function S(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=Zo.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function k(n){return n.trim().replace(/\s+/g," ")}function E(n){return new RegExp("(?:^|\\s+)"+Zo.requote(n)+"(?:\\s+|$)","g")}function A(n){return(n+"").trim().split(/^|\s+/)}function C(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=A(n).map(N);var u=n.length;return"function"==typeof t?r:e}function N(n){var t=E(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",k(u+" "+n))):e.setAttribute("class",k(u.replace(t," ")))}}function z(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function L(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function T(n){return"function"==typeof n?n:(n=Zo.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function q(n){return{__data__:n}}function R(n){return function(){return ga(this,n)}}function D(t){return arguments.length||(t=n),function(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}}function P(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function U(n){return sa(n,da),n}function j(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function H(){var n=this.__transition__;n&&++n.active}function F(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,Xo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+Zo.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=O;a>0&&(n=n.substring(0,a));var s=ya.get(n);return s&&(n=s,c=Y),a?t?u:r:t?v:i}function O(n,t){return function(e){var r=Zo.event;Zo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Zo.event=r}}}function Y(n,t){var e=O(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function I(){var n=".dragsuppress-"+ ++Ma,t="click"+n,e=Zo.select(Wo).on("touchmove"+n,y).on("dragstart"+n,y).on("selectstart"+n,y);if(xa){var r=Bo.style,u=r[xa];r[xa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),xa&&(r[xa]=u),i&&(e.on(t,function(){y(),o()},!0),setTimeout(o,0))}}function Z(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>_a&&(Wo.scrollX||Wo.scrollY)){e=Zo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();_a=!(u.f||u.e),e.remove()}return _a?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function V(){return Zo.event.changedTouches[0].identifier}function X(){return Zo.event.target}function $(){return Wo}function B(n){return n>0?1:0>n?-1:0}function W(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function J(n){return n>1?0:-1>n?ba:Math.acos(n)}function G(n){return n>1?Sa:-1>n?-Sa:Math.asin(n)}function K(n){return((n=Math.exp(n))-1/n)/2}function Q(n){return((n=Math.exp(n))+1/n)/2}function nt(n){return((n=Math.exp(2*n))-1)/(n+1)}function tt(n){return(n=Math.sin(n/2))*n}function et(){}function rt(n,t,e){return this instanceof rt?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof rt?new rt(n.h,n.s,n.l):mt(""+n,yt,rt):new rt(n,t,e)}function ut(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new gt(u(n+120),u(n),u(n-120))}function it(n,t,e){return this instanceof it?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof it?new it(n.h,n.c,n.l):n instanceof at?st(n.l,n.a,n.b):st((n=xt((n=Zo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new it(n,t,e)}function ot(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new at(e,Math.cos(n*=Aa)*t,Math.sin(n)*t)}function at(n,t,e){return this instanceof at?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof at?new at(n.l,n.a,n.b):n instanceof it?ot(n.l,n.c,n.h):xt((n=gt(n)).r,n.g,n.b):new at(n,t,e)}function ct(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=lt(u)*ja,r=lt(r)*Ha,i=lt(i)*Fa,new gt(ht(3.2404542*u-1.5371385*r-.4985314*i),ht(-.969266*u+1.8760108*r+.041556*i),ht(.0556434*u-.2040259*r+1.0572252*i))}function st(n,t,e){return n>0?new it(Math.atan2(e,t)*Ca,Math.sqrt(t*t+e*e),n):new it(0/0,0/0,n)}function lt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function ft(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function ht(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function gt(n,t,e){return this instanceof gt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof gt?new gt(n.r,n.g,n.b):mt(""+n,gt,ut):new gt(n,t,e)}function pt(n){return new gt(n>>16,255&n>>8,255&n)}function vt(n){return pt(n)+""}function dt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(_t(u[0]),_t(u[1]),_t(u[2]))}return(i=Ia.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.substring(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function yt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new rt(r,u,c)}function xt(n,t,e){n=Mt(n),t=Mt(t),e=Mt(e);var r=ft((.4124564*n+.3575761*t+.1804375*e)/ja),u=ft((.2126729*n+.7151522*t+.072175*e)/Ha),i=ft((.0193339*n+.119192*t+.9503041*e)/Fa);return at(116*u-16,500*(r-u),200*(u-i))}function Mt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function _t(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function bt(n){return"function"==typeof n?n:function(){return n}}function wt(n){return n}function St(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),kt(t,e,n,r)}}function kt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Zo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Wo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Zo.event;Zo.event=n;try{o.progress.call(i,c)}finally{Zo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Xo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Zo.rebind(i,o,"on"),null==r?i:i.get(Et(r))}function Et(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function At(){var n=Ct(),t=Nt()-n;t>24?(isFinite(t)&&(clearTimeout($a),$a=setTimeout(At,t)),Xa=0):(Xa=1,Wa(At))}function Ct(){var n=Date.now();for(Ba=Za;Ba;)n>=Ba.t&&(Ba.f=Ba.c(n-Ba.t)),Ba=Ba.n;return n}function Nt(){for(var n,t=Za,e=1/0;t;)t.f?t=n?n.n=t.n:Za=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Va=n,e}function zt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Lt(n,t){var e=Math.pow(10,3*ua(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Tt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r?function(n){for(var t=n.length,u=[],i=0,o=r[0];t>0&&o>0;)u.push(n.substring(t-=o,t+o)),o=r[i=(i+1)%r.length];return u.reverse().join(e)}:wt;return function(n){var e=Ga.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"",c=e[4]||"",s=e[5],l=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1;switch(h&&(h=+h.substring(1)),(s||"0"===r&&"="===o)&&(s=r="0",o="=",f&&(l-=Math.floor((l-1)/4))),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=Ka.get(g)||qt;var y=s&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;if(0>p){var c=Zo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}}}function qt(n){return n+""}function Rt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Dt(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new nc(e-1)),1),e}function i(n,e){return t(n=new nc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{nc=Rt;var r=new Rt;return r._=n,o(r,t,e)}finally{nc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Pt(n);return c.floor=c,c.round=Pt(r),c.ceil=Pt(u),c.offset=Pt(i),c.range=a,n}function Pt(n){return function(t,e){try{nc=Rt;var r=new Rt;return r._=t,n(r,e)._}finally{nc=Date}}}function Ut(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.substring(c,a)),null!=(u=ec[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=C[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.substring(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&nc!==Rt,o=new(i?Rt:nc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+Math.floor(r.Z/100),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,s=e.length;c>a;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in ec?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.substring(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.substring(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.substring(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.substring(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function s(n,t,r){return e(n,C.X.toString(),t,r)}function l(n,t,e){var r=x.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{nc=Rt;var t=new nc;return t._=n,r(t)}finally{nc=Date}}var r=t(n);return e.parse=function(n){try{nc=Rt;var t=r.parse(n);return t&&t._}finally{nc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=re;var x=Zo.map(),M=Ht(v),_=Ft(v),b=Ht(d),w=Ft(d),S=Ht(m),k=Ft(m),E=Ht(y),A=Ft(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return jt(n.getDate(),t,2)},e:function(n,t){return jt(n.getDate(),t,2)},H:function(n,t){return jt(n.getHours(),t,2)},I:function(n,t){return jt(n.getHours()%12||12,t,2)},j:function(n,t){return jt(1+Qa.dayOfYear(n),t,3)},L:function(n,t){return jt(n.getMilliseconds(),t,3)},m:function(n,t){return jt(n.getMonth()+1,t,2)},M:function(n,t){return jt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return jt(n.getSeconds(),t,2)},U:function(n,t){return jt(Qa.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return jt(Qa.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return jt(n.getFullYear()%100,t,2)},Y:function(n,t){return jt(n.getFullYear()%1e4,t,4)},Z:te,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Wt,e:Wt,H:Gt,I:Gt,j:Jt,L:ne,m:Bt,M:Kt,p:l,S:Qt,U:Yt,w:Ot,W:It,x:c,X:s,y:Vt,Y:Zt,Z:Xt,"%":ee};return t}function jt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Ht(n){return new RegExp("^(?:"+n.map(Zo.requote).join("|")+")","i")}function Ft(n){for(var t=new o,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Ot(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Yt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e));return r?(n.U=+r[0],e+r[0].length):-1}function It(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e));return r?(n.W=+r[0],e+r[0].length):-1}function Zt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Vt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.y=$t(+r[0]),e+r[0].length):-1}function Xt(n,t,e){return/^[+-]\d{4}$/.test(t=t.substring(e,e+5))?(n.Z=-t,e+5):-1}function $t(n){return n+(n>68?1900:2e3)}function Bt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Wt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function Jt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function Gt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Kt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Qt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ne(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function te(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(ua(t)/60),u=ua(t)%60;return e+jt(r,"0",2)+jt(u,"0",2)}function ee(n,t,e){uc.lastIndex=0;var r=uc.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function re(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ue(){}function ie(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function oe(n,t){n&&cc.hasOwnProperty(n.type)&&cc[n.type](n,t)}function ae(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function ce(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)ae(n[e],t,1);t.polygonEnd()}function se(){function n(n,t){n*=Aa,t=t*Aa/2+ba/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),s=Math.sin(t),l=i*s,f=u*c+l*Math.cos(a),h=l*o*Math.sin(a);lc.add(Math.atan2(h,f)),r=n,u=c,i=s}var t,e,r,u,i;fc.point=function(o,a){fc.point=n,r=(t=o)*Aa,u=Math.cos(a=(e=a)*Aa/2+ba/4),i=Math.sin(a)},fc.lineEnd=function(){n(t,e)}}function le(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function fe(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function he(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function ge(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function pe(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function ve(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function de(n){return[Math.atan2(n[1],n[0]),G(n[2])]}function me(n,t){return ua(n[0]-t[0])<ka&&ua(n[1]-t[1])<ka}function ye(n,t){n*=Aa;var e=Math.cos(t*=Aa);xe(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function xe(n,t,e){++hc,pc+=(n-pc)/hc,vc+=(t-vc)/hc,dc+=(e-dc)/hc}function Me(){function n(n,u){n*=Aa;var i=Math.cos(u*=Aa),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),s=Math.atan2(Math.sqrt((s=e*c-r*a)*s+(s=r*o-t*c)*s+(s=t*a-e*o)*s),t*o+e*a+r*c);gc+=s,mc+=s*(t+(t=o)),yc+=s*(e+(e=a)),xc+=s*(r+(r=c)),xe(t,e,r)}var t,e,r;wc.point=function(u,i){u*=Aa;var o=Math.cos(i*=Aa);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),wc.point=n,xe(t,e,r)}}function _e(){wc.point=ye}function be(){function n(n,t){n*=Aa;var e=Math.cos(t*=Aa),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),s=u*c-i*a,l=i*o-r*c,f=r*a-u*o,h=Math.sqrt(s*s+l*l+f*f),g=r*o+u*a+i*c,p=h&&-J(g)/h,v=Math.atan2(h,g);Mc+=p*s,_c+=p*l,bc+=p*f,gc+=v,mc+=v*(r+(r=o)),yc+=v*(u+(u=a)),xc+=v*(i+(i=c)),xe(r,u,i)}var t,e,r,u,i;wc.point=function(o,a){t=o,e=a,wc.point=n,o*=Aa;var c=Math.cos(a*=Aa);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),xe(r,u,i)},wc.lineEnd=function(){n(t,e),wc.lineEnd=_e,wc.point=ye}}function we(){return!0}function Se(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(me(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new Ee(e,n,null,!0),s=new Ee(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new Ee(r,n,null,!1),s=new Ee(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),ke(i),ke(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ke(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function Ee(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Ae(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function s(){y.point=o,d.lineEnd()}function l(n,t){v.push([n,t]);var e=u(n,t);M.point(e[0],e[1])}function f(){M.lineStart(),v=[]}function h(){l(v[0][0],v[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Ce))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=Zo.merge(g);var n=Le(m,p);g.length?(_||(i.polygonStart(),_=!0),Se(g,ze,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Ne(),M=t(x),_=!1;return y}}function Ce(n){return n.length>1}function Ne(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:v,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function ze(n,t){return((n=n.x)[0]<0?n[1]-Sa-ka:Sa-n[1])-((t=t.x)[0]<0?t[1]-Sa-ka:Sa-t[1])}function Le(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;lc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+ba/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+ba/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>ba,k=p*x;if(lc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*wa:_,S^h>=e^m>=e){var E=he(le(f),le(n));ve(E);var A=he(u,E);ve(A);var C=(S^_>=0?-1:1)*G(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-ka>i||ka>i&&0>lc)^1&o}function Te(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?ba:-ba,c=ua(i-e);ua(c-ba)<ka?(n.point(e,r=(r+o)/2>0?Sa:-Sa),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=ba&&(ua(e-u)<ka&&(e-=u*ka),ua(i-a)<ka&&(i-=a*ka),r=qe(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function qe(n,t,e,r){var u,i,o=Math.sin(n-e);return ua(o)>ka?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Re(n,t,e,r){var u;if(null==n)u=e*Sa,r.point(-ba,u),r.point(0,u),r.point(ba,u),r.point(ba,0),r.point(ba,-u),r.point(0,-u),r.point(-ba,-u),r.point(-ba,0),r.point(-ba,u);else if(ua(n[0]-t[0])>ka){var i=n[0]<t[0]?ba:-ba;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function De(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?ba:-ba),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(me(e,g)||me(p,g))&&(p[0]+=ka,p[1]+=ka,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&me(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=le(n),u=le(t),o=[1,0,0],a=he(r,u),c=fe(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=he(o,a),p=pe(o,f),v=pe(a,h);ge(p,v);var d=g,m=fe(p,d),y=fe(d,d),x=m*m-y*(fe(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=pe(d,(-m-M)/y);if(ge(_,p),_=de(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ua(A-ba)<ka,N=C||ka>A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ua(_[0]-w)<ka?k:E):k<=_[1]&&_[1]<=E:A>ba^(w<=_[0]&&_[0]<=S)){var z=pe(d,(-m+M)/y);return ge(z,p),[_,de(z)]}}}function u(t,e){var r=o?n:ba-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ua(i)>ka,c=sr(n,6*Aa);return Ae(t,e,c,o?[0,-n]:[-ba,n-ba])}function Pe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function Ue(n,t,e,r){function u(r,u){return ua(r[0]-n)<ka?u>0?0:3:ua(r[0]-e)<ka?u>0?2:1:ua(r[1]-t)<ka?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,s=a[0];c>o;++o)i=a[o],s[1]<=r?i[1]>r&&W(s,i,n)>0&&++t:i[1]<=r&&W(s,i,n)<0&&--t,s=i;return 0!==t}function s(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function l(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){l(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-kc,Math.min(kc,n)),t=Math.max(-kc,Math.min(kc,t));var e=l(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=Ne(),C=Pe(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Zo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),u&&Se(v,i,t,s,a),a.polygonEnd()),v=d=m=null}};return N}}function je(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function He(n){var t=0,e=ba/3,r=tr(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*ba/180,e=n[1]*ba/180):[180*(t/ba),180*(e/ba)]},u}function Fe(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,G((i-(n*n+e*e)*u*u)/(2*u))]},e}function Oe(){function n(n,t){Ac+=u*n-r*t,r=n,u=t}var t,e,r,u;Tc.point=function(i,o){Tc.point=n,t=r=i,e=u=o},Tc.lineEnd=function(){n(t,e)}}function Ye(n,t){Cc>n&&(Cc=n),n>zc&&(zc=n),Nc>t&&(Nc=t),t>Lc&&(Lc=t)}function Ie(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Ze(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Ze(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Ze(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Ve(n,t){pc+=n,vc+=t,++dc}function Xe(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);mc+=o*(t+n)/2,yc+=o*(e+r)/2,xc+=o,Ve(t=n,e=r)}var t,e;Rc.point=function(r,u){Rc.point=n,Ve(t=r,e=u)}}function $e(){Rc.point=Ve}function Be(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);mc+=o*(r+n)/2,yc+=o*(u+t)/2,xc+=o,o=u*n-r*t,Mc+=o*(r+n),_c+=o*(u+t),bc+=3*o,Ve(r=n,u=t)}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,Ve(t=r=i,e=u=o)},Rc.lineEnd=function(){n(t,e)}}function We(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,wa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:v};return a}function Je(n){function t(n){return(a?r:e)(n)}function e(t){return Qe(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=le([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ua(ua(w)-1)<ka||ua(r-h)<ka?(r+h)/2:Math.atan2(b,_),A=n(E,k),C=A[0],N=A[1],z=C-t,L=N-e,T=x*z-y*L;(T*T/M>i||ua((y*z+x*L)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Aa),a=16;
-return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function Ge(n){var t=Je(function(t,e){return n([t*Ca,e*Ca])});return function(n){return er(t(n))}}function Ke(n){this.stream=n}function Qe(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function nr(n){return tr(function(){return n})()}function tr(n){function t(n){return n=a(n[0]*Aa,n[1]*Aa),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*Ca,n[1]*Ca]}function r(){a=je(o=ir(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=Je(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Sc,_=wt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=er(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Sc):De((b=+n)*Aa),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Ue(n[0][0],n[0][1],n[1][0],n[1][1]):wt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Aa,d=n[1]%360*Aa,r()):[v*Ca,d*Ca]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Aa,y=n[1]%360*Aa,x=n.length>2?n[2]%360*Aa:0,r()):[m*Ca,y*Ca,x*Ca]},Zo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function er(n){return Qe(n,function(t,e){n.point(t*Aa,e*Aa)})}function rr(n,t){return[n,t]}function ur(n,t){return[n>ba?n-wa:-ba>n?n+wa:n,t]}function ir(n,t,e){return n?t||e?je(ar(n),cr(t,e)):ar(n):t||e?cr(t,e):ur}function or(n){return function(t,e){return t+=n,[t>ba?t-wa:-ba>t?t+wa:t,e]}}function ar(n){var t=or(n);return t.invert=or(-n),t}function cr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),G(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),G(l*r-a*u)]},e}function sr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=lr(e,u),i=lr(e,i),(o>0?i>u:u>i)&&(u+=o*wa)):(u=n+o*wa,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=de([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function lr(n,t){var e=le(t);e[0]-=n,ve(e);var r=J(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-ka)%(2*Math.PI)}function fr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function hr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function gr(n){return n.source}function pr(n){return n.target}function vr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(tt(r-t)+u*o*tt(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ca,Math.atan2(o,Math.sqrt(r*r+u*u))*Ca]}:function(){return[n*Ca,t*Ca]};return p.distance=h,p}function dr(){function n(n,u){var i=Math.sin(u*=Aa),o=Math.cos(u),a=ua((n*=Aa)-t),c=Math.cos(a);Dc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Pc.point=function(u,i){t=u*Aa,e=Math.sin(i*=Aa),r=Math.cos(i),Pc.point=n},Pc.lineEnd=function(){Pc.point=Pc.lineEnd=v}}function mr(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function yr(n,t){function e(n,t){o>0?-Sa+ka>t&&(t=-Sa+ka):t>Sa-ka&&(t=Sa-ka);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ba/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=B(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Sa]},e):Mr}function xr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ua(u)<ka?rr:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-B(u)*Math.sqrt(n*n+e*e)]},e)}function Mr(n,t){return[n,Math.log(Math.tan(ba/4+t/2))]}function _r(n){var t,e=nr(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=ba*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function br(n,t){return[Math.log(Math.tan(ba/4+t/2)),-n]}function wr(n){return n[0]}function Sr(n){return n[1]}function kr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&W(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function Er(n,t){return n[0]-t[0]||n[1]-t[1]}function Ar(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Cr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function Nr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function zr(){Gr(this),this.edge=this.site=this.circle=null}function Lr(n){var t=Bc.pop()||new zr;return t.site=n,t}function Tr(n){Yr(n),Vc.remove(n),Bc.push(n),Gr(n)}function qr(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Tr(n);for(var c=i;c.circle&&ua(e-c.circle.x)<ka&&ua(r-c.circle.cy)<ka;)i=c.P,a.unshift(c),Tr(c),c=i;a.unshift(c),Yr(c);for(var s=o;s.circle&&ua(e-s.circle.x)<ka&&ua(r-s.circle.cy)<ka;)o=s.N,a.push(s),Tr(s),s=o;a.push(s),Yr(s);var l,f=a.length;for(l=1;f>l;++l)s=a[l],c=a[l-1],Br(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=Xr(c.site,s.site,null,u),Or(c),Or(s)}function Rr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Vc._;a;)if(r=Dr(a,o)-i,r>ka)a=a.L;else{if(u=i-Pr(a,o),!(u>ka)){r>-ka?(t=a.P,e=a):u>-ka?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Lr(n);if(Vc.insert(t,c),t||e){if(t===e)return Yr(t),e=Lr(t.site),Vc.insert(c,e),c.edge=e.edge=Xr(t.site,c.site),Or(t),Or(e),void 0;if(!e)return c.edge=Xr(t.site,c.site),void 0;Yr(t),Yr(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};Br(e.edge,s,p,M),c.edge=Xr(s,n,null,M),e.edge=Xr(n,p,null,M),Or(t),Or(e)}}function Dr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function Pr(n,t){var e=n.N;if(e)return Dr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ur(n){this.site=n,this.edges=[]}function jr(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Zc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(ua(r-t)>ka||ua(u-e)>ka)&&(a.splice(o,0,new Wr($r(i.site,l,ua(r-f)<ka&&p-u>ka?{x:f,y:ua(t-f)<ka?e:p}:ua(u-p)<ka&&h-r>ka?{x:ua(e-p)<ka?t:h,y:p}:ua(r-h)<ka&&u-g>ka?{x:h,y:ua(t-h)<ka?e:g}:ua(u-g)<ka&&r-f>ka?{x:ua(e-g)<ka?t:f,y:g}:null),i.site,null)),++c)}function Hr(n,t){return t.angle-n.angle}function Fr(){Gr(this),this.x=this.y=this.arc=this.site=this.cy=null}function Or(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,s=r.y-a,l=i.x-o,f=i.y-a,h=2*(c*f-s*l);if(!(h>=-Ea)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Wc.pop()||new Fr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=$c._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}$c.insert(y,m),y||(Xc=m)}}}}function Yr(n){var t=n.circle;t&&(t.P||(Xc=t.N),$c.remove(t),Wc.push(t),Gr(t),n.circle=null)}function Ir(n){for(var t,e=Ic,r=Pe(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Zr(t,n)||!r(t)||ua(t.a.x-t.b.x)<ka&&ua(t.a.y-t.b.y)<ka)&&(t.a=t.b=null,e.splice(u,1))}function Zr(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],s=t[1][1],l=n.l,f=n.r,h=l.x,g=l.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.y<c)return}else i={x:d,y:s};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.y<c)return}else i={x:(s-u)/r,y:s};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Vr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Xr(n,t,e,r){var u=new Vr(n,t);return Ic.push(u),e&&Br(u,n,t,e),r&&Br(u,t,n,r),Zc[n.i].edges.push(new Wr(u,n,t)),Zc[t.i].edges.push(new Wr(u,t,n)),u}function $r(n,t,e){var r=new Vr(n,null);return r.a=t,r.b=e,Ic.push(r),r}function Br(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Wr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function Jr(){this._=null}function Gr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function Kr(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function Qr(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function nu(n){for(;n.L;)n=n.L;return n}function tu(n,t){var e,r,u,i=n.sort(eu).pop();for(Ic=[],Zc=new Array(n.length),Vc=new Jr,$c=new Jr;;)if(u=Xc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Zc[i.i]=new Ur(i),Rr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;qr(u.arc)}t&&(Ir(t),jr(t));var o={cells:Zc,edges:Ic};return Vc=$c=Ic=Zc=null,o}function eu(n,t){return t.y-n.y||t.x-n.x}function ru(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function uu(n){return n.x}function iu(n){return n.y}function ou(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function au(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&au(n,c[0],e,r,o,a),c[1]&&au(n,c[1],o,r,u,a),c[2]&&au(n,c[2],e,a,o,i),c[3]&&au(n,c[3],o,a,u,i)}}function cu(n,t){n=Zo.rgb(n),t=Zo.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+dt(Math.round(e+i*n))+dt(Math.round(r+o*n))+dt(Math.round(u+a*n))}}function su(n,t){var e,r={},u={};for(e in n)e in t?r[e]=hu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function lu(n,t){return t-=n=+n,function(e){return n+t*e}}function fu(n,t){var e,r,u,i=Gc.lastIndex=Kc.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=Gc.exec(n))&&(r=Kc.exec(t));)(u=r.index)>i&&(u=t.substring(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:lu(e,r)})),i=Kc.lastIndex;return i<t.length&&(u=t.substring(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function hu(n,t){for(var e,r=Zo.interpolators.length;--r>=0&&!(e=Zo.interpolators[r](n,t)););return e}function gu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(hu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function pu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function vu(n){return function(t){return 1-n(1-t)}}function du(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function mu(n){return n*n}function yu(n){return n*n*n}function xu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Mu(n){return function(t){return Math.pow(t,n)}}function _u(n){return 1-Math.cos(n*Sa)}function bu(n){return Math.pow(2,10*(n-1))}function wu(n){return 1-Math.sqrt(1-n*n)}function Su(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/wa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*wa/t)}}function ku(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Eu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Au(n,t){n=Zo.hcl(n),t=Zo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ot(e+i*n,r+o*n,u+a*n)+""}}function Cu(n,t){n=Zo.hsl(n),t=Zo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ut(e+i*n,r+o*n,u+a*n)+""}}function Nu(n,t){n=Zo.lab(n),t=Zo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function zu(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Lu(n){var t=[n.a,n.b],e=[n.c,n.d],r=qu(t),u=Tu(t,e),i=qu(Ru(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Ca,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Ca:0}function Tu(n,t){return n[0]*t[0]+n[1]*t[1]}function qu(n){var t=Math.sqrt(Tu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Ru(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Du(n,t){var e,r=[],u=[],i=Zo.transform(n),o=Zo.transform(t),a=i.translate,c=o.translate,s=i.rotate,l=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:lu(a[0],c[0])},{i:3,x:lu(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),s!=l?(s-l>180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:lu(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:lu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:lu(g[0],p[0])},{i:e-2,x:lu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Pu(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return(e-n)*t}}function Uu(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return Math.max(0,Math.min(1,(e-n)*t))}}function ju(n){for(var t=n.source,e=n.target,r=Fu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Hu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Fu(n,t){if(n===t)return n;for(var e=Hu(n),r=Hu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Ou(n){n.fixed|=2}function Yu(n){n.fixed&=-7}function Iu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Zu(n){n.fixed&=-5}function Vu(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Vu(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var s=t*e[n.point.index];n.charge+=n.pointCharge=s,r+=s*n.point.x,u+=s*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Xu(n,t){return Zo.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=Ku,n}function $u(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Bu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function Wu(n){return n.children}function Ju(n){return n.value}function Gu(n,t){return t.value-n.value}function Ku(n){return Zo.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function Qu(n){return n.x}function ni(n){return n.y}function ti(n,t,e){n.y0=t,n.y=e}function ei(n){return Zo.range(n.length)}function ri(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function ui(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function ii(n){return n.reduce(oi,0)}function oi(n,t){return n+t[1]}function ai(n,t){return ci(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ci(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function si(n){return[Zo.min(n),Zo.max(n)]}function li(n,t){return n.value-t.value}function fi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function hi(n,t){n._pack_next=t,t._pack_prev=n}function gi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function pi(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(vi),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],yi(r,u,i),t(i),fi(r,i),r._pack_prev=i,fi(i,u),u=r._pack_next,o=3;s>o;o++){yi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(gi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!gi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?hi(r,u=a):hi(r=c,u),o--):(fi(r,i),u=i,t(i))}var m=(l+f)/2,y=(h+g)/2,x=0;for(o=0;s>o;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(di)}}function vi(n){n._pack_next=n._pack_prev=n}function di(n){delete n._pack_next,delete n._pack_prev}function mi(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)mi(u[i],t,e,r)}function yi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),s=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+s*i,e.y=n.y+c*i-s*u}else e.x=n.x+r,e.y=n.y}function xi(n,t){return n.parent==t.parent?1:2}function Mi(n){var t=n.children;return t.length?t[0]:n.t}function _i(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function bi(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function wi(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Si(n,t,e){return n.a.parent===t.parent?n.a:e}function ki(n){return 1+Zo.max(n,function(n){return n.y})}function Ei(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ai(n){var t=n.children;return t&&t.length?Ai(t[0]):n}function Ci(n){var t,e=n.children;return e&&(t=e.length)?Ci(e[t-1]):n}function Ni(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function zi(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Li(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ti(n){return n.rangeExtent?n.rangeExtent():Li(n.range())}function qi(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Ri(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Di(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ss}function Pi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=Zo.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Ui(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Pi:qi,c=r?Uu:Pu;return o=u(n,t,c,e),a=u(t,n,c,hu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(zu)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Oi(n,t)},i.tickFormat=function(t,e){return Yi(n,t,e)},i.nice=function(t){return Hi(n,t),u()},i.copy=function(){return Ui(n,t,e,r)},u()}function ji(n,t){return Zo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Hi(n,t){return Ri(n,Di(Fi(n,t)[2]))}function Fi(n,t){null==t&&(t=10);var e=Li(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Oi(n,t){return Zo.range.apply(Zo,Fi(n,t))}function Yi(n,t,e){var r=Fi(n,t);if(e){var u=Ga.exec(e);if(u.shift(),"s"===u[8]){var i=Zo.formatPrefix(Math.max(ua(r[0]),ua(r[1])));return u[7]||(u[7]="."+Ii(i.scale(r[2]))),u[8]="f",e=Zo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Zi(u[8],r)),e=u.join("")}else e=",."+Ii(r[2])+"f";return Zo.format(e)}function Ii(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Zi(n,t){var e=Ii(t[2]);return n in ls?Math.abs(e-Ii(Math.max(ua(t[0]),ua(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Vi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Ri(r.map(u),e?Math:hs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Li(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++<l;)for(var h=f-1;h>0;h--)o.push(i(s)*h);for(s=0;o[s]<a;s++);for(l=o.length;o[l-1]>c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return fs;arguments.length<2?t=fs:"function"!=typeof t&&(t=Zo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Vi(n.copy(),t,e,r)},ji(o,n)}function Xi(n,t,e){function r(t){return n(u(t))}var u=$i(t),i=$i(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Oi(e,n)},r.tickFormat=function(n,t){return Yi(e,n,t)},r.nice=function(n){return r.domain(Hi(e,n))},r.exponent=function(o){return arguments.length?(u=$i(t=o),i=$i(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Xi(n.copy(),t,e)},ji(r,n)}function $i(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Bi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Zo.range(n.length).map(function(n){return t+e*n})}var u,i,a;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new o;for(var i,a=-1,c=r.length;++a<c;)u.has(i=r[a])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,a=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,o){arguments.length<2&&(o=0);var c=u[0],s=u[1],l=(s-c)/(Math.max(1,n.length-1)+o);return i=r(n.length<2?(c+s)/2:c+l*o/2,l),a=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,o,c){arguments.length<2&&(o=0),arguments.length<3&&(c=o);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=(f-l)/(n.length-o+2*c);return i=r(l+h*c,h),s&&i.reverse(),a=h*(1-o),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,o,c){arguments.length<2&&(o=0),arguments.length<3&&(c=o);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=Math.floor((f-l)/(n.length-o+2*c)),g=f-l-(n.length-o)*h;return i=r(l+Math.round(g/2),h),s&&i.reverse(),a=Math.round(h*(1-o)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return a},e.rangeExtent=function(){return Li(t.a[0])},e.copy=function(){return Bi(n,t)},e.domain(n)}function Wi(e,r){function u(){var n=0,t=r.length;for(o=[];++n<t;)o[n-1]=Zo.quantile(e,n/t);return i}function i(n){return isNaN(n=+n)?void 0:r[Zo.bisect(o,n)]}var o;return i.domain=function(r){return arguments.length?(e=r.filter(t).sort(n),u()):e},i.range=function(n){return arguments.length?(r=n,u()):r},i.quantiles=function(){return o},i.invertExtent=function(n){return n=r.indexOf(n),0>n?[0/0,0/0]:[n>0?o[n-1]:e[0],n<o.length?o[n]:e[e.length-1]]},i.copy=function(){return Wi(e,r)},u()}function Ji(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return Ji(n,t,e)},u()}function Gi(n,t){function e(e){return e>=e?t[Zo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Gi(n,t)},e}function Ki(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Oi(n,t)},t.tickFormat=function(t,e){return Yi(n,t,e)},t.copy=function(){return Ki(n)},t}function Qi(n){return n.innerRadius}function no(n){return n.outerRadius}function to(n){return n.startAngle}function eo(n){return n.endAngle}function ro(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=bt(e),p=bt(r);++f<h;)u.call(this,c=t[f],f)?l.push([+g.call(this,c,f),+p.call(this,c,f)]):l.length&&(o(),l=[]);return l.length&&o(),s.length?s.join(""):null}var e=wr,r=Sr,u=we,i=uo,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=xs.get(n)||uo).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function uo(n){return n.join("L")}function io(n){return uo(n)+"Z"}function oo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function ao(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function co(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function so(n,t){return n.length<4?uo(n):n[1]+ho(n.slice(1,n.length-1),go(n,t))}function lo(n,t){return n.length<3?uo(n):n[0]+ho((n.push(n[0]),n),go([n[n.length-2]].concat(n,[n[1]]),t))}function fo(n,t){return n.length<3?uo(n):n[0]+ho(n,go(n,t))}function ho(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return uo(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s<t.length;s++,c++)i=n[c],a=t[s],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var l=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+l[0]+","+l[1]}return r}function go(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function po(n){if(n.length<3)return uo(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",xo(bs,o),",",xo(bs,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Mo(c,o,a);return n.pop(),c.push("L",r),c.join("")}function vo(n){if(n.length<4)return uo(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(xo(bs,i)+","+xo(bs,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Mo(e,i,o);return e.join("")}function mo(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[xo(bs,o),",",xo(bs,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Mo(t,o,a);return t.join("")}function yo(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,s=-1;++s<=e;)r=n[s],u=s/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return po(n)}function xo(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Mo(n,t,e){n.push("C",xo(Ms,t),",",xo(Ms,e),",",xo(_s,t),",",xo(_s,e),",",xo(bs,t),",",xo(bs,e))}function _o(n,t){return(t[1]-n[1])/(t[0]-n[0])}function bo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=_o(u,i);++t<e;)r[t]=(o+(o=_o(u=i,i=n[t+1])))/2;return r[t]=o,r}function wo(n){for(var t,e,r,u,i=[],o=bo(n),a=-1,c=n.length-1;++a<c;)t=_o(n[a],n[a+1]),ua(t)<ka?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function So(n){return n.length<3?uo(n):n[0]+ho(n,wo(n))}function ko(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+ms,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Eo(n){function t(t){function c(){v.push("M",a(n(m),f),l,s(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,x=t.length,M=bt(e),_=bt(u),b=e===r?function(){return g}:bt(r),w=u===i?function(){return p}:bt(i);++y<x;)o.call(this,h=t[y],y)?(d.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=wr,r=wr,u=0,i=Sr,o=we,a=uo,c=a.key,s=a,l="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=xs.get(n)||uo).key,s=a.reverse||a,l=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Ao(n){return n.radius}function Co(n){return[n.x,n.y]}function No(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+ms;return[e*Math.cos(r),e*Math.sin(r)]}}function zo(){return 64}function Lo(){return"circle"}function To(n){var t=Math.sqrt(n/ba);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function qo(n,t){return sa(n,Cs),n.id=t,n}function Ro(n,t,e,r){var u=n.id;return P(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function Do(n){return null==n&&(n=""),function(){this.textContent=n}}function Po(n,t,e,r){var u=n.__transition__||(n.__transition__={active:0,count:0}),i=u[e];if(!i){var a=r.time;i=u[e]={tween:new o,time:a,ease:r.ease,delay:r.delay,duration:r.duration},++u.count,Zo.timer(function(r){function o(r){return u.active>e?s():(u.active=e,i.event&&i.event.start.call(n,l,t),i.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),Zo.timer(function(){return p.c=c(r||1)?we:c,1},0,a),void 0)}function c(r){if(u.active!==e)return s();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a);
-return o>=1?(i.event&&i.event.end.call(n,l,t),s()):void 0}function s(){return--u.count?delete u[e]:delete n.__transition__,1}var l=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ba,v=[];return p.t=h+a,r>=h?o(r-h):(p.c=o,void 0)},0,a)}}function Uo(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function jo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function Ho(n){return n.toISOString()}function Fo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Zo.bisect(Us,u);return i==Us.length?[t.year,Fi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Us[i-1]<Us[i]/u?i-1:i]:[Fs,Fi(n,e)[2]]}return r.invert=function(t){return Oo(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Oo)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Oo(+e+1),t).length}var i=r.domain(),o=Li(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(Ri(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Oo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Oo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Li(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Oo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Fo(n.copy(),t,e)},ji(r,n)}function Oo(n){return new Date(n)}function Yo(n){return JSON.parse(n.responseText)}function Io(n){var t=$o.createRange();return t.selectNode($o.body),t.createContextualFragment(n.responseText)}var Zo={version:"3.4.11"};Date.now||(Date.now=function(){return+new Date});var Vo=[].slice,Xo=function(n){return Vo.call(n)},$o=document,Bo=$o.documentElement,Wo=window;try{Xo(Bo.childNodes)[0].nodeType}catch(Jo){Xo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{$o.createElement("div").style.setProperty("opacity",0,"")}catch(Go){var Ko=Wo.Element.prototype,Qo=Ko.setAttribute,na=Ko.setAttributeNS,ta=Wo.CSSStyleDeclaration.prototype,ea=ta.setProperty;Ko.setAttribute=function(n,t){Qo.call(this,n,t+"")},Ko.setAttributeNS=function(n,t,e){na.call(this,n,t,e+"")},ta.setProperty=function(n,t,e){ea.call(this,n,t+"",e)}}Zo.ascending=n,Zo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Zo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},Zo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},Zo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},Zo.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i<u;)isNaN(e=+n[i])||(r+=e);else for(;++i<u;)isNaN(e=+t.call(n,n[i],i))||(r+=e);return r},Zo.mean=function(n,e){var r,u=0,i=n.length,o=-1,a=i;if(1===arguments.length)for(;++o<i;)t(r=n[o])?u+=r:--a;else for(;++o<i;)t(r=e.call(n,n[o],o))?u+=r:--a;return a?u/a:void 0},Zo.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},Zo.median=function(e,r){return arguments.length>1&&(e=e.map(r)),e=e.filter(t),e.length?Zo.quantile(e.sort(n),.5):void 0};var ra=e(n);Zo.bisectLeft=ra.left,Zo.bisect=Zo.bisectRight=ra.right,Zo.bisector=function(t){return e(1===t.length?function(e,r){return n(t(e),r)}:t)},Zo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Zo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Zo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Zo.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,t=Zo.min(arguments,r),e=new Array(t);++n<t;)for(var u,i=-1,o=e[n]=new Array(u);++i<u;)o[i]=arguments[i][n];return e},Zo.transpose=function(n){return Zo.zip.apply(Zo,n)},Zo.keys=function(n){var t=[];for(var e in n)t.push(e);return t},Zo.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},Zo.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},Zo.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ua=Math.abs;Zo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,i=[],o=u(ua(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)i.push(r/o);else for(;(r=n+e*++a)<t;)i.push(r/o);return i},Zo.map=function(n){var t=new o;if(n instanceof o)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t},i(o,{has:a,get:function(n){return this[ia+n]},set:function(n,t){return this[ia+n]=t},remove:c,keys:s,values:function(){var n=[];return this.forEach(function(t,e){n.push(e)}),n},entries:function(){var n=[];return this.forEach(function(t,e){n.push({key:t,value:e})}),n},size:l,empty:f,forEach:function(n){for(var t in this)t.charCodeAt(0)===oa&&n.call(this,t.substring(1),this[t])}});var ia="\x00",oa=ia.charCodeAt(0);Zo.nest=function(){function n(t,a,c){if(c>=i.length)return r?r.call(u,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=i[c++],d=new o;++g<p;)(h=d.get(s=v(l=a[g])))?h.push(l):d.set(s,[l]);return t?(l=t(),f=function(e,r){l.set(e,n(t,r,c))}):(l={},f=function(e,r){l[e]=n(t,r,c)}),d.forEach(f),l}function t(n,e){if(e>=i.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],a=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Zo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Zo.set=function(n){var t=new h;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},i(h,{has:a,add:function(n){return this[ia+n]=!0,n},remove:function(n){return n=ia+n,n in this&&delete this[n]},values:s,size:l,empty:f,forEach:function(n){for(var t in this)t.charCodeAt(0)===oa&&n.call(this,t.substring(1))}}),Zo.behavior={},Zo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=g(n,t,t[e]);return n};var aa=["webkit","ms","moz","Moz","o","O"];Zo.dispatch=function(){for(var n=new d,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=m(n);return n},d.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Zo.event=null,Zo.requote=function(n){return n.replace(ca,"\\$&")};var ca=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},la=function(n,t){return t.querySelector(n)},fa=function(n,t){return t.querySelectorAll(n)},ha=Bo.matches||Bo[p(Bo,"matchesSelector")],ga=function(n,t){return ha.call(n,t)};"function"==typeof Sizzle&&(la=function(n,t){return Sizzle(n,t)[0]||null},fa=Sizzle,ga=Sizzle.matchesSelector),Zo.selection=function(){return ma};var pa=Zo.selection.prototype=[];pa.select=function(n){var t,e,r,u,i=[];n=b(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,s=r.length;++c<s;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return _(i)},pa.selectAll=function(n){var t,e,r=[];n=w(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=Xo(n.call(e,e.__data__,a,u))),t.parentNode=e);return _(r)};var va={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Zo.ns={prefix:va,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.substring(0,t),n=n.substring(t+1)),va.hasOwnProperty(e)?{space:va[e],local:n}:n}},pa.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Zo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(S(t,n[t]));return this}return this.each(S(n,t))},pa.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=A(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!E(n[u]).test(t))return!1;return!0}for(t in n)this.each(C(t,n[t]));return this}return this.each(C(n,t))},pa.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(z(e,n[e],t));return this}if(2>r)return Wo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(z(n,t,e))},pa.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},pa.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},pa.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},pa.append=function(n){return n=T(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},pa.insert=function(n,t){return n=T(n),t=b(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},pa.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},pa.data=function(n,t){function e(n,e){var r,u,i,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new o,y=new o,x=[];for(r=-1;++r<a;)d=t.call(u=n[r],u.__data__,r),m.has(d)?v[r]=u:m.set(d,u),x.push(d);for(r=-1;++r<f;)d=t.call(e,i=e[r],r),(u=m.get(d))?(g[r]=u,u.__data__=i):y.has(d)||(p[r]=q(i)),y.set(d,i),m.remove(d);for(r=-1;++r<a;)m.has(x[r])&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=q(i);for(;f>r;++r)p[r]=q(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,u,i=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++i<a;)(u=r[i])&&(n[i]=u.__data__);return n}var c=U([]),s=_([]),l=_([]);if("function"==typeof n)for(;++i<a;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<a;)e(r=this[i],n);return s.enter=function(){return c},s.exit=function(){return l},s},pa.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},pa.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=R(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return _(u)},pa.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},pa.sort=function(n){n=D.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},pa.each=function(n){return P(this,function(t,e,r){n.call(t,t.__data__,e,r)})},pa.call=function(n){var t=Xo(arguments);return n.apply(t[0]=this,t),this},pa.empty=function(){return!this.node()},pa.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},pa.size=function(){var n=0;return this.each(function(){++n}),n};var da=[];Zo.selection.enter=U,Zo.selection.enter.prototype=da,da.append=pa.append,da.empty=pa.empty,da.node=pa.node,da.call=pa.call,da.size=pa.size,da.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var s=-1,l=u.length;++s<l;)(i=u[s])?(t.push(r[s]=e=n.call(u.parentNode,i.__data__,s,a)),e.__data__=i.__data__):t.push(null)}return _(o)},da.insert=function(n,t){return arguments.length<2&&(t=j(this)),pa.insert.call(this,n,t)},pa.transition=function(){for(var n,t,e=Ss||++Ns,r=[],u=ks||{time:Date.now(),ease:xu,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,s=a.length;++c<s;)(t=a[c])&&Po(t,c,e,u),n.push(t)}return qo(r,e)},pa.interrupt=function(){return this.each(H)},Zo.select=function(n){var t=["string"==typeof n?la(n,$o):n];return t.parentNode=Bo,_([t])},Zo.selectAll=function(n){var t=Xo("string"==typeof n?fa(n,$o):n);return t.parentNode=Bo,_([t])};var ma=Zo.select(Bo);pa.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(F(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(F(n,t,e))};var ya=Zo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ya.forEach(function(n){"on"+n in $o&&ya.remove(n)});var xa="onselectstart"in $o?null:p(Bo.style,"userSelect"),Ma=0;Zo.mouse=function(n){return Z(n,x())};var _a=/WebKit/.test(Wo.navigator.userAgent)?-1:0;Zo.touches=function(n,t){return arguments.length<2&&(t=x().touches),t?Xo(t).map(function(t){var e=Z(n,t);return e.identifier=t.identifier,e}):[]},Zo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+s[0],y:r[1]+s[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Zo.event.target===f),g({type:"dragend"}))}var s,l=this,f=Zo.event.target,h=l.parentNode,g=e.of(l,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Zo.select(u()).on(i+d,a).on(o+d,c),y=I(),x=t(h,v);r?(s=r.apply(l,arguments),s=[s.x-x[0],s.y-x[1]]):s=[0,0],g({type:"dragstart"})}}var e=M(n,"drag","dragstart","dragend"),r=null,u=t(v,Zo.mouse,$,"mousemove","mouseup"),i=t(V,Zo.touch,X,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Zo.rebind(n,e,"on")};var ba=Math.PI,wa=2*ba,Sa=ba/2,ka=1e-6,Ea=ka*ka,Aa=ba/180,Ca=180/ba,Na=Math.SQRT2,za=2,La=4;Zo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=Q(v),o=i/(za*h)*(e*nt(Na*t+v)-K(v));return[r+o*s,u+o*l,i*e/Q(Na*t+v)]}return[r+n*s,u+n*l,i*Math.exp(Na*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+La*f)/(2*i*za*h),p=(c*c-i*i-La*f)/(2*c*za*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Na;return e.duration=1e3*y,e},Zo.behavior.zoom=function(){function n(n){n.on(A,s).on(Ra+".zoom",f).on("dblclick.zoom",h).on(z,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(x.range().map(function(n){return(n-S.x)/S.k}).map(x.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u(Zo.mouse(r),h),a(s)}function e(){f.on(C,null).on(N,null),g(l&&Zo.event.target===i),c(s)}var r=this,i=Zo.event.target,s=L.of(r,arguments),l=0,f=Zo.select(Wo).on(C,n).on(N,e),h=t(Zo.mouse(r)),g=I();H.call(r),o(s)}function l(){function n(){var n=Zo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Zo.event.target;Zo.select(t).on(M,i).on(_,f),b.push(t);for(var e=Zo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var s=n(),l=Date.now();if(1===s.length){if(500>l-m){var h=s[0],g=v[h.identifier];r(2*S.k),u(h,g),y(),a(p)}m=l}else if(s.length>1){var h=s[0],x=s[1],w=h[0]-x[0],k=h[1]-x[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Zo.touches(g),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=d&&Math.sqrt(l/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Zo.event.touches.length){for(var t=Zo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Zo.selectAll(b).on(x,null),w.on(A,s).on(z,l),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,x=".zoom-"+Zo.event.changedTouches[0].identifier,M="touchmove"+x,_="touchend"+x,b=[],w=Zo.select(g).on(A,null).on(z,e),k=I();H.call(g),e(),o(p)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Zo.mouse(this)),H.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),y(),r(Math.pow(2,.002*Ta())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Zo.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Zo.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,x,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=qa,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=M(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Ss?Zo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Zo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?qa:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,x=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},Zo.rebind(n,L,"on")};var Ta,qa=[0,1/0],Ra="onwheel"in $o?(Ta=function(){return-Zo.event.deltaY*(Zo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in $o?(Ta=function(){return Zo.event.wheelDelta},"mousewheel"):(Ta=function(){return-Zo.event.detail},"MozMousePixelScroll");Zo.color=et,et.prototype.toString=function(){return this.rgb()+""},Zo.hsl=rt;var Da=rt.prototype=new et;Da.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,this.l/n)},Da.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,n*this.l)},Da.rgb=function(){return ut(this.h,this.s,this.l)},Zo.hcl=it;var Pa=it.prototype=new et;Pa.brighter=function(n){return new it(this.h,this.c,Math.min(100,this.l+Ua*(arguments.length?n:1)))},Pa.darker=function(n){return new it(this.h,this.c,Math.max(0,this.l-Ua*(arguments.length?n:1)))},Pa.rgb=function(){return ot(this.h,this.c,this.l).rgb()},Zo.lab=at;var Ua=18,ja=.95047,Ha=1,Fa=1.08883,Oa=at.prototype=new et;Oa.brighter=function(n){return new at(Math.min(100,this.l+Ua*(arguments.length?n:1)),this.a,this.b)},Oa.darker=function(n){return new at(Math.max(0,this.l-Ua*(arguments.length?n:1)),this.a,this.b)},Oa.rgb=function(){return ct(this.l,this.a,this.b)},Zo.rgb=gt;var Ya=gt.prototype=new et;Ya.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new gt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new gt(u,u,u)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new gt(n*this.r,n*this.g,n*this.b)},Ya.hsl=function(){return yt(this.r,this.g,this.b)},Ya.toString=function(){return"#"+dt(this.r)+dt(this.g)+dt(this.b)};var Ia=Zo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ia.forEach(function(n,t){Ia.set(n,pt(t))}),Zo.functor=bt,Zo.xhr=St(wt),Zo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=kt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=s)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++<s;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}l=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++l):10===r&&(u=!0),n.substring(t+1,e).replace(/""/g,'"')}for(;s>l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==c)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],s=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new h,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Zo.csv=Zo.dsv(",","text/csv"),Zo.tsv=Zo.dsv("	","text/tab-separated-values"),Zo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=x().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return Z(n,r)};var Za,Va,Xa,$a,Ba,Wa=Wo[p(Wo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Zo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Va?Va.n=i:Za=i,Va=i,Xa||($a=clearTimeout($a),Xa=1,Wa(At))},Zo.timer.flush=function(){Ct(),Nt()},Zo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var Ja=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Lt);Zo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Zo.round(n,zt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),Ja[8+e/3]};var Ga=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Ka=Zo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Zo.round(n,zt(n,t))).toFixed(Math.max(0,Math.min(20,zt(n*(1+1e-15),t))))}}),Qa=Zo.time={},nc=Date;Rt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){tc.setUTCDate.apply(this._,arguments)},setDay:function(){tc.setUTCDay.apply(this._,arguments)},setFullYear:function(){tc.setUTCFullYear.apply(this._,arguments)},setHours:function(){tc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){tc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){tc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){tc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){tc.setUTCSeconds.apply(this._,arguments)},setTime:function(){tc.setTime.apply(this._,arguments)}};var tc=Date.prototype;Qa.year=Dt(function(n){return n=Qa.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Qa.years=Qa.year.range,Qa.years.utc=Qa.year.utc.range,Qa.day=Dt(function(n){var t=new nc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Qa.days=Qa.day.range,Qa.days.utc=Qa.day.utc.range,Qa.dayOfYear=function(n){var t=Qa.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=Qa[n]=Dt(function(n){return(n=Qa.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Qa[n+"s"]=e.range,Qa[n+"s"].utc=e.utc.range,Qa[n+"OfYear"]=function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)}}),Qa.week=Qa.sunday,Qa.weeks=Qa.sunday.range,Qa.weeks.utc=Qa.sunday.utc.range,Qa.weekOfYear=Qa.sundayOfYear;var ec={"-":"",_:" ",0:"0"},rc=/^\s*\d+/,uc=/^%/;Zo.locale=function(n){return{numberFormat:Tt(n),timeFormat:Ut(n)}};var ic=Zo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Zo.format=ic.numberFormat,Zo.geo={},ue.prototype={s:0,t:0,add:function(n){ie(n,this.t,oc),ie(oc.s,this.s,this),this.s?this.t+=oc.t:this.s=oc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oc=new ue;Zo.geo.stream=function(n,t){n&&ac.hasOwnProperty(n.type)?ac[n.type](n,t):oe(n,t)};var ac={Feature:function(n,t){oe(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)oe(e[r].geometry,t)}},cc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){ae(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)ae(e[r],t,0)},Polygon:function(n,t){ce(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)ce(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)oe(e[r],t)}};Zo.geo.area=function(n){return sc=0,Zo.geo.stream(n,fc),sc};var sc,lc=new ue,fc={sphere:function(){sc+=4*ba},point:v,lineStart:v,lineEnd:v,polygonStart:function(){lc.reset(),fc.lineStart=se},polygonEnd:function(){var n=2*lc;sc+=0>n?4*ba+n:n,fc.lineStart=fc.lineEnd=fc.point=v}};Zo.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=le([t*Aa,e*Aa]);if(m){var u=he(m,r),i=[u[1],-u[0],0],o=he(i,u);ve(o),o=de(o);var c=t-p,s=c>0?1:-1,v=o[0]*Ca*s,d=ua(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*Ca;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*Ca;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ua(r)>180?r+(r>0?360:-360):r}else v=n,d=e;fc.point(n,e),t(n,e)}function i(){fc.lineStart()}function o(){u(v,d),fc.lineEnd(),ua(y)>ka&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var l,f,h,g,p,v,d,m,y,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,fc.polygonStart()},polygonEnd:function(){fc.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,0>lc?(l=-(h=180),f=-(g=90)):y>ka?g=90:-ka>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],Zo.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);
-for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),Zo.geo.centroid=function(n){hc=gc=pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,wc);var t=Mc,e=_c,r=bc,u=t*t+e*e+r*r;return Ea>u&&(t=mc,e=yc,r=xc,ka>gc&&(t=pc,e=vc,r=dc),u=t*t+e*e+r*r,Ea>u)?[0/0,0/0]:[Math.atan2(e,t)*Ca,G(r/Math.sqrt(u))*Ca]};var hc,gc,pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc={sphere:v,point:ye,lineStart:Me,lineEnd:_e,polygonStart:function(){wc.lineStart=be},polygonEnd:function(){wc.lineStart=Me}},Sc=Ae(we,Te,Re,[-ba,-ba/2]),kc=1e9;Zo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ue(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Zo.geo.conicEqualArea=function(){return He(Fe)}).raw=Fe,Zo.geo.albers=function(){return Zo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Zo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Zo.geo.albers(),o=Zo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Zo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+ka,f+.12*s+ka],[l-.214*s-ka,f+.234*s-ka]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+ka,f+.166*s+ka],[l-.115*s-ka,f+.234*s-ka]]).stream(c).point,n},n.scale(1070)};var Ec,Ac,Cc,Nc,zc,Lc,Tc={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Ac=0,Tc.lineStart=Oe},polygonEnd:function(){Tc.lineStart=Tc.lineEnd=Tc.point=v,Ec+=ua(Ac/2)}},qc={point:Ye,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Rc={point:Ve,lineStart:Xe,lineEnd:$e,polygonStart:function(){Rc.lineStart=Be},polygonEnd:function(){Rc.point=Ve,Rc.lineStart=Xe,Rc.lineEnd=$e}};Zo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Zo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Ec=0,Zo.geo.stream(n,u(Tc)),Ec},n.centroid=function(n){return pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,u(Rc)),bc?[Mc/bc,_c/bc]:xc?[mc/xc,yc/xc]:dc?[pc/dc,vc/dc]:[0/0,0/0]},n.bounds=function(n){return zc=Lc=-(Cc=Nc=1/0),Zo.geo.stream(n,u(qc)),[[Cc,Nc],[zc,Lc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||Ge(n):wt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new Ie:new We(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Zo.geo.albersUsa()).context(null)},Zo.geo.transform=function(n){return{stream:function(t){var e=new Ke(t);for(var r in n)e[r]=n[r];return e}}},Ke.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Zo.geo.projection=nr,Zo.geo.projectionMutator=tr,(Zo.geo.equirectangular=function(){return nr(rr)}).raw=rr.invert=rr,Zo.geo.rotation=function(n){function t(t){return t=n(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t}return n=ir(n[0]%360*Aa,n[1]*Aa,n.length>2?n[2]*Aa:0),t.invert=function(t){return t=n.invert(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t},t},ur.invert=rr,Zo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=ir(-n[0]*Aa,-n[1]*Aa,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ca,n[1]*=Ca}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=sr((t=+r)*Aa,u*Aa),n):t},n.precision=function(r){return arguments.length?(e=sr(t*Aa,(u=+r)*Aa),n):u},n.angle(90)},Zo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Aa,u=n[1]*Aa,i=t[1]*Aa,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},Zo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Zo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Zo.range(Math.ceil(s/m)*m,c,m).map(g)).concat(Zo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ua(n%d)>ka}).map(l)).concat(Zo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ua(n%m)>ka}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=fr(a,o,90),f=hr(r,e,y),h=fr(s,c,90),g=hr(i,u,y),n):y},n.majorExtent([[-180,-90+ka],[180,90-ka]]).minorExtent([[-180,-80-ka],[180,80+ka]])},Zo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=gr,u=pr;return n.distance=function(){return Zo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Zo.geo.interpolate=function(n,t){return vr(n[0]*Aa,n[1]*Aa,t[0]*Aa,t[1]*Aa)},Zo.geo.length=function(n){return Dc=0,Zo.geo.stream(n,Pc),Dc};var Dc,Pc={sphere:v,point:v,lineStart:dr,lineEnd:v,polygonStart:v,polygonEnd:v},Uc=mr(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Zo.geo.azimuthalEqualArea=function(){return nr(Uc)}).raw=Uc;var jc=mr(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},wt);(Zo.geo.azimuthalEquidistant=function(){return nr(jc)}).raw=jc,(Zo.geo.conicConformal=function(){return He(yr)}).raw=yr,(Zo.geo.conicEquidistant=function(){return He(xr)}).raw=xr;var Hc=mr(function(n){return 1/n},Math.atan);(Zo.geo.gnomonic=function(){return nr(Hc)}).raw=Hc,Mr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Sa]},(Zo.geo.mercator=function(){return _r(Mr)}).raw=Mr;var Fc=mr(function(){return 1},Math.asin);(Zo.geo.orthographic=function(){return nr(Fc)}).raw=Fc;var Oc=mr(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Zo.geo.stereographic=function(){return nr(Oc)}).raw=Oc,br.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Sa]},(Zo.geo.transverseMercator=function(){var n=_r(br),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=br,Zo.geom={},Zo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=bt(e),i=bt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(Er),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var s=kr(a),l=kr(c),f=l[0]===s[0],h=l[l.length-1]===s[s.length-1],g=[];for(t=s.length-1;t>=0;--t)g.push(n[a[s[t]][2]]);for(t=+f;t<l.length-h;++t)g.push(n[a[l[t]][2]]);return g}var e=wr,r=Sr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},Zo.geom.polygon=function(n){return sa(n,Yc),n};var Yc=Zo.geom.polygon.prototype=[];Yc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Yc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Yc.clip=function(n){for(var t,e,r,u,i,o,a=Nr(n),c=-1,s=this.length-Nr(this),l=this[s-1];++c<s;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Ar(o,l,u)?(Ar(i,l,u)||n.push(Cr(i,o,l,u)),n.push(o)):Ar(i,l,u)&&n.push(Cr(i,o,l,u)),i=o;a&&n.push(n[0]),l=u}return n};var Ic,Zc,Vc,Xc,$c,Bc=[],Wc=[];Ur.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Hr),t.length},Wr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},Jr.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=nu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(Kr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,Qr(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(Qr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,Kr(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?nu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,Kr(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,Qr(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,Kr(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,Qr(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,Kr(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,Qr(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},Zo.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return tu(e(n),a).cells.forEach(function(e,a){var c=e.edges,s=e.site,l=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):s.x>=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/ka)*ka,y:Math.round(o(n,t)/ka)*ka,i:t}})}var r=wr,u=Sr,i=r,o=u,a=Jc;return n?t(n):(t.links=function(n){return tu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return tu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Hr),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c<s;)u=l,i=f,l=a[c].edge,f=l.l===o?l.r:l.l,r<i.i&&r<f.i&&ru(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=bt(r=n),t):r},t.y=function(n){return arguments.length?(o=bt(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?Jc:n,t):a===Jc?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===Jc?null:a&&a[1]},t)};var Jc=[[-1e6,-1e6],[1e6,1e6]];Zo.geom.delaunay=function(n){return Zo.geom.voronoi().triangles(n)},Zo.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,l=n.y;if(null!=c)if(ua(c-e)+ua(l-r)<.01)s(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,s(n,f,c,l,u,i,o,a),s(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else s(n,t,e,r,u,i,o,a)}function s(n,t,e,r,u,o,a,c){var s=.5*(u+a),l=.5*(o+c),f=e>=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=ou()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=bt(a),M=bt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.x<v&&(v=l.x),l.y<d&&(d=l.y),l.x>m&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=ou();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){au(n,k,v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=l=null,k}var o,a=wr,c=Sr;return(o=arguments.length)?(a=uu,c=iu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},Zo.interpolateRgb=cu,Zo.interpolateObject=su,Zo.interpolateNumber=lu,Zo.interpolateString=fu;var Gc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Kc=new RegExp(Gc.source,"g");Zo.interpolate=hu,Zo.interpolators=[function(n,t){var e=typeof t;return("string"===e?Ia.has(t)||/^(#|rgb\(|hsl\()/.test(t)?cu:fu:t instanceof et?cu:Array.isArray(t)?gu:"object"===e&&isNaN(t)?su:lu)(n,t)}],Zo.interpolateArray=gu;var Qc=function(){return wt},ns=Zo.map({linear:Qc,poly:Mu,quad:function(){return mu},cubic:function(){return yu},sin:function(){return _u},exp:function(){return bu},circle:function(){return wu},elastic:Su,back:ku,bounce:function(){return Eu}}),ts=Zo.map({"in":wt,out:vu,"in-out":du,"out-in":function(n){return du(vu(n))}});Zo.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ns.get(e)||Qc,r=ts.get(r)||wt,pu(r(e.apply(null,Vo.call(arguments,1))))},Zo.interpolateHcl=Au,Zo.interpolateHsl=Cu,Zo.interpolateLab=Nu,Zo.interpolateRound=zu,Zo.transform=function(n){var t=$o.createElementNS(Zo.ns.prefix.svg,"g");return(Zo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Lu(e?e.matrix:es)})(n)},Lu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var es={a:1,b:0,c:0,d:1,e:0,f:0};Zo.interpolateTransform=Du,Zo.layout={},Zo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(ju(n[e]));return t}},Zo.layout.chord=function(){function n(){var n,s,f,h,g,p={},v=[],d=Zo.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(s=0,g=-1;++g<i;)s+=u[h][g];v.push(s),m.push(Zo.range(i)),n+=s}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(wa-l*i)/n,s=0,h=-1;++h<i;){for(f=s,g=-1;++g<i;){var y=d[h],x=m[y][g],M=u[y][x],_=s,b=s+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}r[y]={index:y,startAngle:f,endAngle:s,value:(s-f)/n},s+=l}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,s={},l=0;return s.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,s):u},s.padding=function(n){return arguments.length?(l=n,e=r=null,s):l},s.sortGroups=function(n){return arguments.length?(o=n,e=r=null,s):o},s.sortSubgroups=function(n){return arguments.length?(a=n,e=null,s):a},s.sortChords=function(n){return arguments.length?(c=n,e&&t(),s):c},s.chords=function(){return e||n(),e},s.groups=function(){return r||n(),r},s},Zo.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var s=t.charge/c;n.px-=i*s,n.py-=o*s}return!0}if(t.point&&c&&p>c){var s=t.pointCharge/c;n.px-=i*s,n.py-=o*s}}return!t.charge}}function t(n){n.px=Zo.event.x,n.py=Zo.event.y,a.resume()}var e,r,u,i,o,a={},c=Zo.dispatch("start","tick","end"),s=[1,1],l=.9,f=rs,h=us,g=-30,p=is,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=s[0]/2,M=s[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Vu(t=Zo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Zo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++a<s;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,l=y.length,p=s[0],v=s[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Zo.behavior.drag().origin(wt).on("dragstart.force",Ou).on("drag.force",t).on("dragend.force",Yu)),arguments.length?(this.on("mouseover.force",Iu).on("mouseout.force",Zu).call(e),void 0):e},Zo.rebind(a,c,"on")};var rs=20,us=1,is=1/0;Zo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(s=e.call(n,i,i.depth))&&(c=s.length)){for(var c,s,l;--c>=0;)o.push(l=s[c]),l.parent=i,l.depth=i.depth+1;r&&(i.value=0),i.children=s}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Bu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=Gu,e=Wu,r=Ju;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&($u(t,function(n){n.children&&(n.value=0)}),Bu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Zo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++s<o;)n(a=i[s],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=Zo.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Xu(e,r)},Zo.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/Zo.sum(o),s=Zo.range(i.length);null!=e&&s.sort(e===os?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var l=[];return s.forEach(function(n){var t;l[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),l}var t=Number,e=os,r=0,u=wa;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var os={};Zo.layout.stack=function(){function n(a,c){var s=a.map(function(e,r){return t.call(n,e,r)}),l=s.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,l,c);s=Zo.permute(s,f),l=Zo.permute(l,f);var h,g,p,v=r.call(n,l,c),d=s.length,m=s[0].length;for(g=0;m>g;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=wt,e=ei,r=ri,u=ti,i=Qu,o=ni;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:as.get(t)||ei,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:cs.get(t)||ri,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var as=Zo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ui),i=n.map(ii),o=Zo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return Zo.range(n.length).reverse()},"default":ei}),cs=Zo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ri});Zo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=s[i],a>=l[0]&&a<=l[1]&&(o=c[Zo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=si,u=ai;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=bt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return ci(n,t)}:bt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Zo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Bu(a,function(n){n.r=+l(n.value)}),Bu(a,pi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;Bu(a,function(n){n.r+=f}),Bu(a,pi),Bu(a,function(n){n.r-=f})}return mi(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=Zo.layout.hierarchy().sort(li),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Xu(n,e)},Zo.layout.tree=function(){function n(n,u){var l=o.call(this,n,u),f=l[0],h=t(f);if(Bu(h,e),h.parent.m=-h.z,$u(h,r),s)$u(f,i);else{var g=f,p=f,v=f;$u(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);$u(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return l}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){wi(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],s=u.m,l=i.m,f=o.m,h=c.m;o=_i(o),u=Mi(u),o&&u;)c=Mi(c),i=_i(i),i.a=n,r=o.z+f-u.z-s+a(o._,u._),r>0&&(bi(Si(o,n,e),n,r),s+=r,l+=r),f+=o.m,s+=u.m,h+=c.m,l+=i.m;o&&!_i(i)&&(i.t=o,i.m+=f-l),u&&!Mi(c)&&(c.t=u,c.m+=s-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Zo.layout.hierarchy().sort(null).value(null),a=xi,c=[1,1],s=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(s=null==(c=t)?i:null,n):s?null:c},n.nodeSize=function(t){return arguments.length?(s=null==(c=t)?null:i,n):s?c:null},Xu(n,o)},Zo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;Bu(c,function(n){var t=n.children;t&&t.length?(n.x=Ei(t),n.y=ki(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ai(c),f=Ci(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return Bu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Zo.layout.hierarchy().sort(null).value(null),e=xi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Xu(n,t)},Zo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++i<o;)u=n[i],u.x=a,u.y=s,u.dy=l,a+=u.dx=Math.min(e.x+e.dx-a,l?c(u.area/l):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=l,e.dy-=l}else{for((r||l>e.dx)&&(l=e.dx);++i<o;)u=n[i],u.x=a,u.y=s,u.dx=l,s+=u.dy=Math.min(e.y+e.dy-s,l?c(u.area/l):0);u.z=!1,u.dy+=e.y+e.dy-s,e.x+=l,e.dx-=l}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=s[0],i.dy=s[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=Zo.layout.hierarchy(),c=Math.round,s=[1,1],l=null,f=Ni,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(s=n,i):s},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ni(t):zi(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return zi(t,n)}if(!arguments.length)return l;var r;return f=null==(l=n)?Ni:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Xu(i,a)},Zo.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Zo.random.normal.apply(Zo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Zo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Zo.scale={};var ss={floor:wt,ceil:wt};Zo.scale.linear=function(){return Ui([0,1],[0,1],hu,!1)};var ls={s:1,g:1,p:1,r:1,e:1};Zo.scale.log=function(){return Vi(Zo.scale.linear().domain([0,1]),10,!0,[1,10])};var fs=Zo.format(".0e"),hs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Zo.scale.pow=function(){return Xi(Zo.scale.linear(),1,[0,1])},Zo.scale.sqrt=function(){return Zo.scale.pow().exponent(.5)},Zo.scale.ordinal=function(){return Bi([],{t:"range",a:[[]]})},Zo.scale.category10=function(){return Zo.scale.ordinal().range(gs)},Zo.scale.category20=function(){return Zo.scale.ordinal().range(ps)},Zo.scale.category20b=function(){return Zo.scale.ordinal().range(vs)},Zo.scale.category20c=function(){return Zo.scale.ordinal().range(ds)};var gs=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(vt),ps=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(vt),vs=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(vt),ds=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(vt);Zo.scale.quantile=function(){return Wi([],[])},Zo.scale.quantize=function(){return Ji(0,1,[0,1])},Zo.scale.threshold=function(){return Gi([.5],[0,1])},Zo.scale.identity=function(){return Ki([0,1])},Zo.svg={},Zo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ms,a=u.apply(this,arguments)+ms,c=(o>a&&(c=o,o=a,a=c),a-o),s=ba>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);
-return c>=ys?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=Qi,e=no,r=to,u=eo;return n.innerRadius=function(e){return arguments.length?(t=bt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=bt(t),n):e},n.startAngle=function(t){return arguments.length?(r=bt(t),n):r},n.endAngle=function(t){return arguments.length?(u=bt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ms;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ms=-Sa,ys=wa-ka;Zo.svg.line=function(){return ro(wt)};var xs=Zo.map({linear:uo,"linear-closed":io,step:oo,"step-before":ao,"step-after":co,basis:po,"basis-open":vo,"basis-closed":mo,bundle:yo,cardinal:fo,"cardinal-open":so,"cardinal-closed":lo,monotone:So});xs.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Ms=[0,2/3,1/3,0],_s=[0,1/3,2/3,0],bs=[0,1/6,2/3,1/6];Zo.svg.line.radial=function(){var n=ro(ko);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},ao.reverse=co,co.reverse=ao,Zo.svg.area=function(){return Eo(wt)},Zo.svg.area.radial=function(){var n=Eo(ko);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Zo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ms,l=s.call(n,u,r)+ms;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ba)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=gr,o=pr,a=Ao,c=to,s=eo;return n.radius=function(t){return arguments.length?(a=bt(t),n):a},n.source=function(t){return arguments.length?(i=bt(t),n):i},n.target=function(t){return arguments.length?(o=bt(t),n):o},n.startAngle=function(t){return arguments.length?(c=bt(t),n):c},n.endAngle=function(t){return arguments.length?(s=bt(t),n):s},n},Zo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=gr,e=pr,r=Co;return n.source=function(e){return arguments.length?(t=bt(e),n):t},n.target=function(t){return arguments.length?(e=bt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Zo.svg.diagonal.radial=function(){var n=Zo.svg.diagonal(),t=Co,e=n.projection;return n.projection=function(n){return arguments.length?e(No(t=n)):t},n},Zo.svg.symbol=function(){function n(n,r){return(ws.get(t.call(this,n,r))||To)(e.call(this,n,r))}var t=Lo,e=zo;return n.type=function(e){return arguments.length?(t=bt(e),n):t},n.size=function(t){return arguments.length?(e=bt(t),n):e},n};var ws=Zo.map({circle:To,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*As)),e=t*As;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Zo.svg.symbolTypes=ws.keys();var Ss,ks,Es=Math.sqrt(3),As=Math.tan(30*Aa),Cs=[],Ns=0;Cs.call=pa.call,Cs.empty=pa.empty,Cs.node=pa.node,Cs.size=pa.size,Zo.transition=function(n){return arguments.length?Ss?n.transition():n:ma.transition()},Zo.transition.prototype=Cs,Cs.select=function(n){var t,e,r,u=this.id,i=[];n=b(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],s=-1,l=c.length;++s<l;)(r=c[s])&&(e=n.call(r,r.__data__,s,o))?("__data__"in r&&(e.__data__=r.__data__),Po(e,s,u,r.__transition__[u]),t.push(e)):t.push(null)}return qo(i,u)},Cs.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=w(n);for(var c=-1,s=this.length;++c<s;)for(var l=this[c],f=-1,h=l.length;++f<h;)if(r=l[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&Po(u,g,o,i),t.push(u)}return qo(a,o)},Cs.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=R(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return qo(u,this.id)},Cs.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):P(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Cs.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Du:hu,a=Zo.ns.qualify(n);return Ro(this,"attr."+n,t,a.local?i:u)},Cs.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Zo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Cs.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Wo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=hu(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return Ro(this,"style."+n,t,u)},Cs.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Wo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Cs.text=function(n){return Ro(this,"text",n,Do)},Cs.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Cs.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Zo.ease.apply(Zo,arguments)),P(this,function(e){e.__transition__[t].ease=n}))},Cs.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Cs.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Cs.each=function(n,t){var e=this.id;if(arguments.length<2){var r=ks,u=Ss;Ss=e,P(this,function(t,r,u){ks=t.__transition__[e],n.call(t,t.__data__,r,u)}),ks=r,Ss=u}else P(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Zo.dispatch("start","end"))).on(n,t)});return this},Cs.transition=function(){for(var n,t,e,r,u=this.id,i=++Ns,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Po(e,s,i,r)),n.push(e)}return qo(o,i)},Zo.svg.axis=function(){function n(n){n.each(function(){var n,s=Zo.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):wt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",ka),d=Zo.transition(p.exit()).style("opacity",ka).remove(),m=Zo.transition(p.order()).style("opacity",1),y=Ti(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),Zo.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=Uo,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=Uo,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=jo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=jo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f,A=E.rangeBand()/2;l=f=function(n){return E(n)+A}}else l.rangeBand?l=f:d.call(n,f);v.call(n,l),m.call(n,f)})}var t,e=Zo.scale.linear(),r=zs,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Ls?t+"":zs,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var zs="bottom",Ls={top:1,right:1,bottom:1,left:1};Zo.svg.brush=function(){function n(i){i.each(function(){var i=Zo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,wt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Ts[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=Zo.transition(i),h=Zo.transition(o);c&&(l=Ti(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=Ti(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Zo.event.keyCode&&(C||(x=null,z[0]-=l[1],z[1]-=f[1],C=2),y())}function p(){32==Zo.event.keyCode&&2==C&&(z[0]+=l[1],z[1]+=f[1],C=0,y())}function v(){var n=Zo.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(Zo.event.altKey?(x||(x=[(l[0]+l[1])/2,(f[0]+f[1])/2]),z[0]=l[+(n[0]<x[0])],z[1]=f[+(n[1]<x[1])]):x=null),E&&d(n,c,0)&&(e(S),u=!0),A&&d(n,s,1)&&(r(S),u=!0),u&&(t(S),w({type:"brush",mode:C?"move":"resize"}))}function d(n,t,e){var r,u,a=Ti(t),c=a[0],s=a[1],p=z[e],v=e?f:l,d=v[1]-v[0];return C&&(c-=p,s-=d+p),r=(e?g:h)?Math.max(c,Math.min(s,n[e])):n[e],C?u=(r+=p)+d:(x&&(p=Math.max(c,Math.min(s,2*x[e]-r))),r>p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Zo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=Zo.select(Zo.event.target),w=a.of(_,arguments),S=Zo.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=I(),z=Zo.mouse(_),L=Zo.select(Wo).on("keydown.brush",u).on("keyup.brush",p);if(Zo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=l[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);M=[l[1-T]-z[0],f[1-q]-z[1]],z[0]=l[T],z[1]=f[q]}else Zo.event.altKey&&(x=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Zo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=M(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],f=[0,0],h=!0,g=!0,p=qs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Ss?Zo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=gu(l,t.x),r=gu(f,t.y);return i=o=null,function(u){l=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=qs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,p=qs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(h=!!t[0],g=!!t[1]):c?h=!!t:s&&(g=!!t),n):c&&s?[h,g]:c?h:s?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),s&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(h=u,u=a,a=h))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&f[0]==f[1]},Zo.rebind(n,a,"on")};var Ts={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},qs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Rs=Qa.format=ic.timeFormat,Ds=Rs.utc,Ps=Ds("%Y-%m-%dT%H:%M:%S.%LZ");Rs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ho:Ps,Ho.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Ho.toString=Ps.toString,Qa.second=Dt(function(n){return new nc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Qa.seconds=Qa.second.range,Qa.seconds.utc=Qa.second.utc.range,Qa.minute=Dt(function(n){return new nc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Qa.minutes=Qa.minute.range,Qa.minutes.utc=Qa.minute.utc.range,Qa.hour=Dt(function(n){var t=n.getTimezoneOffset()/60;return new nc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Qa.hours=Qa.hour.range,Qa.hours.utc=Qa.hour.utc.range,Qa.month=Dt(function(n){return n=Qa.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Qa.months=Qa.month.range,Qa.months.utc=Qa.month.utc.range;var Us=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],js=[[Qa.second,1],[Qa.second,5],[Qa.second,15],[Qa.second,30],[Qa.minute,1],[Qa.minute,5],[Qa.minute,15],[Qa.minute,30],[Qa.hour,1],[Qa.hour,3],[Qa.hour,6],[Qa.hour,12],[Qa.day,1],[Qa.day,2],[Qa.week,1],[Qa.month,1],[Qa.month,3],[Qa.year,1]],Hs=Rs.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",we]]),Fs={range:function(n,t,e){return Zo.range(Math.ceil(n/e)*e,+t,e).map(Oo)},floor:wt,ceil:wt};js.year=Qa.year,Qa.scale=function(){return Fo(Zo.scale.linear(),js,Hs)};var Os=js.map(function(n){return[n[0].utc,n[1]]}),Ys=Ds.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",we]]);Os.year=Qa.year.utc,Qa.scale.utc=function(){return Fo(Zo.scale.linear(),Os,Ys)},Zo.text=St(function(n){return n.responseText}),Zo.json=function(n,t){return kt(n,"application/json",Yo,t)},Zo.html=function(n,t){return kt(n,"text/html",Io,t)},Zo.xml=St(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Zo):"object"==typeof module&&module.exports&&(module.exports=Zo),this.d3=Zo}();
\ No newline at end of file
+!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null===n?0/0:+n}function e(n){return!isNaN(n)}function r(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function u(n){return n.length}function i(n){for(var t=1;n*t%1;)t*=10;return t}function o(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function a(){this._=Object.create(null)}function c(n){return(n+="")===la||n[0]===sa?sa+n:n}function l(n){return(n+="")[0]===sa?n.slice(1):n}function s(n){return c(n)in this._}function f(n){return(n=c(n))in this._&&delete this._[n]}function h(){var n=[];for(var t in this._)n.push(l(t));return n}function g(){var n=0;for(var t in this._)++n;return n}function p(){for(var n in this._)return!1;return!0}function v(){this._=Object.create(null)}function d(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function m(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=fa.length;r>e;++e){var u=fa[e]+t;if(u in n)return u}}function y(){}function x(){}function M(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new a;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function _(){Bo.event.preventDefault()}function b(){for(var n,t=Bo.event;n=t.sourceEvent;)t=n;return t}function w(n){for(var t=new x,e=0,r=arguments.length;++e<r;)t[arguments[e]]=M(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=Bo.event;u.target=n,Bo.event=u,t[u.type].apply(e,r)}finally{Bo.event=i}}},t}function S(n){return ga(n,ya),n}function k(n){return"function"==typeof n?n:function(){return pa(n,this)}}function E(n){return"function"==typeof n?n:function(){return va(n,this)}}function A(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=Bo.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function C(n){return n.trim().replace(/\s+/g," ")}function N(n){return new RegExp("(?:^|\\s+)"+Bo.requote(n)+"(?:\\s+|$)","g")}function z(n){return(n+"").trim().split(/^|\s+/)}function L(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=z(n).map(T);var u=n.length;return"function"==typeof t?r:e}function T(n){var t=N(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",C(u+" "+n))):e.setAttribute("class",C(u.replace(t," ")))}}function q(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function R(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function D(n){return"function"==typeof n?n:(n=Bo.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function P(n){return{__data__:n}}function U(n){return function(){return ma(this,n)}}function j(t){return arguments.length||(t=n),function(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}}function F(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function H(n){return ga(n,Ma),n}function O(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function Y(){var n=this.__transition__;n&&++n.active}function I(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,Jo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+Bo.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=Z;a>0&&(n=n.slice(0,a));var l=ba.get(n);return l&&(n=l,c=V),a?t?u:r:t?y:i}function Z(n,t){return function(e){var r=Bo.event;Bo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Bo.event=r}}}function V(n,t){var e=Z(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function X(){var n=".dragsuppress-"+ ++Sa,t="click"+n,e=Bo.select(Qo).on("touchmove"+n,_).on("dragstart"+n,_).on("selectstart"+n,_);if(wa){var r=Ko.style,u=r[wa];r[wa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),wa&&(r[wa]=u),i&&(e.on(t,function(){_(),o()},!0),setTimeout(o,0))}}function $(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>ka&&(Qo.scrollX||Qo.scrollY)){e=Bo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();ka=!(u.f||u.e),e.remove()}return ka?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function B(){return Bo.event.changedTouches[0].identifier}function W(){return Bo.event.target}function J(){return Qo}function G(n){return n>0?1:0>n?-1:0}function K(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function Q(n){return n>1?0:-1>n?Ea:Math.acos(n)}function nt(n){return n>1?Ca:-1>n?-Ca:Math.asin(n)}function tt(n){return((n=Math.exp(n))-1/n)/2}function et(n){return((n=Math.exp(n))+1/n)/2}function rt(n){return((n=Math.exp(2*n))-1)/(n+1)}function ut(n){return(n=Math.sin(n/2))*n}function it(){}function ot(n,t,e){return this instanceof ot?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ot?new ot(n.h,n.s,n.l):Mt(""+n,_t,ot):new ot(n,t,e)}function at(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new dt(u(n+120),u(n),u(n-120))}function ct(n,t,e){return this instanceof ct?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof ct?new ct(n.h,n.c,n.l):n instanceof st?ht(n.l,n.a,n.b):ht((n=bt((n=Bo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new ct(n,t,e)}function lt(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new st(e,Math.cos(n*=La)*t,Math.sin(n)*t)}function st(n,t,e){return this instanceof st?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof st?new st(n.l,n.a,n.b):n instanceof ct?lt(n.h,n.c,n.l):bt((n=dt(n)).r,n.g,n.b):new st(n,t,e)}function ft(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=gt(u)*Ya,r=gt(r)*Ia,i=gt(i)*Za,new dt(vt(3.2404542*u-1.5371385*r-.4985314*i),vt(-.969266*u+1.8760108*r+.041556*i),vt(.0556434*u-.2040259*r+1.0572252*i))}function ht(n,t,e){return n>0?new ct(Math.atan2(e,t)*Ta,Math.sqrt(t*t+e*e),n):new ct(0/0,0/0,n)}function gt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function pt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function vt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function dt(n,t,e){return this instanceof dt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof dt?new dt(n.r,n.g,n.b):Mt(""+n,dt,at):new dt(n,t,e)}function mt(n){return new dt(n>>16,255&n>>8,255&n)}function yt(n){return mt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function Mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(St(u[0]),St(u[1]),St(u[2]))}return(i=$a.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new ot(r,u,c)}function bt(n,t,e){n=wt(n),t=wt(t),e=wt(e);var r=pt((.4124564*n+.3575761*t+.1804375*e)/Ya),u=pt((.2126729*n+.7151522*t+.072175*e)/Ia),i=pt((.0193339*n+.119192*t+.9503041*e)/Za);return st(116*u-16,500*(r-u),200*(u-i))}function wt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function St(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function kt(n){return"function"==typeof n?n:function(){return n}}function Et(n){return n}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Ct(t,e,n,r)}}function Ct(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Bo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!Qo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Bo.event;Bo.event=n;try{o.progress.call(i,c)}finally{Bo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Jo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Bo.rebind(i,o,"on"),null==r?i:i.get(Nt(r))}function Nt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function Lt(){var n=Tt(),t=qt()-n;t>24?(isFinite(t)&&(clearTimeout(Ga),Ga=setTimeout(Lt,t)),Ja=0):(Ja=1,Qa(Lt))}function Tt(){var n=Date.now();for(Ka=Ba;Ka;)n>=Ka.t&&(Ka.f=Ka.c(n-Ka.t)),Ka=Ka.n;return n}function qt(){for(var n,t=Ba,e=1/0;t;)t.f?t=n?n.n=t.n:Ba=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Wa=n,e}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Dt(n,t){var e=Math.pow(10,3*ca(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:Et;return function(n){var e=tc.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=ec.get(g)||Ut;var x=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=Bo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var M,_,b=n.lastIndexOf(".");if(0>b){var w=y?n.lastIndexOf("e"):-1;0>w?(M=n,_=""):(M=n.substring(0,w),_=n.substring(w))}else M=n.substring(0,b),_=t+n.substring(b+1);!l&&f&&(M=i(M,1/0));var S=v.length+M.length+_.length+(x?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return x&&(M=i(k+M,k.length?s-_.length:1/0)),u+=v,n=M+_,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(x?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new uc(e-1)),1),e}function i(n,e){return t(n=new uc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{uc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{uc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{uc=jt;var r=new jt;return r._=t,n(r,e)._}finally{uc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(c,a)),null!=(u=oc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=C[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.slice(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&uc!==jt,o=new(i?jt:uc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(0|r.Z/100),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in oc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.slice(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function l(n,t,r){return e(n,C.X.toString(),t,r)}function s(n,t,e){var r=x.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{uc=jt;var t=new uc;return t._=n,r(t)}finally{uc=Date}}var r=t(n);return e.parse=function(n){try{uc=jt;var t=r.parse(n);return t&&t._}finally{uc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var x=Bo.map(),M=It(v),_=Zt(v),b=It(d),w=Zt(d),S=It(m),k=Zt(m),E=It(y),A=Zt(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return Yt(n.getDate(),t,2)},e:function(n,t){return Yt(n.getDate(),t,2)},H:function(n,t){return Yt(n.getHours(),t,2)},I:function(n,t){return Yt(n.getHours()%12||12,t,2)},j:function(n,t){return Yt(1+rc.dayOfYear(n),t,3)},L:function(n,t){return Yt(n.getMilliseconds(),t,3)},m:function(n,t){return Yt(n.getMonth()+1,t,2)},M:function(n,t){return Yt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return Yt(n.getSeconds(),t,2)},U:function(n,t){return Yt(rc.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Yt(rc.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return Yt(n.getFullYear()%100,t,2)},Y:function(n,t){return Yt(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function Yt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function It(n){return new RegExp("^(?:"+n.map(Bo.requote).join("|")+")","i")}function Zt(n){for(var t=new a,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Vt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Xt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function $t(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Bt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Wt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.y=Gt(+r[0]),e+r[0].length):-1}function Jt(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Gt(n){return n+(n>68?1900:2e3)}function Kt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=0|ca(t)/60,u=ca(t)%60;return e+Yt(r,"0",2)+Yt(u,"0",2)}function oe(n,t,e){cc.lastIndex=0;var r=cc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ce(){}function le(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function se(n,t){n&&hc.hasOwnProperty(n.type)&&hc[n.type](n,t)}function fe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function he(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)fe(n[e],t,1);t.polygonEnd()}function ge(){function n(n,t){n*=La,t=t*La/2+Ea/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);pc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;vc.point=function(o,a){vc.point=n,r=(t=o)*La,u=Math.cos(a=(e=a)*La/2+Ea/4),i=Math.sin(a)},vc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function xe(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function Me(n){return[Math.atan2(n[1],n[0]),nt(n[2])]}function _e(n,t){return ca(n[0]-t[0])<Na&&ca(n[1]-t[1])<Na}function be(n,t){n*=La;var e=Math.cos(t*=La);we(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function we(n,t,e){++dc,yc+=(n-yc)/dc,xc+=(t-xc)/dc,Mc+=(e-Mc)/dc}function Se(){function n(n,u){n*=La;var i=Math.cos(u*=La),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);mc+=l,_c+=l*(t+(t=o)),bc+=l*(e+(e=a)),wc+=l*(r+(r=c)),we(t,e,r)}var t,e,r;Ac.point=function(u,i){u*=La;var o=Math.cos(i*=La);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),Ac.point=n,we(t,e,r)}}function ke(){Ac.point=be}function Ee(){function n(n,t){n*=La;var e=Math.cos(t*=La),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-Q(g)/h,v=Math.atan2(h,g);Sc+=p*l,kc+=p*s,Ec+=p*f,mc+=v,_c+=v*(r+(r=o)),bc+=v*(u+(u=a)),wc+=v*(i+(i=c)),we(r,u,i)}var t,e,r,u,i;Ac.point=function(o,a){t=o,e=a,Ac.point=n,o*=La;var c=Math.cos(a*=La);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),we(r,u,i)},Ac.lineEnd=function(){n(t,e),Ac.lineEnd=ke,Ac.point=be}}function Ae(){return!0}function Ce(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(_e(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new ze(e,n,null,!0),l=new ze(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new ze(r,n,null,!1),l=new ze(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),Ne(i),Ne(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function Ne(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function ze(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Le(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function l(){y.point=o,d.lineEnd()}function s(n,t){v.push([n,t]);var e=u(n,t);M.point(e[0],e[1])}function f(){M.lineStart(),v=[]}function h(){s(v[0][0],v[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=Bo.merge(g);var n=je(m,p);g.length?(_||(i.polygonStart(),_=!0),Ce(g,Re,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=qe(),M=t(x),_=!1;return y}}function Te(n){return n.length>1}function qe(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:y,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Re(n,t){return((n=n.x)[0]<0?n[1]-Ca-Na:Ca-n[1])-((t=t.x)[0]<0?t[1]-Ca-Na:Ca-t[1])}function De(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?Ea:-Ea,c=ca(i-e);ca(c-Ea)<Na?(n.point(e,r=(r+o)/2>0?Ca:-Ca),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=Ea&&(ca(e-u)<Na&&(e-=u*Na),ca(i-a)<Na&&(i-=a*Na),r=Pe(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Pe(n,t,e,r){var u,i,o=Math.sin(n-e);return ca(o)>Na?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Ue(n,t,e,r){var u;if(null==n)u=e*Ca,r.point(-Ea,u),r.point(0,u),r.point(Ea,u),r.point(Ea,0),r.point(Ea,-u),r.point(0,-u),r.point(-Ea,-u),r.point(-Ea,0),r.point(-Ea,u);else if(ca(n[0]-t[0])>Na){var i=n[0]<t[0]?Ea:-Ea;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function je(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;pc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+Ea/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+Ea/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>Ea,k=p*x;if(pc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*Aa:_,S^h>=e^m>=e){var E=de(pe(f),pe(n));xe(E);var A=de(u,E);xe(A);var C=(S^_>=0?-1:1)*nt(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-Na>i||Na>i&&0>pc)^1&o}function Fe(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?Ea:-Ea),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(_e(e,g)||_e(p,g))&&(p[0]+=Na,p[1]+=Na,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&_e(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),x=m*m-y*(ve(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=ye(d,(-m-M)/y);if(me(_,p),_=Me(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ca(A-Ea)<Na,N=C||Na>A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ca(_[0]-w)<Na?k:E):k<=_[1]&&_[1]<=E:A>Ea^(w<=_[0]&&_[0]<=S)){var z=ye(d,(-m+M)/y);return me(z,p),[_,Me(z)]}}}function u(t,e){var r=o?n:Ea-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ca(i)>Na,c=gr(n,6*La);return Le(t,e,c,o?[0,-n]:[-Ea,n-Ea])}function He(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Oe(n,t,e,r){function u(r,u){return ca(r[0]-n)<Na?u>0?0:3:ca(r[0]-e)<Na?u>0?2:1:ca(r[1]-t)<Na?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&K(l,i,n)>0&&++t:i[1]<=r&&K(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Nc,Math.min(Nc,n)),t=Math.max(-Nc,Math.min(Nc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=qe(),C=He(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Bo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return N}}function Ye(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function Ie(n){var t=0,e=Ea/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*Ea/180,e=n[1]*Ea/180):[180*(t/Ea),180*(e/Ea)]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,nt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Lc+=u*n-r*t,r=n,u=t}var t,e,r,u;Pc.point=function(i,o){Pc.point=n,t=r=i,e=u=o},Pc.lineEnd=function(){n(t,e)}}function Xe(n,t){Tc>n&&(Tc=n),n>Rc&&(Rc=n),qc>t&&(qc=t),t>Dc&&(Dc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){yc+=n,xc+=t,++Mc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);_c+=o*(t+n)/2,bc+=o*(e+r)/2,wc+=o,We(t=n,e=r)}var t,e;jc.point=function(r,u){jc.point=n,We(t=r,e=u)}}function Ge(){jc.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);_c+=o*(r+n)/2,bc+=o*(u+t)/2,wc+=o,o=u*n-r*t,Sc+=o*(r+n),kc+=o*(u+t),Ec+=3*o,We(r=n,u=t)}var t,e,r,u;jc.point=function(i,o){jc.point=n,We(t=r=i,e=u=o)},jc.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,Aa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:y};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function s(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=l+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ca(ca(w)-1)<Na||ca(r-h)<Na?(r+h)/2:Math.atan2(b,_),A=n(E,k),C=A[0],N=A[1],z=C-t,L=N-e,T=x*z-y*L;
+(T*T/M>i||ca((y*z+x*L)/M-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*La),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Ta,e*Ta])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*La,n[1]*La),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Ta,n[1]*Ta]}function r(){a=Ye(o=lr(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Cc,_=Et,b=null,w=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(M(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Cc):Fe((b=+n)*La),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Oe(n[0][0],n[0][1],n[1][0],n[1][1]):Et,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*La,d=n[1]%360*La,r()):[v*Ta,d*Ta]},t.rotate=function(n){return arguments.length?(m=n[0]%360*La,y=n[1]%360*La,x=n.length>2?n[2]%360*La:0,r()):[m*Ta,y*Ta,x*Ta]},Bo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*La,e*La)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>Ea?n-Aa:-Ea>n?n+Aa:n,t]}function lr(n,t,e){return n?t||e?Ye(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>Ea?t-Aa:-Ea>t?t+Aa:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),nt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),nt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*Aa)):(u=n+o*Aa,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=Me([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,xe(e);var r=Q(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Na)%(2*Math.PI)}function vr(n,t,e){var r=Bo.range(n,t-Na,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=Bo.range(n,t-Na,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function xr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(ut(r-t)+u*o*ut(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ta,Math.atan2(o,Math.sqrt(r*r+u*u))*Ta]}:function(){return[n*Ta,t*Ta]};return p.distance=h,p}function Mr(){function n(n,u){var i=Math.sin(u*=La),o=Math.cos(u),a=ca((n*=La)-t),c=Math.cos(a);Fc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Hc.point=function(u,i){t=u*La,e=Math.sin(i*=La),r=Math.cos(i),Hc.point=n},Hc.lineEnd=function(){Hc.point=Hc.lineEnd=y}}function _r(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function br(n,t){function e(n,t){o>0?-Ca+Na>t&&(t=-Ca+Na):t>Ca-Na&&(t=Ca-Na);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(Ea/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=G(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ca]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ca(u)<Na?ar:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-G(u)*Math.sqrt(n*n+e*e)]},e)}function Sr(n,t){return[n,Math.log(Math.tan(Ea/4+t/2))]}function kr(n){var t,e=ur(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=Ea*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Er(n,t){return[Math.log(Math.tan(Ea/4+t/2)),-n]}function Ar(n){return n[0]}function Cr(n){return n[1]}function Nr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&K(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function Lr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Tr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function qr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=Kc.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Wc.remove(n),Kc.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ca(e-c.circle.x)<Na&&ca(r-c.circle.cy)<Na;)i=c.P,a.unshift(c),Pr(c),c=i;a.unshift(c),Xr(c);for(var l=o;l.circle&&ca(e-l.circle.x)<Na&&ca(r-l.circle.cy)<Na;)o=l.N,a.push(l),Pr(l),l=o;a.push(l),Xr(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Wc._;a;)if(r=Fr(a,o)-i,r>Na)a=a.L;else{if(u=i-Hr(a,o),!(u>Na)){r>-Na?(t=a.P,e=a):u>-Na?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Wc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Wc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),Vr(e),void 0;if(!e)return c.edge=Jr(t.site,c.site),void 0;Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+s,y:(h*x-v*y)/m+f};Kr(e.edge,l,p,M),c.edge=Jr(l,n,null,M),e.edge=Jr(n,p,null,M),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Yr(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Bc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ca(r-t)>Na||ca(u-e)>Na)&&(a.splice(o,0,new Qr(Gr(i.site,s,ca(r-f)<Na&&p-u>Na?{x:f,y:ca(t-f)<Na?e:p}:ca(u-p)<Na&&h-r>Na?{x:ca(e-p)<Na?t:h,y:p}:ca(r-h)<Na&&u-g>Na?{x:h,y:ca(t-h)<Na?e:g}:ca(u-g)<Na&&r-f>Na?{x:ca(e-g)<Na?t:f,y:g}:null),i.site,null)),++c)}function Ir(n,t){return t.angle-n.angle}function Zr(){tu(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,l=r.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=Qc.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=Gc._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}Gc.insert(y,m),y||(Jc=m)}}}}function Xr(n){var t=n.circle;t&&(t.P||(Jc=t.N),Gc.remove(t),Qc.push(t),tu(t),n.circle=null)}function $r(n){for(var t,e=$c,r=He(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Br(t,n)||!r(t)||ca(t.a.x-t.b.x)<Na&&ca(t.a.y-t.b.y)<Na)&&(t.a=t.b=null,e.splice(u,1))}function Br(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.y<c)return}else i={x:d,y:l};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.y<c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Wr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Jr(n,t,e,r){var u=new Wr(n,t);return $c.push(u),e&&Kr(u,n,t,e),r&&Kr(u,t,n,r),Bc[n.i].edges.push(new Qr(u,n,t)),Bc[t.i].edges.push(new Qr(u,t,n)),u}function Gr(n,t,e){var r=new Wr(n,null);return r.a=t,r.b=e,$c.push(r),r}function Kr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Qr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function nu(){this._=null}function tu(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ru(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function uu(n){for(;n.L;)n=n.L;return n}function iu(n,t){var e,r,u,i=n.sort(ou).pop();for($c=[],Bc=new Array(n.length),Wc=new nu,Gc=new nu;;)if(u=Jc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Bc[i.i]=new Or(i),jr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Ur(u.arc)}t&&($r(t),Yr(t));var o={cells:Bc,edges:$c};return Wc=Gc=$c=Bc=null,o}function ou(n,t){return t.y-n.y||t.x-n.x}function au(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function cu(n){return n.x}function lu(n){return n.y}function su(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function fu(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&fu(n,c[0],e,r,o,a),c[1]&&fu(n,c[1],o,r,u,a),c[2]&&fu(n,c[2],e,a,o,i),c[3]&&fu(n,c[3],o,a,u,i)}}function hu(n,t){n=Bo.rgb(n),t=Bo.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function gu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=du(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function pu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function vu(n,t){var e,r,u,i=tl.lastIndex=el.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=tl.exec(n))&&(r=el.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:pu(e,r)})),i=el.lastIndex;return i<t.length&&(u=t.slice(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function du(n,t){for(var e,r=Bo.interpolators.length;--r>=0&&!(e=Bo.interpolators[r](n,t)););return e}function mu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(du(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function yu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function Mu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function bu(n){return n*n*n}function wu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Su(n){return function(t){return Math.pow(t,n)}}function ku(n){return 1-Math.cos(n*Ca)}function Eu(n){return Math.pow(2,10*(n-1))}function Au(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Aa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Aa/t)}}function Nu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function zu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=Bo.hcl(n),t=Bo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return lt(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=Bo.hsl(n),t=Bo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return at(e+i*n,r+o*n,u+a*n)+""}}function qu(n,t){n=Bo.lab(n),t=Bo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ft(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Du(n){var t=[n.a,n.b],e=[n.c,n.d],r=Uu(t),u=Pu(t,e),i=Uu(ju(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Ta,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Ta:0}function Pu(n,t){return n[0]*t[0]+n[1]*t[1]}function Uu(n){var t=Math.sqrt(Pu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function ju(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Fu(n,t){var e,r=[],u=[],i=Bo.transform(n),o=Bo.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:pu(a[0],c[0])},{i:3,x:pu(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:pu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:pu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:pu(g[0],p[0])},{i:e-2,x:pu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Hu(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Ou(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Yu(n){for(var t=n.source,e=n.target,r=Zu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Iu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Zu(n,t){if(n===t)return n;for(var e=Iu(n),r=Iu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Vu(n){n.fixed|=2}function Xu(n){n.fixed&=-7}function $u(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Bu(n){n.fixed&=-5}function Wu(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Wu(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Ju(n,t){return Bo.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ei,n}function Gu(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Ku(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function Qu(n){return n.children}function ni(n){return n.value}function ti(n,t){return t.value-n.value}function ei(n){return Bo.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ri(n){return n.x}function ui(n){return n.y}function ii(n,t,e){n.y0=t,n.y=e}function oi(n){return Bo.range(n.length)}function ai(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function ci(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function li(n){return n.reduce(si,0)}function si(n,t){return n+t[1]}function fi(n,t){return hi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function hi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function gi(n){return[Bo.min(n),Bo.max(n)]}function pi(n,t){return n.value-t.value}function vi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function di(n,t){n._pack_next=t,t._pack_prev=n}function mi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function yi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],bi(r,u,i),t(i),vi(r,i),r._pack_prev=i,vi(i,u),u=r._pack_next,o=3;l>o;o++){bi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(mi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!mi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?di(r,u=a):di(r=c,u),o--):(vi(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,x=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(Mi)}}function xi(n){n._pack_next=n._pack_prev=n}function Mi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)_i(u[i],t,e,r)}function bi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function wi(n,t){return n.parent==t.parent?1:2}function Si(n){var t=n.children;return t.length?t[0]:n.t}function ki(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ei(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Ai(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function Ni(n){return 1+Bo.max(n,function(n){return n.y})}function zi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function qi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ri(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Di(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Pi(n){return n.rangeExtent?n.rangeExtent():Di(n.range())}function Ui(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function ji(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Fi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:gl}function Hi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=Bo.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Oi(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Hi:Ui,c=r?Ou:Hu;return o=u(n,t,c,e),a=u(t,n,c,du),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Ru)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Vi(n,t)},i.tickFormat=function(t,e){return Xi(n,t,e)},i.nice=function(t){return Ii(n,t),u()},i.copy=function(){return Oi(n,t,e,r)},u()}function Yi(n,t){return Bo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Ii(n,t){return ji(n,Fi(Zi(n,t)[2]))}function Zi(n,t){null==t&&(t=10);var e=Di(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Vi(n,t){return Bo.range.apply(Bo,Zi(n,t))}function Xi(n,t,e){var r=Zi(n,t);if(e){var u=tc.exec(e);if(u.shift(),"s"===u[8]){var i=Bo.formatPrefix(Math.max(ca(r[0]),ca(r[1])));return u[7]||(u[7]="."+$i(i.scale(r[2]))),u[8]="f",e=Bo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Bi(u[8],r)),e=u.join("")}else e=",."+$i(r[2])+"f";return Bo.format(e)}function $i(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Bi(n,t){var e=$i(t[2]);return n in pl?Math.abs(e-$i(Math.max(ca(t[0]),ca(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Wi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=ji(r.map(u),e?Math:dl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Di(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return vl;arguments.length<2?t=vl:"function"!=typeof t&&(t=Bo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Wi(n.copy(),t,e,r)},Yi(o,n)}function Ji(n,t,e){function r(t){return n(u(t))}var u=Gi(t),i=Gi(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Vi(e,n)},r.tickFormat=function(n,t){return Xi(e,n,t)},r.nice=function(n){return r.domain(Ii(e,n))},r.exponent=function(o){return arguments.length?(u=Gi(t=o),i=Gi(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Ji(n.copy(),t,e)},Yi(r,n)}function Gi(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Ki(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Bo.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new a;for(var i,o=-1,c=r.length;++o<c;)u.has(i=r[o])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=(l-c)/(Math.max(1,n.length-1)+a);return i=r(n.length<2?(c+l)/2:c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=r(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c)),g=f-s-(n.length-a)*h;return i=r(s+Math.round(g/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Di(t.a[0])},e.copy=function(){return Ki(n,t)},e.domain(n)}function Qi(r,u){function i(){var n=0,t=u.length;for(a=[];++n<t;)a[n-1]=Bo.quantile(r,n/t);return o}function o(n){return isNaN(n=+n)?void 0:u[Bo.bisect(a,n)]}var a;return o.domain=function(u){return arguments.length?(r=u.map(t).filter(e).sort(n),i()):r},o.range=function(n){return arguments.length?(u=n,i()):u},o.quantiles=function(){return a},o.invertExtent=function(n){return n=u.indexOf(n),0>n?[0/0,0/0]:[n>0?a[n-1]:r[0],n<a.length?a[n]:r[r.length-1]]},o.copy=function(){return Qi(r,u)},i()}function no(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return no(n,t,e)},u()}function to(n,t){function e(e){return e>=e?t[Bo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return to(n,t)},e}function eo(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Vi(n,t)},t.tickFormat=function(t,e){return Xi(n,t,e)},t.copy=function(){return eo(n)},t}function ro(n){return n.innerRadius}function uo(n){return n.outerRadius}function io(n){return n.startAngle}function oo(n){return n.endAngle}function ao(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=kt(e),p=kt(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ar,r=Cr,u=Ae,i=co,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=wl.get(n)||co).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function co(n){return n.join("L")}function lo(n){return co(n)+"Z"}function so(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function fo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function ho(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function go(n,t){return n.length<4?co(n):n[1]+mo(n.slice(1,n.length-1),yo(n,t))}function po(n,t){return n.length<3?co(n):n[0]+mo((n.push(n[0]),n),yo([n[n.length-2]].concat(n,[n[1]]),t))}function vo(n,t){return n.length<3?co(n):n[0]+mo(n,yo(n,t))}function mo(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return co(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function yo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function xo(n){if(n.length<3)return co(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",wo(El,o),",",wo(El,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),So(c,o,a);return n.pop(),c.push("L",r),c.join("")}function Mo(n){if(n.length<4)return co(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(wo(El,i)+","+wo(El,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),So(e,i,o);return e.join("")}function _o(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[wo(El,o),",",wo(El,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),So(t,o,a);return t.join("")}function bo(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return xo(n)}function wo(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function So(n,t,e){n.push("C",wo(Sl,t),",",wo(Sl,e),",",wo(kl,t),",",wo(kl,e),",",wo(El,t),",",wo(El,e))}function ko(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Eo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=ko(u,i);++t<e;)r[t]=(o+(o=ko(u=i,i=n[t+1])))/2;return r[t]=o,r}function Ao(n){for(var t,e,r,u,i=[],o=Eo(n),a=-1,c=n.length-1;++a<c;)t=ko(n[a],n[a+1]),ca(t)<Na?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function Co(n){return n.length<3?co(n):n[0]+mo(n,Ao(n))}function No(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+_l,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function zo(n){function t(t){function c(){v.push("M",a(n(m),f),s,l(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,x=t.length,M=kt(e),_=kt(u),b=e===r?function(){return g}:kt(r),w=u===i?function(){return p}:kt(i);++y<x;)o.call(this,h=t[y],y)?(d.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ar,r=Ar,u=0,i=Cr,o=Ae,a=co,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=wl.get(n)||co).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Lo(n){return n.radius}function To(n){return[n.x,n.y]}function qo(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+_l;return[e*Math.cos(r),e*Math.sin(r)]}}function Ro(){return 64}function Do(){return"circle"}function Po(n){var t=Math.sqrt(n/Ea);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Uo(n,t){return ga(n,Tl),n.id=t,n}function jo(n,t,e,r){var u=n.id;return F(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function Fo(n){return null==n&&(n=""),function(){this.textContent=n}}function Ho(n,t,e,r){var u=n.__transition__||(n.__transition__={active:0,count:0}),i=u[e];if(!i){var o=r.time;i=u[e]={tween:new a,time:o,ease:r.ease,delay:r.delay,duration:r.duration},++u.count,Bo.timer(function(r){function a(r){return u.active>e?l():(u.active=e,i.event&&i.event.start.call(n,s,t),i.tween.forEach(function(e,r){(r=r.call(n,s,t))&&v.push(r)
+}),Bo.timer(function(){return p.c=c(r||1)?Ae:c,1},0,o),void 0)}function c(r){if(u.active!==e)return l();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a);return o>=1?(i.event&&i.event.end.call(n,s,t),l()):void 0}function l(){return--u.count?delete u[e]:delete n.__transition__,1}var s=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ka,v=[];return p.t=h+o,r>=h?a(r-h):(p.c=a,void 0)},0,o)}}function Oo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Yo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Io(n){return n.toISOString()}function Zo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Bo.bisect(Ol,u);return i==Ol.length?[t.year,Zi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Ol[i-1]<Ol[i]/u?i-1:i]:[Zl,Zi(n,e)[2]]}return r.invert=function(t){return Vo(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Vo)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Vo(+e+1),t).length}var i=r.domain(),o=Di(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(ji(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Vo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Vo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Di(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Vo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Zo(n.copy(),t,e)},Yi(r,n)}function Vo(n){return new Date(n)}function Xo(n){return JSON.parse(n.responseText)}function $o(n){var t=Go.createRange();return t.selectNode(Go.body),t.createContextualFragment(n.responseText)}var Bo={version:"3.4.13"};Date.now||(Date.now=function(){return+new Date});var Wo=[].slice,Jo=function(n){return Wo.call(n)},Go=document,Ko=Go.documentElement,Qo=window;try{Jo(Ko.childNodes)[0].nodeType}catch(na){Jo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{Go.createElement("div").style.setProperty("opacity",0,"")}catch(ta){var ea=Qo.Element.prototype,ra=ea.setAttribute,ua=ea.setAttributeNS,ia=Qo.CSSStyleDeclaration.prototype,oa=ia.setProperty;ea.setAttribute=function(n,t){ra.call(this,n,t+"")},ea.setAttributeNS=function(n,t,e){ua.call(this,n,t,e+"")},ia.setProperty=function(n,t,e){oa.call(this,n,t+"",e)}}Bo.ascending=n,Bo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Bo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},Bo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},Bo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},Bo.sum=function(n,t){var r,u=0,i=n.length,o=-1;if(1===arguments.length)for(;++o<i;)e(r=+n[o])&&(u+=r);else for(;++o<i;)e(r=+t.call(n,n[o],o))&&(u+=r);return u},Bo.mean=function(n,r){var u,i=0,o=n.length,a=-1,c=o;if(1===arguments.length)for(;++a<o;)e(u=t(n[a]))?i+=u:--c;else for(;++a<o;)e(u=t(r.call(n,n[a],a)))?i+=u:--c;return c?i/c:void 0},Bo.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},Bo.median=function(r,u){var i,o=[],a=r.length,c=-1;if(1===arguments.length)for(;++c<a;)e(i=t(r[c]))&&o.push(i);else for(;++c<a;)e(i=t(u.call(r,r[c],c)))&&o.push(i);return o.length?Bo.quantile(o.sort(n),.5):void 0};var aa=r(n);Bo.bisectLeft=aa.left,Bo.bisect=Bo.bisectRight=aa.right,Bo.bisector=function(t){return r(1===t.length?function(e,r){return n(t(e),r)}:t)},Bo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Bo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Bo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Bo.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=Bo.min(arguments,u),e=new Array(t);++n<t;)for(var r,i=-1,o=e[n]=new Array(r);++i<r;)o[i]=arguments[i][n];return e},Bo.transpose=function(n){return Bo.zip.apply(Bo,n)},Bo.keys=function(n){var t=[];for(var e in n)t.push(e);return t},Bo.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},Bo.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},Bo.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ca=Math.abs;Bo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,u=[],o=i(ca(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)u.push(r/o);else for(;(r=n+e*++a)<t;)u.push(r/o);return u},Bo.map=function(n){var t=new a;if(n instanceof a)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t};var la="__proto__",sa="\x00";o(a,{has:s,get:function(n){return this._[c(n)]},set:function(n,t){return this._[c(n)]=t},remove:f,keys:h,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:l(t),value:this._[t]});return n},size:g,empty:p,forEach:function(n){for(var t in this._)n.call(this,l(t),this._[t])}}),Bo.nest=function(){function n(t,o,c){if(c>=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var l,s,f,h,g=-1,p=o.length,v=i[c++],d=new a;++g<p;)(h=d.get(l=v(s=o[g])))?h.push(s):d.set(l,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,c))}):(s={},f=function(e,r){s[e]=n(t,r,c)}),d.forEach(f),s}function t(n,e){if(e>=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Bo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Bo.set=function(n){var t=new v;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},o(v,{has:s,add:function(n){return this._[c(n+="")]=!0,n},remove:f,values:h,size:g,empty:p,forEach:function(n){for(var t in this._)n.call(this,l(t))}}),Bo.behavior={},Bo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=d(n,t,t[e]);return n};var fa=["webkit","ms","moz","Moz","o","O"];Bo.dispatch=function(){for(var n=new x,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=M(n);return n},x.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Bo.event=null,Bo.requote=function(n){return n.replace(ha,"\\$&")};var ha=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ga={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},pa=function(n,t){return t.querySelector(n)},va=function(n,t){return t.querySelectorAll(n)},da=Ko.matches||Ko[m(Ko,"matchesSelector")],ma=function(n,t){return da.call(n,t)};"function"==typeof Sizzle&&(pa=function(n,t){return Sizzle(n,t)[0]||null},va=Sizzle,ma=Sizzle.matchesSelector),Bo.selection=function(){return _a};var ya=Bo.selection.prototype=[];ya.select=function(n){var t,e,r,u,i=[];n=k(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return S(i)},ya.selectAll=function(n){var t,e,r=[];n=E(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=Jo(n.call(e,e.__data__,a,u))),t.parentNode=e);return S(r)};var xa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Bo.ns={prefix:xa,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.slice(0,t),n=n.slice(t+1)),xa.hasOwnProperty(e)?{space:xa[e],local:n}:n}},ya.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Bo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(A(t,n[t]));return this}return this.each(A(n,t))},ya.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=z(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!N(n[u]).test(t))return!1;return!0}for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},ya.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(q(e,n[e],t));return this}if(2>r)return Qo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(q(n,t,e))},ya.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},ya.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},ya.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},ya.append=function(n){return n=D(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},ya.insert=function(n,t){return n=D(n),t=k(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},ya.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},ya.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new a,y=new Array(o);for(r=-1;++r<o;)m.has(d=t.call(u=n[r],u.__data__,r))?v[r]=u:m.set(d,u),y[r]=d;for(r=-1;++r<f;)(u=m.get(d=t.call(e,i=e[r],r)))?u!==!0&&(g[r]=u,u.__data__=i):p[r]=P(i),m.set(d,!0);for(r=-1;++r<o;)m.get(y[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=P(i);for(;f>r;++r)p[r]=P(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),l.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++i<o;)(u=r[i])&&(n[i]=u.__data__);return n}var c=H([]),l=S([]),s=S([]);if("function"==typeof n)for(;++i<o;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<o;)e(r=this[i],n);return l.enter=function(){return c},l.exit=function(){return s},l},ya.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},ya.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=U(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return S(u)},ya.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},ya.sort=function(n){n=j.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},ya.each=function(n){return F(this,function(t,e,r){n.call(t,t.__data__,e,r)})},ya.call=function(n){var t=Jo(arguments);return n.apply(t[0]=this,t),this},ya.empty=function(){return!this.node()},ya.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},ya.size=function(){var n=0;return F(this,function(){++n}),n};var Ma=[];Bo.selection.enter=H,Bo.selection.enter.prototype=Ma,Ma.append=ya.append,Ma.empty=ya.empty,Ma.node=ya.node,Ma.call=ya.call,Ma.size=ya.size,Ma.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return S(o)},Ma.insert=function(n,t){return arguments.length<2&&(t=O(this)),ya.insert.call(this,n,t)},ya.transition=function(){for(var n,t,e=Cl||++ql,r=[],u=Nl||{time:Date.now(),ease:wu,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,l=a.length;++c<l;)(t=a[c])&&Ho(t,c,e,u),n.push(t)}return Uo(r,e)},ya.interrupt=function(){return this.each(Y)},Bo.select=function(n){var t=["string"==typeof n?pa(n,Go):n];return t.parentNode=Ko,S([t])},Bo.selectAll=function(n){var t=Jo("string"==typeof n?va(n,Go):n);return t.parentNode=Ko,S([t])};var _a=Bo.select(Ko);ya.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(I(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(I(n,t,e))};var ba=Bo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ba.forEach(function(n){"on"+n in Go&&ba.remove(n)});var wa="onselectstart"in Go?null:m(Ko.style,"userSelect"),Sa=0;Bo.mouse=function(n){return $(n,b())};var ka=/WebKit/.test(Qo.navigator.userAgent)?-1:0;Bo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=b().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return $(n,r)},Bo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Bo.event.target===f),g({type:"dragend"}))}var l,s=this,f=Bo.event.target,h=s.parentNode,g=e.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Bo.select(u()).on(i+d,a).on(o+d,c),y=X(),x=t(h,v);r?(l=r.apply(s,arguments),l=[l.x-x[0],l.y-x[1]]):l=[0,0],g({type:"dragstart"})}}var e=w(n,"drag","dragstart","dragend"),r=null,u=t(y,Bo.mouse,J,"mousemove","mouseup"),i=t(B,Bo.touch,W,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Bo.rebind(n,e,"on")},Bo.touches=function(n,t){return arguments.length<2&&(t=b().touches),t?Jo(t).map(function(t){var e=$(n,t);return e.identifier=t.identifier,e}):[]};var Ea=Math.PI,Aa=2*Ea,Ca=Ea/2,Na=1e-6,za=Na*Na,La=Ea/180,Ta=180/Ea,qa=Math.SQRT2,Ra=2,Da=4;Bo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=et(v),o=i/(Ra*h)*(e*rt(qa*t+v)-tt(v));return[r+o*l,u+o*s,i*e/et(qa*t+v)]}return[r+n*l,u+n*s,i*Math.exp(qa*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Da*f)/(2*i*Ra*h),p=(c*c-i*i-Da*f)/(2*c*Ra*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/qa;return e.duration=1e3*y,e},Bo.behavior.zoom=function(){function n(n){n.on(A,l).on(ja+".zoom",f).on("dblclick.zoom",h).on(z,s)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){x&&x.domain(y.range().map(function(n){return(n-S.x)/S.k}).map(y.invert)),b&&b.domain(M.range().map(function(n){return(n-S.y)/S.k}).map(M.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function l(){function n(){s=1,u(Bo.mouse(r),h),a(l)}function e(){f.on(C,null).on(N,null),g(s&&Bo.event.target===i),c(l)}var r=this,i=Bo.event.target,l=L.of(r,arguments),s=0,f=Bo.select(Qo).on(C,n).on(N,e),h=t(Bo.mouse(r)),g=X();Y.call(r),o(l)}function s(){function n(){var n=Bo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Bo.event.target;Bo.select(t).on(x,i).on(M,f),b.push(t);for(var e=Bo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var l=n(),s=Date.now();if(1===l.length){if(500>s-m){var h=l[0],g=v[h.identifier];r(2*S.k),u(h,g),_(),a(p)}m=s}else if(l.length>1){var h=l[0],y=l[1],w=h[0]-y[0],k=h[1]-y[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Bo.touches(g),c=0,l=o.length;l>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=d&&Math.sqrt(s/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Bo.event.touches.length){for(var t=Bo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Bo.selectAll(b).on(y,null),w.on(A,l).on(z,s),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,y=".zoom-"+Bo.event.changedTouches[0].identifier,x="touchmove"+y,M="touchend"+y,b=[],w=Bo.select(g),k=X();Y.call(g),e(),o(p),w.on(A,null).on(z,e)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Bo.mouse(this)),Y.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),_(),r(Math.pow(2,.002*Pa())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Bo.mouse(this),i=t(e),l=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Bo.event.shiftKey?Math.ceil(l)-1:Math.floor(l)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,y,x,M,b,S={x:0,y:0,k:1},k=[960,500],E=Ua,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=w(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Cl?Bo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Bo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?Ua:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(x=t,y=t.copy(),S={x:0,y:0,k:1},n):x},n.y=function(t){return arguments.length?(b=t,M=t.copy(),S={x:0,y:0,k:1},n):b},Bo.rebind(n,L,"on")};var Pa,Ua=[0,1/0],ja="onwheel"in Go?(Pa=function(){return-Bo.event.deltaY*(Bo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Go?(Pa=function(){return Bo.event.wheelDelta},"mousewheel"):(Pa=function(){return-Bo.event.detail},"MozMousePixelScroll");Bo.color=it,it.prototype.toString=function(){return this.rgb()+""},Bo.hsl=ot;var Fa=ot.prototype=new it;Fa.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ot(this.h,this.s,this.l/n)},Fa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ot(this.h,this.s,n*this.l)},Fa.rgb=function(){return at(this.h,this.s,this.l)},Bo.hcl=ct;var Ha=ct.prototype=new it;Ha.brighter=function(n){return new ct(this.h,this.c,Math.min(100,this.l+Oa*(arguments.length?n:1)))},Ha.darker=function(n){return new ct(this.h,this.c,Math.max(0,this.l-Oa*(arguments.length?n:1)))},Ha.rgb=function(){return lt(this.h,this.c,this.l).rgb()},Bo.lab=st;var Oa=18,Ya=.95047,Ia=1,Za=1.08883,Va=st.prototype=new it;Va.brighter=function(n){return new st(Math.min(100,this.l+Oa*(arguments.length?n:1)),this.a,this.b)},Va.darker=function(n){return new st(Math.max(0,this.l-Oa*(arguments.length?n:1)),this.a,this.b)},Va.rgb=function(){return ft(this.l,this.a,this.b)},Bo.rgb=dt;var Xa=dt.prototype=new it;Xa.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new dt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new dt(u,u,u)},Xa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new dt(n*this.r,n*this.g,n*this.b)},Xa.hsl=function(){return _t(this.r,this.g,this.b)},Xa.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var $a=Bo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});$a.forEach(function(n,t){$a.set(n,mt(t))}),Bo.functor=kt,Bo.xhr=At(Et),Bo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Ct(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<l;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;l>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new v,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Bo.csv=Bo.dsv(",","text/csv"),Bo.tsv=Bo.dsv("	","text/tab-separated-values");var Ba,Wa,Ja,Ga,Ka,Qa=Qo[m(Qo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Bo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Wa?Wa.n=i:Ba=i,Wa=i,Ja||(Ga=clearTimeout(Ga),Ja=1,Qa(Lt))},Bo.timer.flush=function(){Tt(),qt()},Bo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var nc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);Bo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Bo.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),nc[8+e/3]};var tc=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ec=Bo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Bo.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),rc=Bo.time={},uc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){ic.setUTCDate.apply(this._,arguments)},setDay:function(){ic.setUTCDay.apply(this._,arguments)},setFullYear:function(){ic.setUTCFullYear.apply(this._,arguments)},setHours:function(){ic.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){ic.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){ic.setUTCMinutes.apply(this._,arguments)},setMonth:function(){ic.setUTCMonth.apply(this._,arguments)},setSeconds:function(){ic.setUTCSeconds.apply(this._,arguments)},setTime:function(){ic.setTime.apply(this._,arguments)}};var ic=Date.prototype;rc.year=Ft(function(n){return n=rc.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),rc.years=rc.year.range,rc.years.utc=rc.year.utc.range,rc.day=Ft(function(n){var t=new uc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),rc.days=rc.day.range,rc.days.utc=rc.day.utc.range,rc.dayOfYear=function(n){var t=rc.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=rc[n]=Ft(function(n){return(n=rc.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});rc[n+"s"]=e.range,rc[n+"s"].utc=e.utc.range,rc[n+"OfYear"]=function(n){var e=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(e+t)%7)/7)}}),rc.week=rc.sunday,rc.weeks=rc.sunday.range,rc.weeks.utc=rc.sunday.utc.range,rc.weekOfYear=rc.sundayOfYear;var oc={"-":"",_:" ",0:"0"},ac=/^\s*\d+/,cc=/^%/;Bo.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var lc=Bo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Bo.format=lc.numberFormat,Bo.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,sc),le(sc.s,this.s,this),this.s?this.t+=sc.t:this.s=sc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var sc=new ce;Bo.geo.stream=function(n,t){n&&fc.hasOwnProperty(n.type)?fc[n.type](n,t):se(n,t)};var fc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)se(e[r].geometry,t)}},hc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){fe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)fe(e[r],t,0)},Polygon:function(n,t){he(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)he(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)se(e[r],t)}};Bo.geo.area=function(n){return gc=0,Bo.geo.stream(n,vc),gc};var gc,pc=new ce,vc={sphere:function(){gc+=4*Ea},point:y,lineStart:y,lineEnd:y,polygonStart:function(){pc.reset(),vc.lineStart=ge},polygonEnd:function(){var n=2*pc;gc+=0>n?4*Ea+n:n,vc.lineStart=vc.lineEnd=vc.point=y}};Bo.geo.bounds=function(){function n(n,t){x.push(M=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*La,e*La]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);xe(o),o=Me(o);var c=t-p,l=c>0?1:-1,v=o[0]*Ta*l,d=ca(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Ta;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Ta;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=s,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ca(r)>180?r+(r>0?360:-360):r}else v=n,d=e;vc.point(n,e),t(n,e)}function i(){vc.lineStart()}function o(){u(v,d),vc.lineEnd(),ca(y)>Na&&(s=-(h=180)),M[0]=s,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,v,d,m,y,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,vc.polygonStart()},polygonEnd:function(){vc.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,0>pc?(s=-(h=180),f=-(g=90)):y>Na?g=90:-Na>y&&(f=-90),M[0]=s,M[1]=h}};return function(n){g=h=-(s=f=1/0),x=[],Bo.geo.stream(n,_);
+var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return x=M=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),Bo.geo.centroid=function(n){dc=mc=yc=xc=Mc=_c=bc=wc=Sc=kc=Ec=0,Bo.geo.stream(n,Ac);var t=Sc,e=kc,r=Ec,u=t*t+e*e+r*r;return za>u&&(t=_c,e=bc,r=wc,Na>mc&&(t=yc,e=xc,r=Mc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Ta,nt(r/Math.sqrt(u))*Ta]};var dc,mc,yc,xc,Mc,_c,bc,wc,Sc,kc,Ec,Ac={sphere:y,point:be,lineStart:Se,lineEnd:ke,polygonStart:function(){Ac.lineStart=Ee},polygonEnd:function(){Ac.lineStart=Se}},Cc=Le(Ae,De,Ue,[-Ea,-Ea/2]),Nc=1e9;Bo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Oe(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Bo.geo.conicEqualArea=function(){return Ie(Ze)}).raw=Ze,Bo.geo.albers=function(){return Bo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Bo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Bo.geo.albers(),o=Bo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Bo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Na,f+.12*l+Na],[s-.214*l-Na,f+.234*l-Na]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Na,f+.166*l+Na],[s-.115*l-Na,f+.234*l-Na]]).stream(c).point,n},n.scale(1070)};var zc,Lc,Tc,qc,Rc,Dc,Pc={point:y,lineStart:y,lineEnd:y,polygonStart:function(){Lc=0,Pc.lineStart=Ve},polygonEnd:function(){Pc.lineStart=Pc.lineEnd=Pc.point=y,zc+=ca(Lc/2)}},Uc={point:Xe,lineStart:y,lineEnd:y,polygonStart:y,polygonEnd:y},jc={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){jc.lineStart=Ke},polygonEnd:function(){jc.point=We,jc.lineStart=Je,jc.lineEnd=Ge}};Bo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Bo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return zc=0,Bo.geo.stream(n,u(Pc)),zc},n.centroid=function(n){return yc=xc=Mc=_c=bc=wc=Sc=kc=Ec=0,Bo.geo.stream(n,u(jc)),Ec?[Sc/Ec,kc/Ec]:wc?[_c/wc,bc/wc]:Mc?[yc/Mc,xc/Mc]:[0/0,0/0]},n.bounds=function(n){return Rc=Dc=-(Tc=qc=1/0),Bo.geo.stream(n,u(Uc)),[[Tc,qc],[Rc,Dc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):Et,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Bo.geo.albersUsa()).context(null)},Bo.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Bo.geo.projection=ur,Bo.geo.projectionMutator=ir,(Bo.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,Bo.geo.rotation=function(n){function t(t){return t=n(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t}return n=lr(n[0]%360*La,n[1]*La,n.length>2?n[2]*La:0),t.invert=function(t){return t=n.invert(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t},t},cr.invert=ar,Bo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*La,-n[1]*La,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ta,n[1]*=Ta}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*La,u*La),n):t},n.precision=function(r){return arguments.length?(e=gr(t*La,(u=+r)*La),n):u},n.angle(90)},Bo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*La,u=n[1]*La,i=t[1]*La,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},Bo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Bo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Bo.range(Math.ceil(l/m)*m,c,m).map(g)).concat(Bo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ca(n%d)>Na}).map(s)).concat(Bo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ca(n%m)>Na}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Na],[180,90-Na]]).minorExtent([[-180,-80-Na],[180,80+Na]])},Bo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return Bo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Bo.geo.interpolate=function(n,t){return xr(n[0]*La,n[1]*La,t[0]*La,t[1]*La)},Bo.geo.length=function(n){return Fc=0,Bo.geo.stream(n,Hc),Fc};var Fc,Hc={sphere:y,point:y,lineStart:Mr,lineEnd:y,polygonStart:y,polygonEnd:y},Oc=_r(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Bo.geo.azimuthalEqualArea=function(){return ur(Oc)}).raw=Oc;var Yc=_r(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},Et);(Bo.geo.azimuthalEquidistant=function(){return ur(Yc)}).raw=Yc,(Bo.geo.conicConformal=function(){return Ie(br)}).raw=br,(Bo.geo.conicEquidistant=function(){return Ie(wr)}).raw=wr;var Ic=_r(function(n){return 1/n},Math.atan);(Bo.geo.gnomonic=function(){return ur(Ic)}).raw=Ic,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ca]},(Bo.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Zc=_r(function(){return 1},Math.asin);(Bo.geo.orthographic=function(){return ur(Zc)}).raw=Zc;var Vc=_r(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Bo.geo.stereographic=function(){return ur(Vc)}).raw=Vc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ca]},(Bo.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,Bo.geom={},Bo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=kt(e),i=kt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Nr(a),s=Nr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t<s.length-h;++t)g.push(n[a[s[t]][2]]);return g}var e=Ar,r=Cr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},Bo.geom.polygon=function(n){return ga(n,Xc),n};var Xc=Bo.geom.polygon.prototype=[];Xc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Xc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Xc.clip=function(n){for(var t,e,r,u,i,o,a=qr(n),c=-1,l=this.length-qr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Lr(o,s,u)?(Lr(i,s,u)||n.push(Tr(i,o,s,u)),n.push(o)):Lr(i,s,u)&&n.push(Tr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var $c,Bc,Wc,Jc,Gc,Kc=[],Qc=[];Or.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Ir),t.length},Qr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},nu.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=uu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(eu(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ru(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(ru(this,e),n=e,e=n.U),e.C=!1,r.C=!0,eu(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?uu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ru(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,ru(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,ru(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},Bo.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return iu(e(n),a).cells.forEach(function(e,a){var c=e.edges,l=e.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Na)*Na,y:Math.round(o(n,t)/Na)*Na,i:t}})}var r=Ar,u=Cr,i=r,o=u,a=nl;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Ir),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c<l;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,r<i.i&&r<f.i&&au(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=kt(r=n),t):r},t.y=function(n){return arguments.length?(o=kt(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?nl:n,t):a===nl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===nl?null:a&&a[1]},t)};var nl=[[-1e6,-1e6],[1e6,1e6]];Bo.geom.delaunay=function(n){return Bo.geom.voronoi().triangles(n)},Bo.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(ca(c-e)+ca(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,x=kt(a),M=kt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<v&&(v=s.x),s.y<d&&(d=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var _=+x(s=n[g],g),b=+M(s,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=s=null,k}var o,a=Ar,c=Cr;return(o=arguments.length)?(a=cu,c=lu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},Bo.interpolateRgb=hu,Bo.interpolateObject=gu,Bo.interpolateNumber=pu,Bo.interpolateString=vu;var tl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,el=new RegExp(tl.source,"g");Bo.interpolate=du,Bo.interpolators=[function(n,t){var e=typeof t;return("string"===e?$a.has(t)||/^(#|rgb\(|hsl\()/.test(t)?hu:vu:t instanceof it?hu:Array.isArray(t)?mu:"object"===e&&isNaN(t)?gu:pu)(n,t)}],Bo.interpolateArray=mu;var rl=function(){return Et},ul=Bo.map({linear:rl,poly:Su,quad:function(){return _u},cubic:function(){return bu},sin:function(){return ku},exp:function(){return Eu},circle:function(){return Au},elastic:Cu,back:Nu,bounce:function(){return zu}}),il=Bo.map({"in":Et,out:xu,"in-out":Mu,"out-in":function(n){return Mu(xu(n))}});Bo.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=ul.get(e)||rl,r=il.get(r)||Et,yu(r(e.apply(null,Wo.call(arguments,1))))},Bo.interpolateHcl=Lu,Bo.interpolateHsl=Tu,Bo.interpolateLab=qu,Bo.interpolateRound=Ru,Bo.transform=function(n){var t=Go.createElementNS(Bo.ns.prefix.svg,"g");return(Bo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Du(e?e.matrix:ol)})(n)},Du.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ol={a:1,b:0,c:0,d:1,e:0,f:0};Bo.interpolateTransform=Fu,Bo.layout={},Bo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Yu(n[e]));return t}},Bo.layout.chord=function(){function n(){var n,l,f,h,g,p={},v=[],d=Bo.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];v.push(l),m.push(Bo.range(i)),n+=l}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(Aa-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=d[h],x=m[y][g],M=u[y][x],_=l,b=l+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},Bo.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=Bo.event.x,n.py=Bo.event.y,a.resume()}var e,r,u,i,o,a={},c=Bo.dispatch("start","tick","end"),l=[1,1],s=.9,f=al,h=cl,g=-30,p=ll,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=l[0]/2,M=l[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Wu(t=Bo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Bo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;l>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++a<l;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,s=y.length,p=l[0],v=l[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Bo.behavior.drag().origin(Et).on("dragstart.force",Vu).on("drag.force",t).on("dragend.force",Xu)),arguments.length?(this.on("mouseover.force",$u).on("mouseout.force",Bu).call(e),void 0):e},Bo.rebind(a,c,"on")};var al=20,cl=1,ll=1/0;Bo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Ku(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ti,e=Qu,r=ni;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Gu(t,function(n){n.children&&(n.value=0)}),Ku(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Bo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=Bo.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Ju(e,r)},Bo.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/Bo.sum(o),l=Bo.range(i.length);null!=e&&l.sort(e===sl?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var s=[];return l.forEach(function(n){var t;s[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),s}var t=Number,e=sl,r=0,u=Aa;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var sl={};Bo.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=Bo.permute(l,f),s=Bo.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=Et,e=oi,r=ai,u=ii,i=ri,o=ui;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:fl.get(t)||oi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:hl.get(t)||ai,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var fl=Bo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ci),i=n.map(li),o=Bo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return Bo.range(n.length).reverse()},"default":oi}),hl=Bo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ai});Bo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[Bo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=gi,u=fi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=kt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return hi(n,t)}:kt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Bo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Ku(a,function(n){n.r=+s(n.value)}),Ku(a,yi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Ku(a,function(n){n.r+=f}),Ku(a,yi),Ku(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=Bo.layout.hierarchy().sort(pi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Ju(n,e)},Bo.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Ku(h,e),h.parent.m=-h.z,Gu(h,r),l)Gu(f,i);else{var g=f,p=f,v=f;Gu(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Gu(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ai(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=ki(o),u=Si(u),o&&u;)c=Si(c),i=ki(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ei(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!ki(i)&&(i.t=o,i.m+=f-s),u&&!Si(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Bo.layout.hierarchy().sort(null).value(null),a=wi,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Ju(n,o)},Bo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Ku(c,function(n){var t=n.children;t&&t.length?(n.x=zi(t),n.y=Ni(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Ku(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Bo.layout.hierarchy().sort(null).value(null),e=wi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Ju(n,t)},Bo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=Bo.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=qi,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?qi(t):Ri(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Ri(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?qi:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Ju(i,a)},Bo.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Bo.random.normal.apply(Bo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Bo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Bo.scale={};var gl={floor:Et,ceil:Et};Bo.scale.linear=function(){return Oi([0,1],[0,1],du,!1)};var pl={s:1,g:1,p:1,r:1,e:1};Bo.scale.log=function(){return Wi(Bo.scale.linear().domain([0,1]),10,!0,[1,10])};var vl=Bo.format(".0e"),dl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Bo.scale.pow=function(){return Ji(Bo.scale.linear(),1,[0,1])},Bo.scale.sqrt=function(){return Bo.scale.pow().exponent(.5)},Bo.scale.ordinal=function(){return Ki([],{t:"range",a:[[]]})},Bo.scale.category10=function(){return Bo.scale.ordinal().range(ml)},Bo.scale.category20=function(){return Bo.scale.ordinal().range(yl)},Bo.scale.category20b=function(){return Bo.scale.ordinal().range(xl)},Bo.scale.category20c=function(){return Bo.scale.ordinal().range(Ml)};var ml=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(yt),yl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(yt),xl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(yt),Ml=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(yt);Bo.scale.quantile=function(){return Qi([],[])
+},Bo.scale.quantize=function(){return no(0,1,[0,1])},Bo.scale.threshold=function(){return to([.5],[0,1])},Bo.scale.identity=function(){return eo([0,1])},Bo.svg={},Bo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+_l,a=u.apply(this,arguments)+_l,c=(o>a&&(c=o,o=a,a=c),a-o),l=Ea>c?"0":"1",s=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=bl?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+l+",0 "+n*s+","+n*f+"Z":"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=ro,e=uo,r=io,u=oo;return n.innerRadius=function(e){return arguments.length?(t=kt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=kt(t),n):e},n.startAngle=function(t){return arguments.length?(r=kt(t),n):r},n.endAngle=function(t){return arguments.length?(u=kt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+_l;return[Math.cos(i)*n,Math.sin(i)*n]},n};var _l=-Ca,bl=Aa-Na;Bo.svg.line=function(){return ao(Et)};var wl=Bo.map({linear:co,"linear-closed":lo,step:so,"step-before":fo,"step-after":ho,basis:xo,"basis-open":Mo,"basis-closed":_o,bundle:bo,cardinal:vo,"cardinal-open":go,"cardinal-closed":po,monotone:Co});wl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Sl=[0,2/3,1/3,0],kl=[0,1/3,2/3,0],El=[0,1/6,2/3,1/6];Bo.svg.line.radial=function(){var n=ao(No);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},fo.reverse=ho,ho.reverse=fo,Bo.svg.area=function(){return zo(Et)},Bo.svg.area.radial=function(){var n=zo(No);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Bo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+_l,s=l.call(n,u,r)+_l;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Ea)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Lo,c=io,l=oo;return n.radius=function(t){return arguments.length?(a=kt(t),n):a},n.source=function(t){return arguments.length?(i=kt(t),n):i},n.target=function(t){return arguments.length?(o=kt(t),n):o},n.startAngle=function(t){return arguments.length?(c=kt(t),n):c},n.endAngle=function(t){return arguments.length?(l=kt(t),n):l},n},Bo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=To;return n.source=function(e){return arguments.length?(t=kt(e),n):t},n.target=function(t){return arguments.length?(e=kt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Bo.svg.diagonal.radial=function(){var n=Bo.svg.diagonal(),t=To,e=n.projection;return n.projection=function(n){return arguments.length?e(qo(t=n)):t},n},Bo.svg.symbol=function(){function n(n,r){return(Al.get(t.call(this,n,r))||Po)(e.call(this,n,r))}var t=Do,e=Ro;return n.type=function(e){return arguments.length?(t=kt(e),n):t},n.size=function(t){return arguments.length?(e=kt(t),n):e},n};var Al=Bo.map({circle:Po,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/zl),e=t*zl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/zl),e=t*zl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Bo.svg.symbolTypes=Al.keys();var Cl,Nl,zl=Math.sqrt(3),Ll=Math.tan(30*La),Tl=[],ql=0;Tl.call=ya.call,Tl.empty=ya.empty,Tl.node=ya.node,Tl.size=ya.size,Bo.transition=function(n){return arguments.length?Cl?n.transition():n:_a.transition()},Bo.transition.prototype=Tl,Tl.select=function(n){var t,e,r,u=this.id,i=[];n=k(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],l=-1,s=c.length;++l<s;)(r=c[l])&&(e=n.call(r,r.__data__,l,o))?("__data__"in r&&(e.__data__=r.__data__),Ho(e,l,u,r.__transition__[u]),t.push(e)):t.push(null)}return Uo(i,u)},Tl.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=E(n);for(var c=-1,l=this.length;++c<l;)for(var s=this[c],f=-1,h=s.length;++f<h;)if(r=s[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&Ho(u,g,o,i),t.push(u)}return Uo(a,o)},Tl.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=U(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Uo(u,this.id)},Tl.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):F(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Tl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Fu:du,a=Bo.ns.qualify(n);return jo(this,"attr."+n,t,a.local?i:u)},Tl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Bo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Tl.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Qo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=du(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return jo(this,"style."+n,t,u)},Tl.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Qo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Tl.text=function(n){return jo(this,"text",n,Fo)},Tl.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Tl.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Bo.ease.apply(Bo,arguments)),F(this,function(e){e.__transition__[t].ease=n}))},Tl.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:F(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Tl.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:F(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Tl.each=function(n,t){var e=this.id;if(arguments.length<2){var r=Nl,u=Cl;Cl=e,F(this,function(t,r,u){Nl=t.__transition__[e],n.call(t,t.__data__,r,u)}),Nl=r,Cl=u}else F(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Bo.dispatch("start","end"))).on(n,t)});return this},Tl.transition=function(){for(var n,t,e,r,u=this.id,i=++ql,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],l=0,s=t.length;s>l;l++)(e=t[l])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Ho(e,l,i,r)),n.push(e)}return Uo(o,i)},Bo.svg.axis=function(){function n(n){n.each(function(){var n,l=Bo.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):Et:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Na),d=Bo.transition(p.exit()).style("opacity",Na).remove(),m=Bo.transition(p.order()).style("opacity",1),y=Math.max(u,0)+o,x=Pi(f),M=l.selectAll(".domain").data([0]),_=(M.enter().append("path").attr("class","domain"),Bo.transition(M));v.append("line"),v.append("text");var b,w,S,k,E=v.select("line"),A=m.select("line"),C=p.select("text").text(g),N=v.select("text"),z=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Oo,b="x",S="y",w="x2",k="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Yo,b="y",S="x",w="y2",k="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),E.attr(k,L*u),N.attr(S,L*y),A.attr(w,0).attr(k,L*u),z.attr(b,0).attr(S,L*y),f.rangeBand){var T=f,q=T.rangeBand()/2;s=f=function(n){return T(n)+q}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=Bo.scale.linear(),r=Rl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Dl?t+"":Rl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Rl="bottom",Dl={top:1,right:1,bottom:1,left:1};Bo.svg.brush=function(){function n(i){i.each(function(){var i=Bo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,Et);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Pl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var s,f=Bo.transition(i),h=Bo.transition(o);c&&(s=Pi(c),h.attr("x",s[0]).attr("width",s[1]-s[0]),e(f)),l&&(s=Pi(l),h.attr("y",s[0]).attr("height",s[1]-s[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Bo.event.keyCode&&(C||(y=null,z[0]-=s[1],z[1]-=f[1],C=2),_())}function p(){32==Bo.event.keyCode&&2==C&&(z[0]+=s[1],z[1]+=f[1],C=0,_())}function v(){var n=Bo.mouse(M),u=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(Bo.event.altKey?(y||(y=[(s[0]+s[1])/2,(f[0]+f[1])/2]),z[0]=s[+(n[0]<y[0])],z[1]=f[+(n[1]<y[1])]):y=null),E&&d(n,c,0)&&(e(S),u=!0),A&&d(n,l,1)&&(r(S),u=!0),u&&(t(S),w({type:"brush",mode:C?"move":"resize"}))}function d(n,t,e){var r,u,a=Pi(t),c=a[0],l=a[1],p=z[e],v=e?f:s,d=v[1]-v[0];return C&&(c-=p,l-=d+p),r=(e?g:h)?Math.max(c,Math.min(l,n[e])):n[e],C?u=(r+=p)+d:(y&&(p=Math.max(c,Math.min(l,2*y[e]-r))),r>p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Bo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var y,x,M=this,b=Bo.select(Bo.event.target),w=a.of(M,arguments),S=Bo.select(M),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&l,C=b.classed("extent"),N=X(),z=Bo.mouse(M),L=Bo.select(Qo).on("keydown.brush",u).on("keyup.brush",p);if(Bo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=s[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);x=[s[1-T]-z[0],f[1-q]-z[1]],z[0]=s[T],z[1]=f[q]}else Bo.event.altKey&&(y=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Bo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=w(n,"brushstart","brush","brushend"),c=null,l=null,s=[0,0],f=[0,0],h=!0,g=!0,p=Ul[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:s,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Cl?Bo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,s=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=mu(s,t.x),r=mu(f,t.y);return i=o=null,function(u){s=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=Ul[!c<<1|!l],n):c},n.y=function(t){return arguments.length?(l=t,p=Ul[!c<<1|!l],n):l},n.clamp=function(t){return arguments.length?(c&&l?(h=!!t[0],g=!!t[1]):c?h=!!t:l&&(g=!!t),n):c&&l?[h,g]:c?h:l?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],l&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=s[0]||r!=s[1])&&(s=[e,r])),l&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],l.invert&&(u=l(u),a=l(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),l&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],l.invert&&(u=l.invert(u),a=l.invert(a)),u>a&&(h=u,u=a,a=h))),c&&l?[[e,u],[r,a]]:c?[e,r]:l&&[u,a])},n.clear=function(){return n.empty()||(s=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!l&&f[0]==f[1]},Bo.rebind(n,a,"on")};var Pl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ul=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],jl=rc.format=lc.timeFormat,Fl=jl.utc,Hl=Fl("%Y-%m-%dT%H:%M:%S.%LZ");jl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Io:Hl,Io.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Io.toString=Hl.toString,rc.second=Ft(function(n){return new uc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),rc.seconds=rc.second.range,rc.seconds.utc=rc.second.utc.range,rc.minute=Ft(function(n){return new uc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),rc.minutes=rc.minute.range,rc.minutes.utc=rc.minute.utc.range,rc.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new uc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),rc.hours=rc.hour.range,rc.hours.utc=rc.hour.utc.range,rc.month=Ft(function(n){return n=rc.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),rc.months=rc.month.range,rc.months.utc=rc.month.utc.range;var Ol=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Yl=[[rc.second,1],[rc.second,5],[rc.second,15],[rc.second,30],[rc.minute,1],[rc.minute,5],[rc.minute,15],[rc.minute,30],[rc.hour,1],[rc.hour,3],[rc.hour,6],[rc.hour,12],[rc.day,1],[rc.day,2],[rc.week,1],[rc.month,1],[rc.month,3],[rc.year,1]],Il=jl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ae]]),Zl={range:function(n,t,e){return Bo.range(Math.ceil(n/e)*e,+t,e).map(Vo)},floor:Et,ceil:Et};Yl.year=rc.year,rc.scale=function(){return Zo(Bo.scale.linear(),Yl,Il)};var Vl=Yl.map(function(n){return[n[0].utc,n[1]]}),Xl=Fl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ae]]);Vl.year=rc.year.utc,rc.scale.utc=function(){return Zo(Bo.scale.linear(),Vl,Xl)},Bo.text=At(function(n){return n.responseText}),Bo.json=function(n,t){return Ct(n,"application/json",Xo,t)},Bo.html=function(n,t){return Ct(n,"text/html",$o,t)},Bo.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Bo):"object"==typeof module&&module.exports&&(module.exports=Bo),this.d3=Bo}();
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/holder.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/holder.js
index aa051bf0b867..7cd3ee068c1e 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/holder.js
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/holder.js
@@ -1,658 +1,1533 @@
-/*!
+/*
+Holder.js - client side image placeholders
+© 2012-2014 Ivan Malopinsky - http://imsky.co
+*/
+(function(register, global, undefined) {
 
-Holder - 2.3.2 - client side image placeholders
-(c) 2012-2014 Ivan Malopinsky / http://imsky.co
+	//Constants and definitions
 
-Provided under the MIT License.
-Commercial use requires attribution.
+	var SVG_NS = 'http://www.w3.org/2000/svg';
+	var document = global.document;
 
-*/
-var Holder = Holder || {};
-(function (app, win) {
-var system_config = {
-	use_svg: false,
-	use_canvas: false,
-	use_fallback: false
-};
-var instance_config = {};
-var preempted = false;
-canvas = document.createElement('canvas');
-var dpr = 1, bsr = 1;
-var resizable_images = [];
-
-if (!canvas.getContext) {
-	system_config.use_fallback = true;
-} else {
-	if (canvas.toDataURL("image/png")
-		.indexOf("data:image/png") < 0) {
-		//Android doesn't support data URI
-		system_config.use_fallback = true;
-	} else {
-		var ctx = canvas.getContext("2d");
-	}
-}
-
-if(!!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect){
-	system_config.use_svg = true;
-	system_config.use_canvas = false;
-}
-
-if(!system_config.use_fallback){
-    dpr = window.devicePixelRatio || 1,
-    bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
-}
-
-var ratio = dpr / bsr;
-
-var settings = {
-	domain: "holder.js",
-	images: "img",
-	bgnodes: ".holderjs",
-	themes: {
-		"gray": {
-			background: "#eee",
-			foreground: "#aaa",
-			size: 12
-		},
-		"social": {
-			background: "#3a5a97",
-			foreground: "#fff",
-			size: 12
+	var Holder = {
+		/**
+		 * Adds a theme to default settings
+		 *
+		 * @param {string} name Theme name
+		 * @param {Object} theme Theme object, with foreground, background, size, font, and fontweight properties.
+		 */
+		addTheme: function(name, theme) {
+			name != null && theme != null && (App.settings.themes[name] = theme);
+			delete App.vars.cache.themeKeys;
+			return this;
 		},
-		"industrial": {
-			background: "#434A52",
-			foreground: "#C2F200",
-			size: 12
+
+		/**
+		 * Appends a placeholder to an element
+		 *
+		 * @param {string} src Placeholder URL string
+		 * @param {string} el Selector of target element(s)
+		 */
+		addImage: function(src, el) {
+			var node = document.querySelectorAll(el);
+			if (node.length) {
+				for (var i = 0, l = node.length; i < l; i++) {
+					var img = newEl('img');
+					setAttr(img, {
+						'data-src': src
+					});
+					node[i].appendChild(img);
+				}
+			}
+			return this;
 		},
-		"sky": {
-			background: "#0D8FDB",
-			foreground: "#fff",
-			size: 12
+
+		/**
+		 * Runs Holder with options. By default runs Holder on all images with "holder.js" in their source attributes.
+		 *
+		 * @param {Object} userOptions Options object, can contain domain, themes, images, and bgnodes properties
+		 */
+		run: function(userOptions) {
+			userOptions = userOptions || {};
+			var renderSettings = {};
+
+			App.vars.preempted = true;
+
+			var options = extend(App.settings, userOptions);
+
+			renderSettings.renderer = options.renderer ? options.renderer : App.setup.renderer;
+			if (App.setup.renderers.join(',').indexOf(renderSettings.renderer) === -1) {
+				renderSettings.renderer = App.setup.supportsSVG ? 'svg' : (App.setup.supportsCanvas ? 'canvas' : 'html');
+			}
+
+			//< v2.4 API compatibility
+			if (options.use_canvas) {
+				renderSettings.renderer = 'canvas';
+			} else if (options.use_svg) {
+				renderSettings.renderer = 'svg';
+			}
+
+			var images = getNodeArray(options.images);
+			var bgnodes = getNodeArray(options.bgnodes);
+			var stylenodes = getNodeArray(options.stylenodes);
+			var objects = getNodeArray(options.objects);
+
+			renderSettings.stylesheets = [];
+			renderSettings.svgXMLStylesheet = true;
+			renderSettings.noFontFallback = options.noFontFallback ? options.noFontFallback : false;
+
+			for (var i = 0; i < stylenodes.length; i++) {
+				var styleNode = stylenodes[i];
+				if (styleNode.attributes.rel && styleNode.attributes.href && styleNode.attributes.rel.value == 'stylesheet') {
+					var href = styleNode.attributes.href.value;
+					//todo: write isomorphic relative-to-absolute URL function
+					var proxyLink = newEl('a');
+					proxyLink.href = href;
+					var stylesheetURL = proxyLink.protocol + '//' + proxyLink.host + proxyLink.pathname + proxyLink.search;
+					renderSettings.stylesheets.push(stylesheetURL);
+				}
+			}
+
+			for (i = 0; i < bgnodes.length; i++) {
+				var backgroundImage = global.getComputedStyle(bgnodes[i], null).getPropertyValue('background-image');
+				var dataBackgroundImage = bgnodes[i].getAttribute('data-background-src');
+				var rawURL = null;
+
+				if (dataBackgroundImage == null) {
+					rawURL = backgroundImage;
+				} else {
+					rawURL = dataBackgroundImage;
+				}
+
+				var holderURL = null;
+				var holderString = '?' + options.domain + '/';
+
+				if (rawURL.indexOf(holderString) === 0) {
+					holderURL = rawURL.slice(1);
+				} else if (rawURL.indexOf(holderString) != -1) {
+					var fragment = rawURL.substr(rawURL.indexOf(holderString)).slice(1);
+					var fragmentMatch = fragment.match(/([^\"]*)"?\)/);
+
+					if (fragmentMatch != null) {
+						holderURL = fragmentMatch[1];
+					}
+				}
+
+				if (holderURL != null) {
+					var holderFlags = parseURL(holderURL, options);
+					if (holderFlags) {
+						prepareDOMElement('background', bgnodes[i], holderFlags, renderSettings);
+					}
+				}
+			}
+
+			for (i = 0; i < objects.length; i++) {
+				var object = objects[i];
+				var objectAttr = {};
+
+				try {
+					objectAttr.data = object.getAttribute('data');
+					objectAttr.dataSrc = object.getAttribute('data-src');
+				} catch (e) {}
+
+				var objectHasSrcURL = objectAttr.data != null && objectAttr.data.indexOf(options.domain) === 0;
+				var objectHasDataSrcURL = objectAttr.dataSrc != null && objectAttr.dataSrc.indexOf(options.domain) === 0;
+
+				if (objectHasSrcURL) {
+					prepareImageElement(options, renderSettings, objectAttr.data, object);
+				} else if (objectHasDataSrcURL) {
+					prepareImageElement(options, renderSettings, objectAttr.dataSrc, object);
+				}
+			}
+
+			for (i = 0; i < images.length; i++) {
+				var image = images[i];
+				var imageAttr = {};
+
+				try {
+					imageAttr.src = image.getAttribute('src');
+					imageAttr.dataSrc = image.getAttribute('data-src');
+					imageAttr.rendered = image.getAttribute('data-holder-rendered');
+				} catch (e) {}
+
+				var imageHasSrc = imageAttr.src != null;
+				var imageHasDataSrcURL = imageAttr.dataSrc != null && imageAttr.dataSrc.indexOf(options.domain) === 0;
+				var imageRendered = imageAttr.rendered != null && imageAttr.rendered == 'true';
+
+				if (imageHasSrc) {
+					if (imageAttr.src.indexOf(options.domain) === 0) {
+						prepareImageElement(options, renderSettings, imageAttr.src, image);
+					} else if (imageHasDataSrcURL) {
+						//Image has a valid data-src and an invalid src
+						if (imageRendered) {
+							//If the placeholder has already been render, re-render it
+							prepareImageElement(options, renderSettings, imageAttr.dataSrc, image);
+						} else {
+							//If the placeholder has not been rendered, check if the image exists and render a fallback if it doesn't
+              (function(src, options, renderSettings, dataSrc, image){
+                imageExists(src, function(exists){
+                  if(!exists){
+                    prepareImageElement(options, renderSettings, dataSrc, image);
+                  }
+                });
+              })(imageAttr.src, options, renderSettings, imageAttr.dataSrc, image);
+						}
+					}
+				} else if (imageHasDataSrcURL) {
+					prepareImageElement(options, renderSettings, imageAttr.dataSrc, image);
+				}
+			}
+
+			return this;
 		},
-		"vine": {
-			background: "#39DBAC",
-			foreground: "#1E292C",
-			size: 12
+		//todo: remove invisibleErrorFn for 2.5
+		invisibleErrorFn: function(fn) {
+			return function(el) {
+				if (el.hasAttribute('data-holder-invisible')) {
+					throw 'Holder: invisible placeholder';
+				}
+			};
+		}
+	};
+
+	//< v2.4 API compatibility
+
+	Holder.add_theme = Holder.addTheme;
+	Holder.add_image = Holder.addImage;
+	Holder.invisible_error_fn = Holder.invisibleErrorFn;
+
+	var App = {
+		settings: {
+			domain: 'holder.js',
+			images: 'img',
+			objects: 'object',
+			bgnodes: 'body .holderjs',
+			stylenodes: 'head link.holderjs',
+			stylesheets: [],
+			themes: {
+				'gray': {
+					background: '#EEEEEE',
+					foreground: '#AAAAAA'
+				},
+				'social': {
+					background: '#3a5a97',
+					foreground: '#FFFFFF'
+				},
+				'industrial': {
+					background: '#434A52',
+					foreground: '#C2F200'
+				},
+				'sky': {
+					background: '#0D8FDB',
+					foreground: '#FFFFFF'
+				},
+				'vine': {
+					background: '#39DBAC',
+					foreground: '#1E292C'
+				},
+				'lava': {
+					background: '#F8591A',
+					foreground: '#1C2846'
+				}
+			}
 		},
-		"lava": {
-			background: "#F8591A",
-			foreground: "#1C2846",
-			size: 12
-		}
-	},
-	stylesheet: ""
-};
-app.flags = {
-	dimensions: {
-		regex: /^(\d+)x(\d+)$/,
-		output: function (val) {
-			var exec = this.regex.exec(val);
-			return {
-				width: +exec[1],
-				height: +exec[2]
-			}
-		}
-	},
-	fluid: {
-		regex: /^([0-9%]+)x([0-9%]+)$/,
-		output: function (val) {
-			var exec = this.regex.exec(val);
-			return {
-				width: exec[1],
-				height: exec[2]
-			}
-		}
-	},
-	colors: {
-		regex: /#([0-9a-f]{3,})\:#([0-9a-f]{3,})/i,
-		output: function (val) {
-			var exec = this.regex.exec(val);
-			return {
-				size: settings.themes.gray.size,
-				foreground: "#" + exec[2],
-				background: "#" + exec[1]
-			}
-		}
-	},
-	text: {
-		regex: /text\:(.*)/,
-		output: function (val) {
-			return this.regex.exec(val)[1];
-		}
-	},
-	font: {
-		regex: /font\:(.*)/,
-		output: function (val) {
-			return this.regex.exec(val)[1];
-		}
-	},
-	auto: {
-		regex: /^auto$/
-	},
-	textmode: {
-		regex: /textmode\:(.*)/,
-		output: function(val){
-			return this.regex.exec(val)[1];
+    defaults: {
+      size: 10,
+      units: 'pt',
+      scale: 1/16
+    },
+		flags: {
+			dimensions: {
+				regex: /^(\d+)x(\d+)$/,
+				output: function(val) {
+					var exec = this.regex.exec(val);
+					return {
+						width: +exec[1],
+						height: +exec[2]
+					};
+				}
+			},
+			fluid: {
+				regex: /^([0-9]+%?)x([0-9]+%?)$/,
+				output: function(val) {
+					var exec = this.regex.exec(val);
+					return {
+						width: exec[1],
+						height: exec[2]
+					};
+				}
+			},
+			colors: {
+				regex: /(?:#|\^)([0-9a-f]{3,})\:(?:#|\^)([0-9a-f]{3,})/i,
+				output: function(val) {
+					var exec = this.regex.exec(val);
+					return {
+						foreground: '#' + exec[2],
+						background: '#' + exec[1]
+					};
+				}
+			},
+			text: {
+				regex: /text\:(.*)/,
+				output: function(val) {
+					return this.regex.exec(val)[1].replace('\\/', '/');
+				}
+			},
+			font: {
+				regex: /font\:(.*)/,
+				output: function(val) {
+					return this.regex.exec(val)[1];
+				}
+			},
+			auto: {
+				regex: /^auto$/
+			},
+			textmode: {
+				regex: /textmode\:(.*)/,
+				output: function(val) {
+					return this.regex.exec(val)[1];
+				}
+			},
+			random: {
+				regex: /^random$/
+			}
 		}
-	}
-}
-
-function text_size(width, height, template) {
-	height = parseInt(height, 10);
-	width = parseInt(width, 10);
-	var bigSide = Math.max(height, width)
-	var smallSide = Math.min(height, width)
-	var scale = 1 / 12;
-	var newHeight = Math.min(smallSide * 0.75, 0.75 * bigSide * scale);
-	return {
-		height: Math.round(Math.max(template.size, newHeight))
-	}
-}
-
-var svg_el = (function(){
-	//Prevent IE <9 from initializing SVG renderer
-	if(!window.XMLSerializer) return;
-	var serializer = new XMLSerializer();
-	var svg_ns = "http://www.w3.org/2000/svg"
-	var svg = document.createElementNS(svg_ns, "svg");
-	//IE throws an exception if this is set and Chrome requires it to be set
-	if(svg.webkitMatchesSelector){
-		svg.setAttribute("xmlns", "http://www.w3.org/2000/svg")
-	}
-	var bg_el = document.createElementNS(svg_ns, "rect")
-	var text_el = document.createElementNS(svg_ns, "text")
-	var textnode_el = document.createTextNode(null)
-	text_el.setAttribute("text-anchor", "middle")
-	text_el.appendChild(textnode_el)
-	svg.appendChild(bg_el)
-	svg.appendChild(text_el)
-
-	return function(props){
-		svg.setAttribute("width",props.width);
-		svg.setAttribute("height", props.height);
-		bg_el.setAttribute("width", props.width);
-		bg_el.setAttribute("height", props.height);
-		bg_el.setAttribute("fill", props.template.background);
-		text_el.setAttribute("x", props.width/2)
-		text_el.setAttribute("y", props.height/2)
-		textnode_el.nodeValue=props.text
-		text_el.setAttribute("style", css_properties({
-		"fill": props.template.foreground,
-		"font-weight": "bold",
-		"font-size": props.text_height+"px",
-		"font-family":props.font,
-		"dominant-baseline":"central"
-		}))
-		return serializer.serializeToString(svg)
-	}
-})()
+	};
 
-function css_properties(props){
-	var ret = [];
-	for(p in props){
-		if(props.hasOwnProperty(p)){
-			ret.push(p+":"+props[p])
+	/**
+	 * Processes provided source attribute and sets up the appropriate rendering workflow
+	 *
+	 * @private
+	 * @param options Instance options from Holder.run
+	 * @param renderSettings Instance configuration
+	 * @param src Image URL
+	 * @param el Image DOM element
+	 */
+	function prepareImageElement(options, renderSettings, src, el) {
+		var holderFlags = parseURL(src.substr(src.lastIndexOf(options.domain)), options);
+		if (holderFlags) {
+			prepareDOMElement(null, el, holderFlags, renderSettings);
 		}
 	}
-	return ret.join(";")
-}
-
-function draw_canvas(args) {
-	var ctx = args.ctx,
-		dimensions = args.dimensions,
-		template = args.template,
-		ratio = args.ratio,
-		holder = args.holder,
-		literal = holder.textmode == "literal",
-		exact = holder.textmode == "exact";
-
-	var ts = text_size(dimensions.width, dimensions.height, template);
-	var text_height = ts.height;
-	var width = dimensions.width * ratio,
-		height = dimensions.height * ratio;
-	var font = template.font ? template.font : "Arial,Helvetica,sans-serif";
-	canvas.width = width;
-	canvas.height = height;
-	ctx.textAlign = "center";
-	ctx.textBaseline = "middle";
-	ctx.fillStyle = template.background;
-	ctx.fillRect(0, 0, width, height);
-	ctx.fillStyle = template.foreground;
-	ctx.font = "bold " + text_height + "px " + font;
-	var text = template.text ? template.text : (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
-	if (literal) {
-		var dimensions = holder.dimensions;
-		text = dimensions.width + "x" + dimensions.height;
-	}
-	else if(exact && holder.exact_dimensions){
-		var dimensions = holder.exact_dimensions;
-		text = (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
-	}
-	var text_width = ctx.measureText(text).width;
-	if (text_width / width >= 0.75) {
-		text_height = Math.floor(text_height * 0.75 * (width / text_width));
-	}
-	//Resetting font size if necessary
-	ctx.font = "bold " + (text_height * ratio) + "px " + font;
-	ctx.fillText(text, (width / 2), (height / 2), width);
-	return canvas.toDataURL("image/png");
-}
-
-function draw_svg(args){
-	var dimensions = args.dimensions,
-		template = args.template,
-		holder = args.holder,
-		literal = holder.textmode == "literal",
-		exact = holder.textmode == "exact";
-
-	var ts = text_size(dimensions.width, dimensions.height, template);
-	var text_height = ts.height;
-	var width = dimensions.width,
-		height = dimensions.height;
-
-	var font = template.font ? template.font : "Arial,Helvetica,sans-serif";
-	var text = template.text ? template.text : (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
-
-	if (literal) {
-		var dimensions = holder.dimensions;
-		text = dimensions.width + "x" + dimensions.height;
-	}
-	else if(exact && holder.exact_dimensions){
-		var dimensions = holder.exact_dimensions;
-		text = (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
-	}
-	var string = svg_el({
-		text: text,
-		width:width,
-		height:height,
-		text_height:text_height,
-		font:font,
-		template:template
-	})
-	return "data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(string)));
-}
-
-function draw(args) {
-	if(instance_config.use_canvas && !instance_config.use_svg){
-		return draw_canvas(args);
-	}
-	else{
-		return draw_svg(args);
+
+	/**
+	 * Processes a Holder URL and extracts flags
+	 *
+	 * @private
+	 * @param url URL
+	 * @param options Instance options from Holder.run
+	 */
+	function parseURL(url, options) {
+		var ret = {
+			theme: extend(App.settings.themes.gray, null),
+			stylesheets: options.stylesheets,
+			holderURL: []
+		};
+		var render = false;
+		var vtab = String.fromCharCode(11);
+		var flags = url.replace(/([^\\])\//g, '$1' + vtab).split(vtab);
+		var uriRegex = /%[0-9a-f]{2}/gi;
+		for (var fl = flags.length, j = 0; j < fl; j++) {
+			var flag = flags[j];
+			if (flag.match(uriRegex)) {
+				try {
+					flag = decodeURIComponent(flag);
+				} catch (e) {
+					flag = flags[j];
+				}
+			}
+
+			var push = false;
+
+			if (App.flags.dimensions.match(flag)) {
+				render = true;
+				ret.dimensions = App.flags.dimensions.output(flag);
+				push = true;
+			} else if (App.flags.fluid.match(flag)) {
+				render = true;
+				ret.dimensions = App.flags.fluid.output(flag);
+				ret.fluid = true;
+				push = true;
+			} else if (App.flags.textmode.match(flag)) {
+				ret.textmode = App.flags.textmode.output(flag);
+				push = true;
+			} else if (App.flags.colors.match(flag)) {
+				var colors = App.flags.colors.output(flag);
+				ret.theme = extend(ret.theme, colors);
+				//todo: convert implicit theme use to a theme: flag
+				push = true;
+			} else if (options.themes[flag]) {
+				//If a theme is specified, it will override custom colors
+				if (options.themes.hasOwnProperty(flag)) {
+					ret.theme = extend(options.themes[flag], null);
+				}
+				push = true;
+			} else if (App.flags.font.match(flag)) {
+				ret.font = App.flags.font.output(flag);
+				push = true;
+			} else if (App.flags.auto.match(flag)) {
+				ret.auto = true;
+				push = true;
+			} else if (App.flags.text.match(flag)) {
+				ret.text = App.flags.text.output(flag);
+				push = true;
+			} else if (App.flags.random.match(flag)) {
+				if (App.vars.cache.themeKeys == null) {
+					App.vars.cache.themeKeys = Object.keys(options.themes);
+				}
+				var theme = App.vars.cache.themeKeys[0 | Math.random() * App.vars.cache.themeKeys.length];
+				ret.theme = extend(options.themes[theme], null);
+				push = true;
+			}
+
+			if (push) {
+				ret.holderURL.push(flag);
+			}
+		}
+		ret.holderURL.unshift(options.domain);
+		ret.holderURL = ret.holderURL.join('/');
+		return render ? ret : false;
 	}
-}
-
-function render(mode, el, holder, src) {
-	var dimensions = holder.dimensions,
-		theme = holder.theme,
-		text = holder.text ? decodeURIComponent(holder.text) : holder.text;
-	var dimensions_caption = dimensions.width + "x" + dimensions.height;
-	theme = (text ? extend(theme, {
-		text: text
-	}) : theme);
-	theme = (holder.font ? extend(theme, {
-		font: holder.font
-	}) : theme);
-	el.setAttribute("data-src", src);
-	holder.theme = theme;
-	el.holder_data = holder;
-
-	if (mode == "image") {
-		el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
-		if (instance_config.use_fallback || !holder.auto) {
-			el.style.width = dimensions.width + "px";
-			el.style.height = dimensions.height + "px";
-		}
-		if (instance_config.use_fallback) {
-			el.style.backgroundColor = theme.background;
-		} else {
-			el.setAttribute("src", draw({ctx: ctx, dimensions: dimensions, template: theme, ratio:ratio, holder: holder}));
 
-			if(holder.textmode && holder.textmode == "exact"){
-				resizable_images.push(el);
-				resizable_update(el);
+	/**
+	 * Modifies the DOM to fit placeholders and sets up resizable image callbacks (for fluid and automatically sized placeholders)
+	 *
+	 * @private
+	 * @param el Image DOM element
+	 * @param flags Placeholder-specific configuration
+	 * @param _renderSettings Instance configuration
+	 */
+	function prepareDOMElement(mode, el, flags, _renderSettings) {
+		var dimensions = flags.dimensions,
+			theme = flags.theme;
+		var dimensionsCaption = dimensions.width + 'x' + dimensions.height;
+		mode = mode == null ? (flags.fluid ? 'fluid' : 'image') : mode;
+
+		if (flags.text != null) {
+			theme.text = flags.text;
+
+			//<object> SVG embedding doesn't parse Unicode properly
+			if (el.nodeName.toLowerCase() === 'object') {
+				var textLines = theme.text.split('\\n');
+				for (var k = 0; k < textLines.length; k++) {
+					textLines[k] = encodeHtmlEntity(textLines[k]);
+				}
+				theme.text = textLines.join('\\n');
 			}
+		}
+
+		var holderURL = flags.holderURL;
+		var renderSettings = extend(_renderSettings, null);
 
+		if (flags.font) {
+			theme.font = flags.font;
+			//Only run the <canvas> webfont fallback if noFontFallback is false, if the node is not an image, and if canvas is supported
+			if (!renderSettings.noFontFallback && el.nodeName.toLowerCase() === 'img' && App.setup.supportsCanvas && renderSettings.renderer === 'svg') {
+				renderSettings = extend(renderSettings, {
+					renderer: 'canvas'
+				});
+			}
 		}
-	} else if (mode == "background") {
-		if (!instance_config.use_fallback) {
-			el.style.backgroundImage = "url(" + draw({ctx:ctx, dimensions: dimensions, template: theme, ratio: ratio, holder: holder}) + ")";
-			el.style.backgroundSize = dimensions.width + "px " + dimensions.height + "px";
+
+		//Chrome and Opera require a quick 10ms re-render if web fonts are used with canvas
+		if (flags.font && renderSettings.renderer == 'canvas') {
+			renderSettings.reRender = true;
 		}
-	} else if (mode == "fluid") {
-		el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
-		if (dimensions.height.slice(-1) == "%") {
-			el.style.height = dimensions.height
-		} else if(holder.auto == null || !holder.auto){
-			el.style.height = dimensions.height + "px"
+
+		if (mode == 'background') {
+			if (el.getAttribute('data-background-src') == null) {
+				setAttr(el, {
+					'data-background-src': holderURL
+				});
+			}
+		} else {
+			setAttr(el, {
+				'data-src': holderURL
+			});
 		}
-		if (dimensions.width.slice(-1) == "%") {
-			el.style.width = dimensions.width
-		} else if(holder.auto == null || !holder.auto){
-			el.style.width = dimensions.width + "px"
+
+		flags.theme = theme;
+
+		el.holderData = {
+			flags: flags,
+			renderSettings: renderSettings
+		};
+
+		if (mode == 'image' || mode == 'fluid') {
+			setAttr(el, {
+				'alt': (theme.text ? (theme.text.length > 16 ? theme.text.substring(0, 16) + '…' : theme.text) + ' [' + dimensionsCaption + ']' : dimensionsCaption)
+			});
 		}
-		if (el.style.display == "inline" || el.style.display === "" || el.style.display == "none") {
-			el.style.display = "block";
+
+		if (mode == 'image') {
+			if (renderSettings.renderer == 'html' || !flags.auto) {
+				el.style.width = dimensions.width + 'px';
+				el.style.height = dimensions.height + 'px';
+			}
+			if (renderSettings.renderer == 'html') {
+				el.style.backgroundColor = theme.background;
+			} else {
+				render(mode, {
+					dimensions: dimensions,
+					theme: theme,
+					flags: flags
+				}, el, renderSettings);
+
+				if (flags.textmode && flags.textmode == 'exact') {
+					App.vars.resizableImages.push(el);
+					updateResizableElements(el);
+				}
+			}
+		} else if (mode == 'background' && renderSettings.renderer != 'html') {
+			render(mode, {
+					dimensions: dimensions,
+					theme: theme,
+					flags: flags
+				},
+				el, renderSettings);
+		} else if (mode == 'fluid') {
+			if (dimensions.height.slice(-1) == '%') {
+				el.style.height = dimensions.height;
+			} else if (flags.auto == null || !flags.auto) {
+				el.style.height = dimensions.height + 'px';
+			}
+			if (dimensions.width.slice(-1) == '%') {
+				el.style.width = dimensions.width;
+			} else if (flags.auto == null || !flags.auto) {
+				el.style.width = dimensions.width + 'px';
+			}
+			if (el.style.display == 'inline' || el.style.display === '' || el.style.display == 'none') {
+				el.style.display = 'block';
+			}
+
+			setInitialDimensions(el);
+
+			if (renderSettings.renderer == 'html') {
+				el.style.backgroundColor = theme.background;
+			} else {
+				App.vars.resizableImages.push(el);
+				updateResizableElements(el);
+			}
 		}
+	}
 
-		set_initial_dimensions(el)
+	/**
+	 * Core function that takes output from renderers and sets it as the source or background-image of the target element
+	 *
+	 * @private
+	 * @param mode Placeholder mode, either background or image
+	 * @param params Placeholder-specific parameters
+	 * @param el Image DOM element
+	 * @param renderSettings Instance configuration
+	 */
 
-		if (instance_config.use_fallback) {
-			el.style.backgroundColor = theme.background;
+	function render(mode, params, el, renderSettings) {
+		var image = null;
+
+		switch (renderSettings.renderer) {
+			case 'svg':
+				if (!App.setup.supportsSVG) return;
+				break;
+			case 'canvas':
+				if (!App.setup.supportsCanvas) return;
+				break;
+			default:
+				return;
+		}
+
+		//todo: move generation of scene up to flag generation to reduce extra object creation
+		var scene = {
+			width: params.dimensions.width,
+			height: params.dimensions.height,
+			theme: params.theme,
+			flags: params.flags
+		};
+
+		var sceneGraph = buildSceneGraph(scene);
+
+		var rendererParams = {
+			text: scene.text,
+			width: scene.width,
+			height: scene.height,
+			textHeight: scene.font.size,
+			font: scene.font.family,
+			fontWeight: scene.font.weight,
+			template: scene.theme
+		};
+
+		function getRenderedImage() {
+			var image = null;
+			switch (renderSettings.renderer) {
+				case 'canvas':
+					image = sgCanvasRenderer(sceneGraph);
+					break;
+				case 'svg':
+					image = sgSVGRenderer(sceneGraph, renderSettings);
+					break;
+				default:
+					throw 'Holder: invalid renderer: ' + renderSettings.renderer;
+			}
+			return image;
+		}
+
+		image = getRenderedImage();
+
+		if (image == null) {
+			throw 'Holder: couldn\'t render placeholder';
+		}
+
+		//todo: add <object> canvas rendering
+		if (mode == 'background') {
+			el.style.backgroundImage = 'url(' + image + ')';
+			el.style.backgroundSize = scene.width + 'px ' + scene.height + 'px';
 		} else {
-			resizable_images.push(el);
-			resizable_update(el);
+			if (el.nodeName.toLowerCase() === 'img') {
+				setAttr(el, {
+					'src': image
+				});
+			} else if (el.nodeName.toLowerCase() === 'object') {
+				setAttr(el, {
+					'data': image
+				});
+				setAttr(el, {
+					'type': 'image/svg+xml'
+				});
+			}
+			if (renderSettings.reRender) {
+				setTimeout(function() {
+					var image = getRenderedImage();
+					if (image == null) {
+						throw 'Holder: couldn\'t render placeholder';
+					}
+					if (el.nodeName.toLowerCase() === 'img') {
+						setAttr(el, {
+							'src': image
+						});
+					} else if (el.nodeName.toLowerCase() === 'object') {
+						setAttr(el, {
+							'data': image
+						});
+						setAttr(el, {
+							'type': 'image/svg+xml'
+						});
+					}
+				}, 100);
+			}
 		}
+		setAttr(el, {
+			'data-holder-rendered': true
+		});
 	}
-}
 
-function dimension_check(el, callback) {
-	var dimensions = {
-		height: el.clientHeight,
-		width: el.clientWidth
-	};
-	if (!dimensions.height && !dimensions.width) {
-		el.setAttribute("data-holder-invisible", true)
-		callback.call(this, el)
-	}
-	else{
-		el.removeAttribute("data-holder-invisible")
-		return dimensions;
-	}
-}
+	/**
+	 * Core function that takes a Holder scene description and builds a scene graph
+	 *
+	 * @private
+	 * @param scene Holder scene object
+	 */
+	function buildSceneGraph(scene) {
+		scene.font = {
+			family: scene.theme.font ? scene.theme.font : 'Arial, Helvetica, Open Sans, sans-serif',
+			size: textSize(scene.width, scene.height, scene.theme.size ? scene.theme.size : App.defaults.size),
+      units: scene.theme.units ? scene.theme.units : App.defaults.units,
+			weight: scene.theme.fontweight ? scene.theme.fontweight : 'bold'
+		};
+		scene.text = scene.theme.text ? scene.theme.text : Math.floor(scene.width) + 'x' + Math.floor(scene.height);
+
+		switch (scene.flags.textmode) {
+			case 'literal':
+				scene.text = scene.flags.dimensions.width + 'x' + scene.flags.dimensions.height;
+				break;
+			case 'exact':
+				if (!scene.flags.exactDimensions) break;
+				scene.text = Math.floor(scene.flags.exactDimensions.width) + 'x' + Math.floor(scene.flags.exactDimensions.height);
+				break;
+		}
+
+		var sceneGraph = new SceneGraph({
+			width: scene.width,
+			height: scene.height
+		});
+
+		var Shape = sceneGraph.Shape;
+
+		var holderBg = new Shape.Rect('holderBg', {
+			fill: scene.theme.background
+		});
+
+		holderBg.resize(scene.width, scene.height);
+		sceneGraph.root.add(holderBg);
+
+		var holderTextGroup = new Shape.Group('holderTextGroup', {
+			text: scene.text,
+			align: 'center',
+			font: scene.font,
+			fill: scene.theme.foreground
+		});
+
+		holderTextGroup.moveTo(null, null, 1);
+		sceneGraph.root.add(holderTextGroup);
 
-function set_initial_dimensions(el){
-	if(el.holder_data){
-		var dimensions = dimension_check(el, app.invisible_error_fn( set_initial_dimensions))
-		if(dimensions){
-			var holder = el.holder_data;
-			holder.initial_dimensions = dimensions;
-			holder.fluid_data = {
-				fluid_height: holder.dimensions.height.slice(-1) == "%",
-				fluid_width: holder.dimensions.width.slice(-1) == "%",
-				mode: null
+		var tpdata = holderTextGroup.textPositionData = stagingRenderer(sceneGraph);
+		if (!tpdata) {
+			throw 'Holder: staging fallback not supported yet.';
+		}
+		holderTextGroup.properties.leading = tpdata.boundingBox.height;
+
+		//todo: alignment: TL, TC, TR, CL, CR, BL, BC, BR
+		var textNode = null;
+		var line = null;
+
+		function finalizeLine(parent, line, width, height) {
+			line.width = width;
+			line.height = height;
+			parent.width = Math.max(parent.width, line.width);
+			parent.height += line.height;
+			parent.add(line);
+		}
+
+		if (tpdata.lineCount > 1) {
+			var offsetX = 0;
+			var offsetY = 0;
+			var maxLineWidth = scene.width * App.setup.lineWrapRatio;
+			var lineIndex = 0;
+			line = new Shape.Group('line' + lineIndex);
+
+			for (var i = 0; i < tpdata.words.length; i++) {
+				var word = tpdata.words[i];
+				textNode = new Shape.Text(word.text);
+				var newline = word.text == '\\n';
+				if (offsetX + word.width >= maxLineWidth || newline === true) {
+					finalizeLine(holderTextGroup, line, offsetX, holderTextGroup.properties.leading);
+					offsetX = 0;
+					offsetY += holderTextGroup.properties.leading;
+					lineIndex += 1;
+					line = new Shape.Group('line' + lineIndex);
+					line.y = offsetY;
+				}
+				if (newline === true) {
+					continue;
+				}
+				textNode.moveTo(offsetX, 0);
+				offsetX += tpdata.spaceWidth + word.width;
+				line.add(textNode);
 			}
-			if(holder.fluid_data.fluid_width && !holder.fluid_data.fluid_height){
-				holder.fluid_data.mode = "width"
-				holder.fluid_data.ratio = holder.initial_dimensions.width / parseFloat(holder.dimensions.height)
+
+			finalizeLine(holderTextGroup, line, offsetX, holderTextGroup.properties.leading);
+
+			for (var lineKey in holderTextGroup.children) {
+				line = holderTextGroup.children[lineKey];
+				line.moveTo(
+					(holderTextGroup.width - line.width) / 2,
+					null,
+					null);
 			}
-			else if(!holder.fluid_data.fluid_width && holder.fluid_data.fluid_height){
-				holder.fluid_data.mode = "height";
-				holder.fluid_data.ratio = parseFloat(holder.dimensions.width) / holder.initial_dimensions.height
+
+			holderTextGroup.moveTo(
+				(scene.width - holderTextGroup.width) / 2, (scene.height - holderTextGroup.height) / 2,
+				null);
+
+			//If the text exceeds vertical space, move it down so the first line is visible
+			if ((scene.height - holderTextGroup.height) / 2 < 0) {
+				holderTextGroup.moveTo(null, 0, null);
 			}
+		} else {
+			textNode = new Shape.Text(scene.text);
+			line = new Shape.Group('line0');
+			line.add(textNode);
+			holderTextGroup.add(line);
+
+			holderTextGroup.moveTo(
+				(scene.width - tpdata.boundingBox.width) / 2, (scene.height - tpdata.boundingBox.height) / 2,
+				null);
 		}
+
+		//todo: renderlist
+
+		return sceneGraph;
 	}
-}
 
-function resizable_update(element) {
-	var images;
-	if (element.nodeType == null) {
-		images = resizable_images;
-	} else {
-		images = [element]
+	/**
+	 * Adaptive text sizing function
+	 *
+	 * @private
+	 * @param width Parent width
+	 * @param height Parent height
+	 * @param fontSize Requested text size
+	 */
+	function textSize(width, height, fontSize) {
+		height = parseInt(height, 10);
+		width = parseInt(width, 10);
+		var bigSide = Math.max(height, width);
+		var smallSide = Math.min(height, width);
+		var scale = App.defaults.scale;
+		var newHeight = Math.min(smallSide * 0.75, 0.75 * bigSide * scale);
+		return Math.round(Math.max(fontSize, newHeight));
 	}
-	for (var i in images) {
-		if (!images.hasOwnProperty(i)) {
-			continue;
-		}
-		var el = images[i]
-		if (el.holder_data) {
-			var holder = el.holder_data;
-			var dimensions = dimension_check(el, app.invisible_error_fn( resizable_update))
-			if(dimensions){
-				if(holder.fluid){
-					if(holder.auto){
-						switch(holder.fluid_data.mode){
-							case "width":
-								dimensions.height = dimensions.width / holder.fluid_data.ratio;
-							break;
-							case "height":
-								dimensions.width = dimensions.height * holder.fluid_data.ratio;
-							break;
+
+	/**
+	 * Iterates over resizable (fluid or auto) placeholders and renders them
+	 *
+	 * @private
+	 * @param element Optional element selector, specified only if a specific element needs to be re-rendered
+	 */
+	function updateResizableElements(element) {
+		var images;
+		if (element == null || element.nodeType == null) {
+			images = App.vars.resizableImages;
+		} else {
+			images = [element];
+		}
+		for (var i in images) {
+			if (!images.hasOwnProperty(i)) {
+				continue;
+			}
+			var el = images[i];
+			if (el.holderData) {
+				var flags = el.holderData.flags;
+				var dimensions = dimensionCheck(el, Holder.invisibleErrorFn(updateResizableElements));
+				if (dimensions) {
+					if (flags.fluid && flags.auto) {
+						var fluidConfig = el.holderData.fluidConfig;
+						switch (fluidConfig.mode) {
+							case 'width':
+								dimensions.height = dimensions.width / fluidConfig.ratio;
+								break;
+							case 'height':
+								dimensions.width = dimensions.height * fluidConfig.ratio;
+								break;
 						}
 					}
-					el.setAttribute("src", draw({
-						ctx: ctx,
+
+					var drawParams = {
 						dimensions: dimensions,
-						template: holder.theme,
-						ratio: ratio,
-						holder: holder
-					}))
-				}
-				if(holder.textmode && holder.textmode == "exact"){
-					holder.exact_dimensions = dimensions;
-					el.setAttribute("src", draw({
-						ctx: ctx,
-						dimensions: holder.dimensions,
-						template: holder.theme,
-						ratio: ratio,
-						holder: holder
-					}))
+						theme: flags.theme,
+						flags: flags
+					};
+
+					if (flags.textmode && flags.textmode == 'exact') {
+						flags.exactDimensions = dimensions;
+						drawParams.dimensions = flags.dimensions;
+					}
+
+					render('image', drawParams, el, el.holderData.renderSettings);
 				}
 			}
 		}
 	}
-}
 
-function parse_flags(flags, options) {
-	var ret = {
-		theme: extend(settings.themes.gray, {})
-	};
-	var render = false;
-	for (var fl = flags.length, j = 0; j < fl; j++) {
-		var flag = flags[j];
-		if (app.flags.dimensions.match(flag)) {
-			render = true;
-			ret.dimensions = app.flags.dimensions.output(flag);
-		} else if (app.flags.fluid.match(flag)) {
-			render = true;
-			ret.dimensions = app.flags.fluid.output(flag);
-			ret.fluid = true;
-		} else if (app.flags.textmode.match(flag)) {
-			ret.textmode = app.flags.textmode.output(flag)
-		} else if (app.flags.colors.match(flag)) {
-			ret.theme = app.flags.colors.output(flag);
-		} else if (options.themes[flag]) {
-			//If a theme is specified, it will override custom colors
-			if(options.themes.hasOwnProperty(flag)){
-				ret.theme = extend(options.themes[flag], {});
-			}
-		} else if (app.flags.font.match(flag)) {
-			ret.font = app.flags.font.output(flag);
-		} else if (app.flags.auto.match(flag)) {
-			ret.auto = true;
-		} else if (app.flags.text.match(flag)) {
-			ret.text = app.flags.text.output(flag);
+	/**
+	 * Checks if an element is visible
+	 *
+	 * @private
+	 * @param el DOM element
+	 * @param callback Callback function executed if the element is invisible
+	 */
+	function dimensionCheck(el, callback) {
+		var dimensions = {
+			height: el.clientHeight,
+			width: el.clientWidth
+		};
+		if (!dimensions.height && !dimensions.width) {
+			setAttr(el, {
+				'data-holder-invisible': true
+			});
+			callback.call(this, el);
+		} else {
+			el.removeAttribute('data-holder-invisible');
+			return dimensions;
 		}
 	}
-	return render ? ret : false;
-}
 
-for (var flag in app.flags) {
-	if (!app.flags.hasOwnProperty(flag)) continue;
-	app.flags[flag].match = function (val) {
-		return val.match(this.regex)
-	}
-}
+	/**
+	 * Sets up aspect ratio metadata for fluid placeholders, in order to preserve proportions when resizing
+	 *
+	 * @private
+	 * @param el Image DOM element
+	 */
+	function setInitialDimensions(el) {
+		if (el.holderData) {
+			var dimensions = dimensionCheck(el, Holder.invisibleErrorFn(setInitialDimensions));
+			if (dimensions) {
+				var flags = el.holderData.flags;
 
-app.invisible_error_fn = function(fn){
-	return function(el){
-		if(el.hasAttribute("data-holder-invisible")){
-			throw new Error("Holder: invisible placeholder")
-		}
-	}
-}
+				var fluidConfig = {
+					fluidHeight: flags.dimensions.height.slice(-1) == '%',
+					fluidWidth: flags.dimensions.width.slice(-1) == '%',
+					mode: null,
+					initialDimensions: dimensions
+				};
 
-app.add_theme = function (name, theme) {
-	name != null && theme != null && (settings.themes[name] = theme);
-	return app;
-};
+				if (fluidConfig.fluidWidth && !fluidConfig.fluidHeight) {
+					fluidConfig.mode = 'width';
+					fluidConfig.ratio = fluidConfig.initialDimensions.width / parseFloat(flags.dimensions.height);
+				} else if (!fluidConfig.fluidWidth && fluidConfig.fluidHeight) {
+					fluidConfig.mode = 'height';
+					fluidConfig.ratio = parseFloat(flags.dimensions.width) / fluidConfig.initialDimensions.height;
+				}
 
-app.add_image = function (src, el) {
-	var node = selector(el);
-	if (node.length) {
-		for (var i = 0, l = node.length; i < l; i++) {
-			var img = document.createElement("img")
-			img.setAttribute("data-src", src);
-			node[i].appendChild(img);
+				el.holderData.fluidConfig = fluidConfig;
+			}
 		}
 	}
-	return app;
-};
 
-app.run = function (o) {
+	//todo: see if possible to convert stagingRenderer to use HTML only
+	var stagingRenderer = (function() {
+		var svg = null,
+			stagingText = null,
+			stagingTextNode = null;
+		return function(graph) {
+			var rootNode = graph.root;
+			if (App.setup.supportsSVG) {
+				var firstTimeSetup = false;
+				var tnode = function(text) {
+					return document.createTextNode(text);
+				};
+				if (svg == null) {
+					firstTimeSetup = true;
+				}
+				svg = initSVG(svg, rootNode.properties.width, rootNode.properties.height);
+				if (firstTimeSetup) {
+					stagingText = newEl('text', SVG_NS);
+					stagingTextNode = tnode(null);
+					setAttr(stagingText, {
+						x: 0
+					});
+					stagingText.appendChild(stagingTextNode);
+					svg.appendChild(stagingText);
+					document.body.appendChild(svg);
+					svg.style.visibility = 'hidden';
+					svg.style.position = 'absolute';
+					svg.style.top = '-100%';
+					svg.style.left = '-100%';
+					//todo: workaround for zero-dimension <svg> tag in Opera 12
+					//svg.setAttribute('width', 0);
+					//svg.setAttribute('height', 0);
+				}
 
-	instance_config = extend({}, system_config)
-	preempted = true;
+				var holderTextGroup = rootNode.children.holderTextGroup;
+				var htgProps = holderTextGroup.properties;
+				setAttr(stagingText, {
+					'y': htgProps.font.size,
+					'style': cssProps({
+						'font-weight': htgProps.font.weight,
+						'font-size': htgProps.font.size + htgProps.font.units,
+						'font-family': htgProps.font.family,
+						'dominant-baseline': 'middle'
+					})
+				});
 
-	var options = extend(settings, o),
-		images = [],
-		imageNodes = [],
-		bgnodes = [];
+				//Get bounding box for the whole string (total width and height)
+				stagingTextNode.nodeValue = htgProps.text;
+				var stagingTextBBox = stagingText.getBBox();
 
-	if(options.use_canvas != null && options.use_canvas){
-		instance_config.use_canvas = true;
-		instance_config.use_svg = false;
-	}
+				//Get line count and split the string into words
+				var lineCount = Math.ceil(stagingTextBBox.width / (rootNode.properties.width * App.setup.lineWrapRatio));
+				var words = htgProps.text.split(' ');
+				var newlines = htgProps.text.match(/\\n/g);
+				lineCount += newlines == null ? 0 : newlines.length;
+
+				//Get bounding box for the string with spaces removed
+				stagingTextNode.nodeValue = htgProps.text.replace(/[ ]+/g, '');
+				var computedNoSpaceLength = stagingText.getComputedTextLength();
+
+				//Compute average space width
+				var diffLength = stagingTextBBox.width - computedNoSpaceLength;
+				var spaceWidth = Math.round(diffLength / Math.max(1, words.length - 1));
+
+				//Get widths for every word with space only if there is more than one line
+				var wordWidths = [];
+				if (lineCount > 1) {
+					stagingTextNode.nodeValue = '';
+					for (var i = 0; i < words.length; i++) {
+						if (words[i].length === 0) continue;
+						stagingTextNode.nodeValue = decodeHtmlEntity(words[i]);
+						var bbox = stagingText.getBBox();
+						wordWidths.push({
+							text: words[i],
+							width: bbox.width
+						});
+					}
+				}
+
+				return {
+					spaceWidth: spaceWidth,
+					lineCount: lineCount,
+					boundingBox: stagingTextBBox,
+					words: wordWidths
+				};
+			} else {
+				//todo: canvas fallback for measuring text on android 2.3
+				return false;
+			}
+		};
+	})();
+
+	var sgCanvasRenderer = (function() {
+		var canvas = newEl('canvas');
+		var ctx = null;
+
+		return function(sceneGraph) {
+			if (ctx == null) {
+				ctx = canvas.getContext('2d');
+			}
+			var root = sceneGraph.root;
+			canvas.width = App.dpr(root.properties.width);
+			canvas.height = App.dpr(root.properties.height);
+			ctx.textBaseline = 'middle';
 
-	if (typeof (options.images) == "string") {
-		imageNodes = selector(options.images);
-	} else if (window.NodeList && options.images instanceof window.NodeList) {
-		imageNodes = options.images;
-	} else if (window.Node && options.images instanceof window.Node) {
-		imageNodes = [options.images];
-	} else if(window.HTMLCollection && options.images instanceof window.HTMLCollection){
-		imageNodes = options.images
+			ctx.fillStyle = root.children.holderBg.properties.fill;
+			ctx.fillRect(0, 0, App.dpr(root.children.holderBg.width), App.dpr(root.children.holderBg.height));
+
+			var textGroup = root.children.holderTextGroup;
+			var tgProps = textGroup.properties;
+			ctx.font = textGroup.properties.font.weight + ' ' + App.dpr(textGroup.properties.font.size) + textGroup.properties.font.units + ' ' + textGroup.properties.font.family + ', monospace';
+			ctx.fillStyle = textGroup.properties.fill;
+
+			for (var lineKey in textGroup.children) {
+				var line = textGroup.children[lineKey];
+				for (var wordKey in line.children) {
+					var word = line.children[wordKey];
+					var x = App.dpr(textGroup.x + line.x + word.x);
+					var y = App.dpr(textGroup.y + line.y + word.y + (textGroup.properties.leading / 2));
+
+					ctx.fillText(word.properties.text, x, y);
+				}
+			}
+
+			return canvas.toDataURL('image/png');
+		};
+	})();
+
+	var sgSVGRenderer = (function() {
+		//Prevent IE <9 from initializing SVG renderer
+		if (!global.XMLSerializer) return;
+		var svg = initSVG(null, 0, 0);
+		var bgEl = newEl('rect', SVG_NS);
+		svg.appendChild(bgEl);
+
+		//todo: create a reusable pool for textNodes, resize if more words present
+
+		return function(sceneGraph, renderSettings) {
+			var root = sceneGraph.root;
+
+			initSVG(svg, root.properties.width, root.properties.height);
+			var groups = svg.querySelectorAll('g');
+
+			for (var i = 0; i < groups.length; i++) {
+				groups[i].parentNode.removeChild(groups[i]);
+			}
+
+			setAttr(bgEl, {
+				'width': root.children.holderBg.width,
+				'height': root.children.holderBg.height,
+				'fill': root.children.holderBg.properties.fill
+			});
+
+			var textGroup = root.children.holderTextGroup;
+			var tgProps = textGroup.properties;
+			var textGroupEl = newEl('g', SVG_NS);
+			svg.appendChild(textGroupEl);
+
+			for (var lineKey in textGroup.children) {
+				var line = textGroup.children[lineKey];
+				for (var wordKey in line.children) {
+					var word = line.children[wordKey];
+					var x = textGroup.x + line.x + word.x;
+					var y = textGroup.y + line.y + word.y + (textGroup.properties.leading / 2);
+
+					var textEl = newEl('text', SVG_NS);
+					var textNode = document.createTextNode(null);
+
+					setAttr(textEl, {
+						'x': x,
+						'y': y,
+						'style': cssProps({
+							'fill': tgProps.fill,
+							'font-weight': tgProps.font.weight,
+							'font-family': tgProps.font.family + ', monospace',
+							'font-size': tgProps.font.size + tgProps.font.units,
+							'dominant-baseline': 'central'
+						})
+					});
+
+					textNode.nodeValue = word.properties.text;
+					textEl.appendChild(textNode);
+					textGroupEl.appendChild(textEl);
+				}
+			}
+
+			var svgString = 'data:image/svg+xml;base64,' +
+				btoa(unescape(encodeURIComponent(serializeSVG(svg, renderSettings))));
+			return svgString;
+		};
+	})();
+
+	//Helpers
+
+	/**
+	 * Generic new DOM element function
+	 *
+	 * @private
+	 * @param tag Tag to create
+	 * @param namespace Optional namespace value
+	 */
+	function newEl(tag, namespace) {
+		if (namespace == null) {
+			return document.createElement(tag);
+		} else {
+			return document.createElementNS(namespace, tag);
+		}
 	}
 
-	if (typeof (options.bgnodes) == "string") {
-		bgnodes = selector(options.bgnodes);
-	} else if (window.NodeList && options.elements instanceof window.NodeList) {
-		bgnodes = options.bgnodes;
-	} else if (window.Node && options.bgnodes instanceof window.Node) {
-		bgnodes = [options.bgnodes];
+	/**
+	 * Generic setAttribute function
+	 *
+	 * @private
+	 * @param el Reference to DOM element
+	 * @param attrs Object with attribute keys and values
+	 */
+	function setAttr(el, attrs) {
+		for (var a in attrs) {
+			el.setAttribute(a, attrs[a]);
+		}
 	}
-	for (i = 0, l = imageNodes.length; i < l; i++) images.push(imageNodes[i]);
-
-	var holdercss = document.getElementById("holderjs-style");
-	if (!holdercss) {
-		holdercss = document.createElement("style");
-		holdercss.setAttribute("id", "holderjs-style");
-		holdercss.type = "text/css";
-		document.getElementsByTagName("head")[0].appendChild(holdercss);
+
+	/**
+	 * Generic SVG element creation function
+	 *
+	 * @private
+	 * @param svg SVG context, set to null if new
+	 * @param width Document width
+	 * @param height Document height
+	 */
+	function initSVG(svg, width, height) {
+		if (svg == null) {
+			svg = newEl('svg', SVG_NS);
+			var defs = newEl('defs', SVG_NS);
+			svg.appendChild(defs);
+		}
+		//IE throws an exception if this is set and Chrome requires it to be set
+		if (svg.webkitMatchesSelector) {
+			svg.setAttribute('xmlns', SVG_NS);
+		}
+
+		setAttr(svg, {
+			'width': width,
+			'height': height,
+			'viewBox': '0 0 ' + width + ' ' + height,
+			'preserveAspectRatio': 'none'
+		});
+		return svg;
 	}
 
-	if (!options.nocss) {
-		if (holdercss.styleSheet) {
-			holdercss.styleSheet.cssText += options.stylesheet;
-		} else {
-			if(options.stylesheet.length){
-				holdercss.appendChild(document.createTextNode(options.stylesheet));
+	/**
+	 * Generic SVG serialization function
+	 *
+	 * @private
+	 * @param svg SVG context
+	 * @param stylesheets CSS stylesheets to include
+	 */
+	function serializeSVG(svg, renderSettings) {
+		if (!global.XMLSerializer) return;
+		var serializer = new XMLSerializer();
+		var svgCSS = '';
+		var stylesheets = renderSettings.stylesheets;
+		var defs = svg.querySelector('defs');
+
+		//External stylesheets: Processing Instruction method
+		if (renderSettings.svgXMLStylesheet) {
+			var xml = new DOMParser().parseFromString('<xml />', 'application/xml');
+			//Add <?xml-stylesheet ?> directives
+			for (var i = stylesheets.length - 1; i >= 0; i--) {
+				var csspi = xml.createProcessingInstruction('xml-stylesheet', 'href="' + stylesheets[i] + '" rel="stylesheet"');
+				xml.insertBefore(csspi, xml.firstChild);
 			}
+
+			//Add <?xml ... ?> UTF-8 directive
+			var xmlpi = xml.createProcessingInstruction('xml', 'version="1.0" encoding="UTF-8" standalone="yes"');
+			xml.insertBefore(xmlpi, xml.firstChild);
+			xml.removeChild(xml.documentElement);
+			svgCSS = serializer.serializeToString(xml);
 		}
-	}
 
-	var cssregex = new RegExp(options.domain + "\/(.*?)\"?\\)");
-	for (var l = bgnodes.length, i = 0; i < l; i++) {
-		var src = window.getComputedStyle(bgnodes[i], null)
-			.getPropertyValue("background-image");
-		var flags = src.match(cssregex);
-		var bgsrc = bgnodes[i].getAttribute("data-background-src");
-		if (flags) {
-			var holder = parse_flags(flags[1].split("/"), options);
-			if (holder) {
-				render("background", bgnodes[i], holder, src);
+		/*
+
+		//External stylesheets: <link> method
+		if (renderSettings.svgLinkStylesheet) {
+
+			defs.removeChild(defs.firstChild);
+			for (i = 0; i < stylesheets.length; i++) {
+				var link = document.createElementNS('http://www.w3.org/1999/xhtml', 'link');
+				link.setAttribute('href', stylesheets[i]);
+				link.setAttribute('rel', 'stylesheet');
+				link.setAttribute('type', 'text/css');
+				defs.appendChild(link);
 			}
-		} else if (bgsrc != null) {
-			var holder = parse_flags(bgsrc.substr(bgsrc.lastIndexOf(options.domain) + options.domain.length + 1)
-				.split("/"), options);
-			if (holder) {
-				render("background", bgnodes[i], holder, src);
+		}
+
+		//External stylesheets: <style> and @import method
+		if (renderSettings.svgImportStylesheet) {
+			var style = document.createElementNS(SVG_NS, 'style');
+			var styleText = [];
+
+			for (i = 0; i < stylesheets.length; i++) {
+				styleText.push('@import url(' + stylesheets[i] + ');');
 			}
+
+			var styleTextNode = document.createTextNode(styleText.join('\n'));
+			style.appendChild(styleTextNode);
+			defs.appendChild(style);
 		}
+
+		*/
+
+		var svgText = serializer.serializeToString(svg);
+		svgText = svgText.replace(/\&amp;(\#[0-9]{2,}\;)/g, '&$1');
+		return svgCSS + svgText;
 	}
-	for (l = images.length, i = 0; i < l; i++) {
-		var attr_data_src, attr_src;
-		attr_src = attr_data_src = src = null;
-		try {
-			attr_src = images[i].getAttribute("src");
-			attr_datasrc = images[i].getAttribute("data-src");
-		} catch (e) {}
-		if (attr_datasrc == null && !! attr_src && attr_src.indexOf(options.domain) >= 0) {
-			src = attr_src;
-		} else if ( !! attr_datasrc && attr_datasrc.indexOf(options.domain) >= 0) {
-			src = attr_datasrc;
-		}
-		if (src) {
-			var holder = parse_flags(src.substr(src.lastIndexOf(options.domain) + options.domain.length + 1).split("/"), options);
-			if (holder) {
-				if (holder.fluid) {
-					render("fluid", images[i], holder, src)
-				} else {
-					render("image", images[i], holder, src);
+
+	/**
+	 * Shallow object clone and merge
+	 *
+	 * @param a Object A
+	 * @param b Object B
+	 * @returns {Object} New object with all of A's properties, and all of B's properties, overwriting A's properties
+	 */
+	function extend(a, b) {
+		var c = {};
+		for (var x in a) {
+			if (a.hasOwnProperty(x)) {
+				c[x] = a[x];
+			}
+		}
+		if (b != null) {
+			for (var y in b) {
+				if (b.hasOwnProperty(y)) {
+					c[y] = b[y];
 				}
 			}
 		}
+		return c;
 	}
-	return app;
-};
 
-contentLoaded(win, function () {
-	if (window.addEventListener) {
-		window.addEventListener("resize", resizable_update, false);
-		window.addEventListener("orientationchange", resizable_update, false);
-	} else {
-		window.attachEvent("onresize", resizable_update)
+	/**
+	 * Takes a k/v list of CSS properties and returns a rule
+	 *
+	 * @param props CSS properties object
+	 */
+	function cssProps(props) {
+		var ret = [];
+		for (var p in props) {
+			if (props.hasOwnProperty(p)) {
+				ret.push(p + ':' + props[p]);
+			}
+		}
+		return ret.join(';');
 	}
-	preempted || app.run({});
 
-	if (typeof window.Turbolinks === "object") {
-		document.addEventListener("page:change", function() { app.run({}) })
+	/**
+	 * Prevents a function from being called too often, waits until a timer elapses to call it again
+	 *
+	 * @param fn Function to call
+	 */
+	function debounce(fn) {
+		if (!App.vars.debounceTimer) fn.call(this);
+		if (App.vars.debounceTimer) clearTimeout(App.vars.debounceTimer);
+		App.vars.debounceTimer = setTimeout(function() {
+			App.vars.debounceTimer = null;
+			fn.call(this);
+		}, App.setup.debounce);
 	}
-});
-if (typeof define === "function" && define.amd) {
-	define([], function () {
-		return app;
-	});
-}
 
-//github.com/davidchambers/Base64.js
-(function(){function t(t){this.message=t}var e="undefined"!=typeof exports?exports:this,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=Error(),t.prototype.name="InvalidCharacterError",e.btoa||(e.btoa=function(e){for(var o,n,a=0,i=r,c="";e.charAt(0|a)||(i="=",a%1);c+=i.charAt(63&o>>8-8*(a%1))){if(n=e.charCodeAt(a+=.75),n>255)throw new t("'btoa' failed");o=o<<8|n}return c}),e.atob||(e.atob=function(e){if(e=e.replace(/=+$/,""),1==e.length%4)throw new t("'atob' failed");for(var o,n,a=0,i=0,c="";n=e.charAt(i++);~n&&(o=a%4?64*o+n:n,a++%4)?c+=String.fromCharCode(255&o>>(6&-2*a)):0)n=r.indexOf(n);return c})})();
+	/**
+	 * Holder-specific resize/orientation change callback, debounced to prevent excessive execution
+	 */
+	function resizeEvent() {
+		debounce(function() {
+			updateResizableElements(null);
+		});
+	}
 
-//getElementsByClassName polyfill
-document.getElementsByClassName||(document.getElementsByClassName=function(e){var t=document,n,r,i,s=[];if(t.querySelectorAll)return t.querySelectorAll("."+e);if(t.evaluate){r=".//*[contains(concat(' ', @class, ' '), ' "+e+" ')]",n=t.evaluate(r,t,null,0,null);while(i=n.iterateNext())s.push(i)}else{n=t.getElementsByTagName("*"),r=new RegExp("(^|\\s)"+e+"(\\s|$)");for(i=0;i<n.length;i++)r.test(n[i].className)&&s.push(n[i])}return s})
+	/**
+	 * Converts a value into an array of DOM nodes
+	 *
+	 * @param val A string, a NodeList, a Node, or an HTMLCollection
+	 */
+	function getNodeArray(val) {
+		var retval = null;
+		if (typeof(val) == 'string') {
+			retval = document.querySelectorAll(val);
+		} else if (global.NodeList && val instanceof global.NodeList) {
+			retval = val;
+		} else if (global.Node && val instanceof global.Node) {
+			retval = [val];
+		} else if (global.HTMLCollection && val instanceof global.HTMLCollection) {
+			retval = val;
+		} else if (val === null) {
+			retval = [];
+		}
+		return retval;
+	}
 
-//getComputedStyle polyfill
-window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var n=/(\-([a-z]){1})/g;return t=="float"&&(t="styleFloat"),n.test(t)&&(t=t.replace(n,function(){return arguments[2].toUpperCase()})),e.currentStyle[t]?e.currentStyle[t]:null},this})
+	/**
+	 * Checks if an image exists
+	 *
+	 * @param params Configuration object, must specify at least a src key
+	 * @param callback Callback to call once image status has been found
+	 */
+	function imageExists(src, callback) {
+		var image = new Image();
+		image.onerror = function() {
+			callback.call(this, false);
+		};
+		image.onload = function() {
+			callback.call(this, true);
+		};
+		image.src = src;
+	}
 
-//http://javascript.nwbox.com/ContentLoaded by Diego Perini with modifications
-function contentLoaded(n,t){var l="complete",s="readystatechange",u=!1,h=u,c=!0,i=n.document,a=i.documentElement,e=i.addEventListener?"addEventListener":"attachEvent",v=i.addEventListener?"removeEventListener":"detachEvent",f=i.addEventListener?"":"on",r=function(e){(e.type!=s||i.readyState==l)&&((e.type=="load"?n:i)[v](f+e.type,r,u),!h&&(h=!0)&&t.call(n,null))},o=function(){try{a.doScroll("left")}catch(n){setTimeout(o,50);return}r("poll")};if(i.readyState==l)t.call(n,"lazy");else{if(i.createEventObject&&a.doScroll){try{c=!n.frameElement}catch(y){}c&&o()}i[e](f+"DOMContentLoaded",r,u),i[e](f+s,r,u),n[e](f+"load",r,u)}}
+	/**
+	 * Encodes HTML entities in a string
+	 *
+	 * @param str Input string
+	 */
+	function encodeHtmlEntity(str) {
+		var buf = [];
+		var charCode = 0;
+		for (var i = str.length - 1; i >= 0; i--) {
+			charCode = str.charCodeAt(i);
+			if (charCode > 128) {
+				buf.unshift(['&#', charCode, ';'].join(''));
+			} else {
+				buf.unshift(str[i]);
+			}
+		}
+		return buf.join('');
+	}
 
-//https://gist.github.com/991057 by Jed Schmidt with modifications
-function selector(a,b){var a=a.match(/^(\W)?(.*)/),b=b||document,c=b["getElement"+(a[1]?"#"==a[1]?"ById":"sByClassName":"sByTagName")],d=c.call(b,a[2]),e=[];return null!==d&&(e=d.length||0===d.length?d:[d]),e}
+	/**
+	 * Decodes HTML entities in a stirng
+	 *
+	 * @param str Input string
+	 */
+	function decodeHtmlEntity(str) {
+		return str.replace(/&#(\d+);/g, function(match, dec) {
+			return String.fromCharCode(dec);
+		});
+	}
+
+	// Scene graph
+
+	var SceneGraph = function(sceneProperties) {
+		var nodeCount = 1;
 
-//shallow object property extend
-function extend(a,b){
-	var c={};
-	for(var i in a){
-		if(a.hasOwnProperty(i)){
-			c[i]=a[i];
+		//todo: move merge to helpers section
+		function merge(parent, child) {
+			for (var prop in child) {
+				parent[prop] = child[prop];
+			}
+			return parent;
 		}
+
+		var SceneNode = augment.defclass({
+			constructor: function(name) {
+				nodeCount++;
+				this.parent = null;
+				this.children = {};
+				this.id = nodeCount;
+				this.name = 'n' + nodeCount;
+				if (name != null) {
+					this.name = name;
+				}
+				this.x = 0;
+				this.y = 0;
+				this.z = 0;
+				this.width = 0;
+				this.height = 0;
+			},
+			resize: function(width, height) {
+				if (width != null) {
+					this.width = width;
+				}
+				if (height != null) {
+					this.height = height;
+				}
+			},
+			moveTo: function(x, y, z) {
+				this.x = x != null ? x : this.x;
+				this.y = y != null ? y : this.y;
+				this.z = z != null ? z : this.z;
+			},
+			add: function(child) {
+					var name = child.name;
+					if (this.children[name] == null) {
+						this.children[name] = child;
+						child.parent = this;
+					} else {
+						throw 'SceneGraph: child with that name already exists: ' + name;
+					}
+				}
+				/*,	// probably unnecessary in Holder
+				remove: function(name){
+					if(this.children[name] == null){
+						throw 'SceneGraph: child with that name doesn\'t exist: '+name;
+					}
+					else{
+						child.parent = null;
+						delete this.children[name];
+					}
+				},
+				removeAll: function(){
+					for(var child in this.children){
+						this.remove(child);
+					}
+				}*/
+		});
+
+		var RootNode = augment(SceneNode, function(uber) {
+			this.constructor = function() {
+				uber.constructor.call(this, 'root');
+				this.properties = sceneProperties;
+			};
+		});
+
+		var Shape = augment(SceneNode, function(uber) {
+			function constructor(name, props) {
+				uber.constructor.call(this, name);
+				this.properties = {
+					fill: '#000'
+				};
+				if (props != null) {
+					merge(this.properties, props);
+				} else if (name != null && typeof name !== 'string') {
+					throw 'SceneGraph: invalid node name';
+				}
+			}
+
+			this.Group = augment.extend(this, {
+				constructor: constructor,
+				type: 'group'
+			});
+
+			this.Rect = augment.extend(this, {
+				constructor: constructor,
+				type: 'rect'
+			});
+
+			this.Text = augment.extend(this, {
+				constructor: function(text) {
+					constructor.call(this);
+					this.properties.text = text;
+				},
+				type: 'text'
+			});
+		});
+
+		var root = new RootNode();
+
+		this.Shape = Shape;
+		this.root = root;
+
+		return this;
+	};
+
+	//Set up flags
+
+	for (var flag in App.flags) {
+		if (!App.flags.hasOwnProperty(flag)) continue;
+		App.flags[flag].match = function(val) {
+			return val.match(this.regex);
+		};
 	}
-	for(var i in b){
-		if(b.hasOwnProperty(i)){
-			c[i]=b[i];
+
+	//Properties set once on setup
+
+	App.setup = {
+		renderer: 'html',
+		debounce: 100,
+		ratio: 1,
+		supportsCanvas: false,
+		supportsSVG: false,
+		lineWrapRatio: 0.9,
+		renderers: ['html', 'canvas', 'svg']
+	};
+
+	App.dpr = function(val) {
+		return val * App.setup.ratio;
+	};
+
+	//Properties modified during runtime
+
+	App.vars = {
+		preempted: false,
+		resizableImages: [],
+		debounceTimer: null,
+		cache: {}
+	};
+
+	//Pre-flight
+
+	(function() {
+		var devicePixelRatio = 1,
+			backingStoreRatio = 1;
+
+		var canvas = newEl('canvas');
+		var ctx = null;
+
+		if (canvas.getContext) {
+			if (canvas.toDataURL('image/png').indexOf('data:image/png') != -1) {
+				App.setup.renderer = 'canvas';
+				ctx = canvas.getContext('2d');
+				App.setup.supportsCanvas = true;
+			}
 		}
+
+		if (App.setup.supportsCanvas) {
+			devicePixelRatio = global.devicePixelRatio || 1;
+			backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
+		}
+
+		App.setup.ratio = devicePixelRatio / backingStoreRatio;
+
+		if (!!document.createElementNS && !!document.createElementNS(SVG_NS, 'svg').createSVGRect) {
+			App.setup.renderer = 'svg';
+			App.setup.supportsSVG = true;
+		}
+	})();
+
+	//Exposing to environment and setting up listeners
+	register(Holder, 'Holder', global);
+
+	if (global.onDomReady) {
+		global.onDomReady(function() {
+			if (!App.vars.preempted) {
+				Holder.run();
+			}
+			if (global.addEventListener) {
+				global.addEventListener('resize', resizeEvent, false);
+				global.addEventListener('orientationchange', resizeEvent, false);
+			} else {
+				global.attachEvent('onresize', resizeEvent);
+			}
+
+			if (typeof global.Turbolinks == 'object') {
+				global.document.addEventListener('page:change', function() {
+					Holder.run();
+				});
+			}
+		});
 	}
-	return c
-}
-
-//hasOwnProperty polyfill
-if (!Object.prototype.hasOwnProperty)
-    /*jshint -W001, -W103 */
-    Object.prototype.hasOwnProperty = function(prop) {
-		var proto = this.__proto__ || this.constructor.prototype;
-		return (prop in this) && (!(prop in proto) || proto[prop] !== this[prop]);
-	}
-    /*jshint +W001, +W103 */
 
-})(Holder, window);
\ No newline at end of file
+})(function(fn, name, global) {
+	var isAMD = (typeof define === 'function' && define.amd);
+	var isNode = (typeof exports === 'object');
+	var isWeb = !isNode;
+
+	if (isAMD) {
+		define(fn);
+	} else {
+		//todo: npm/browserify registration
+		global[name] = fn;
+	}
+}, this);
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js
index d1608e37ffa9..e6a051d0d1d3 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js
@@ -1,4 +1,4 @@
-/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
-if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
-},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
\ No newline at end of file
+/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
+return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)
+}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php
index cc9e8eac0cac..223b50c3149b 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php
index f4c37e079fb8..b424b124463e 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
@@ -206,7 +171,11 @@ public function addDirectory($name)
     public function addFile($name, array $coverageData, array $testData, $cacheTokens)
     {
         $file = new PHP_CodeCoverage_Report_Node_File(
-            $name, $this, $coverageData, $testData, $cacheTokens
+            $name,
+            $this,
+            $coverageData,
+            $testData,
+            $cacheTokens
         );
 
         $this->children[] = $file;
@@ -260,7 +229,8 @@ public function getClasses()
 
             foreach ($this->children as $child) {
                 $this->classes = array_merge(
-                    $this->classes, $child->getClasses()
+                    $this->classes,
+                    $child->getClasses()
                 );
             }
         }
@@ -280,7 +250,8 @@ public function getTraits()
 
             foreach ($this->children as $child) {
                 $this->traits = array_merge(
-                    $this->traits, $child->getTraits()
+                    $this->traits,
+                    $child->getTraits()
                 );
             }
         }
@@ -300,7 +271,8 @@ public function getFunctions()
 
             foreach ($this->children as $child) {
                 $this->functions = array_merge(
-                    $this->functions, $child->getFunctions()
+                    $this->functions,
+                    $child->getFunctions()
                 );
             }
         }
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php
index 45ea9fdf3131..6f0dcb287527 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
@@ -150,7 +115,8 @@ public function __construct($name, PHP_CodeCoverage_Report_Node $parent, array $
     {
         if (!is_bool($cacheTokens)) {
             throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1, 'boolean'
+                1,
+                'boolean'
             );
         }
 
@@ -408,20 +374,14 @@ protected function calculateStatistics()
                 // Start line of a class.
                 if (isset($this->startLines[$lineNumber]['className'])) {
                     $currentClass = &$this->startLines[$lineNumber];
-                }
-
-                // Start line of a trait.
-                else if (isset($this->startLines[$lineNumber]['traitName'])) {
+                } // Start line of a trait.
+                elseif (isset($this->startLines[$lineNumber]['traitName'])) {
                     $currentTrait = &$this->startLines[$lineNumber];
-                }
-
-                // Start line of a method.
-                else if (isset($this->startLines[$lineNumber]['methodName'])) {
+                } // Start line of a method.
+                elseif (isset($this->startLines[$lineNumber]['methodName'])) {
                     $currentMethod = &$this->startLines[$lineNumber];
-                }
-
-                // Start line of a function.
-                else if (isset($this->startLines[$lineNumber]['functionName'])) {
+                } // Start line of a function.
+                elseif (isset($this->startLines[$lineNumber]['functionName'])) {
                     $currentFunction = &$this->startLines[$lineNumber];
                 }
             }
@@ -471,20 +431,14 @@ protected function calculateStatistics()
                 // End line of a class.
                 if (isset($this->endLines[$lineNumber]['className'])) {
                     unset($currentClass);
-                }
-
-                // End line of a trait.
-                else if (isset($this->endLines[$lineNumber]['traitName'])) {
+                } // End line of a trait.
+                elseif (isset($this->endLines[$lineNumber]['traitName'])) {
                     unset($currentTrait);
-                }
-
-                // End line of a method.
-                else if (isset($this->endLines[$lineNumber]['methodName'])) {
+                } // End line of a method.
+                elseif (isset($this->endLines[$lineNumber]['methodName'])) {
                     unset($currentMethod);
-                }
-
-                // End line of a function.
-                else if (isset($this->endLines[$lineNumber]['functionName'])) {
+                } // End line of a function.
+                elseif (isset($this->endLines[$lineNumber]['functionName'])) {
                     unset($currentFunction);
                 }
             }
@@ -500,7 +454,8 @@ protected function calculateStatistics()
                 }
 
                 $method['crap'] = $this->crap(
-                    $method['ccn'], $method['coverage']
+                    $method['ccn'],
+                    $method['coverage']
                 );
 
                 $trait['ccn'] += $method['ccn'];
@@ -518,7 +473,8 @@ protected function calculateStatistics()
             }
 
             $trait['crap'] = $this->crap(
-                $trait['ccn'], $trait['coverage']
+                $trait['ccn'],
+                $trait['coverage']
             );
         }
 
@@ -532,7 +488,8 @@ protected function calculateStatistics()
                 }
 
                 $method['crap'] = $this->crap(
-                    $method['ccn'], $method['coverage']
+                    $method['ccn'],
+                    $method['coverage']
                 );
 
                 $class['ccn'] += $method['ccn'];
@@ -550,7 +507,8 @@ protected function calculateStatistics()
             }
 
             $class['crap'] = $this->crap(
-                $class['ccn'], $class['coverage']
+                $class['ccn'],
+                $class['coverage']
             );
         }
     }
@@ -697,7 +655,8 @@ protected function crap($ccn, $coverage)
         }
 
         return sprintf(
-            '%01.2F', pow($ccn, 2) * pow(1 - $coverage/100, 3) + $ccn
+            '%01.2F',
+            pow($ccn, 2) * pow(1 - $coverage/100, 3) + $ccn
         );
     }
 }
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php
index bbfbede3eb2b..e9cdbfd49549 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php
index 50c534755596..dfcc43dae7a7 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -50,7 +15,7 @@
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     uyga <iamuyga@gmail.com>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php
index cec9db96b8a3..1f747098ac2f 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -51,7 +16,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
@@ -192,8 +157,9 @@ public function process(PHP_CodeCoverage $coverage, $showColors = false)
                 $classMethods           = 0;
 
                 foreach ($class['methods'] as $method) {
-                    if ($method['executableLines'] == 0)
+                    if ($method['executableLines'] == 0) {
                         continue;
+                    }
 
                     $classMethods++;
                     $classStatements        += $method['executableLines'];
@@ -231,7 +197,6 @@ public function process(PHP_CodeCoverage $coverage, $showColors = false)
         foreach ($classCoverage as $fullQualifiedPath => $classInfo) {
             if ($classInfo['statementsCovered'] != 0 ||
                 $this->showUncoveredFiles) {
-
                 if ($showColors) {
                     $methodColor = $this->getCoverageColor($classInfo['methodsCovered'], $classInfo['methodCount']);
                     $linesColor  = $this->getCoverageColor($classInfo['statementsCovered'], $classInfo['statementCount']);
@@ -251,7 +216,8 @@ public function process(PHP_CodeCoverage $coverage, $showColors = false)
     protected function getCoverageColor($numberOfCoveredElements, $totalNumberOfElements)
     {
         $coverage = PHP_CodeCoverage_Util::percent(
-            $numberOfCoveredElements, $totalNumberOfElements
+            $numberOfCoveredElements,
+            $totalNumberOfElements
         );
 
         if ($coverage > $this->highLowerBound) {
@@ -268,7 +234,10 @@ protected function printCoverageCounts($numberOfCoveredElements, $totalNumberOfE
         $format = '%' . $presicion . 's';
 
         return PHP_CodeCoverage_Util::percent(
-            $numberOfCoveredElements, $totalNumberOfElements, true, true
+            $numberOfCoveredElements,
+            $totalNumberOfElements,
+            true,
+            true
         ) .
         ' (' . sprintf($format, $numberOfCoveredElements) . '/' .
         sprintf($format, $totalNumberOfElements) . ')';
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php
index 7f5a773acb78..52380e6fcb94 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php
index 50aa60759e39..d73d4ce1578c 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php
index 2548d465d978..4ea6a45d4a69 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -77,7 +42,8 @@ public function getTotals()
         if (!$totalsContainer) {
             $totalsContainer = $this->contextNode->appendChild(
                 $this->dom->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0', 'totals'
+                    'http://schema.phpunit.de/coverage/1.0',
+                    'totals'
                 )
             );
         }
@@ -88,20 +54,23 @@ public function getTotals()
     public function getLineCoverage($line)
     {
         $coverage = $this->contextNode->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0', 'coverage'
+            'http://schema.phpunit.de/coverage/1.0',
+            'coverage'
         )->item(0);
 
         if (!$coverage) {
             $coverage = $this->contextNode->appendChild(
                 $this->dom->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0', 'coverage'
+                    'http://schema.phpunit.de/coverage/1.0',
+                    'coverage'
                 )
             );
         }
 
         $lineNode = $coverage->appendChild(
             $this->dom->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0', 'line'
+                'http://schema.phpunit.de/coverage/1.0',
+                'line'
             )
         );
 
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php
index 75dc0827886b..4ce812215768 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php
index 416d3d531155..7d234fa0bc29 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php
index 5892e4a3e795..74c9ccf8771c 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -60,7 +25,8 @@ public function __construct($name)
         $this->dom->loadXML('<?xml version="1.0" ?><phpunit xmlns="http://schema.phpunit.de/coverage/1.0"><file /></phpunit>');
 
         $this->contextNode = $this->dom->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0', 'file'
+            'http://schema.phpunit.de/coverage/1.0',
+            'file'
         )->item(0);
 
         $this->setName($name);
@@ -80,7 +46,8 @@ public function getFunctionObject($name)
     {
         $node = $this->contextNode->appendChild(
             $this->dom->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0', 'function'
+                'http://schema.phpunit.de/coverage/1.0',
+                'function'
             )
         );
 
@@ -101,7 +68,8 @@ private function getUnitObject($tagName, $name)
     {
         $node = $this->contextNode->appendChild(
             $this->dom->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0', $tagName
+                'http://schema.phpunit.de/coverage/1.0',
+                $tagName
             )
         );
 
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php
index 6bf7c233eebd..2848ef53fcf4 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -86,13 +51,15 @@ public function setCrap($crap)
     public function setPackage($full, $package, $sub, $category)
     {
         $node = $this->contextNode->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0', 'package'
+            'http://schema.phpunit.de/coverage/1.0',
+            'package'
         )->item(0);
 
         if (!$node) {
             $node = $this->contextNode->appendChild(
                 $this->contextNode->ownerDocument->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0', 'package'
+                    'http://schema.phpunit.de/coverage/1.0',
+                    'package'
                 )
             );
         }
@@ -106,13 +73,15 @@ public function setPackage($full, $package, $sub, $category)
     public function setNamespace($namespace)
     {
         $node = $this->contextNode->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0', 'namespace'
+            'http://schema.phpunit.de/coverage/1.0',
+            'namespace'
         )->item(0);
 
         if (!$node) {
             $node = $this->contextNode->appendChild(
                 $this->contextNode->ownerDocument->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0', 'namespace'
+                    'http://schema.phpunit.de/coverage/1.0',
+                    'namespace'
                 )
             );
         }
@@ -124,7 +93,8 @@ public function addMethod($name)
     {
         $node = $this->contextNode->appendChild(
             $this->contextNode->ownerDocument->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0', 'method'
+                'http://schema.phpunit.de/coverage/1.0',
+                'method'
             )
         );
 
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php
index aaecb0be60b3..1e8daa589f33 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -92,7 +57,8 @@ public function getTotals()
         if (!$totalsContainer) {
             $totalsContainer = $this->getContextNode()->appendChild(
                 $this->dom->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0', 'totals'
+                    'http://schema.phpunit.de/coverage/1.0',
+                    'totals'
                 )
             );
         }
@@ -103,7 +69,8 @@ public function getTotals()
     public function addDirectory($name)
     {
         $dirNode = $this->getDom()->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0', 'directory'
+            'http://schema.phpunit.de/coverage/1.0',
+            'directory'
         );
 
         $dirNode->setAttribute('name', $name);
@@ -115,7 +82,8 @@ public function addDirectory($name)
     public function addFile($name, $href)
     {
         $fileNode = $this->getDom()->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0', 'file'
+            'http://schema.phpunit.de/coverage/1.0',
+            'file'
         );
 
         $fileNode->setAttribute('name', $name);
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php
index fd25a964797f..e7ae22514523 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -67,7 +32,8 @@ private function init()
 
         $this->setContextNode(
             $dom->getElementsByTagNameNS(
-                'http://schema.phpunit.de/coverage/1.0', 'project'
+                'http://schema.phpunit.de/coverage/1.0',
+                'project'
             )->item(0)
         );
     }
@@ -80,13 +46,15 @@ private function setProjectName($name)
     public function getTests()
     {
         $testsNode = $this->getContextNode()->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0', 'tests'
+            'http://schema.phpunit.de/coverage/1.0',
+            'tests'
         )->item(0);
 
         if (!$testsNode) {
             $testsNode = $this->getContextNode()->appendChild(
                 $this->getDom()->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0', 'tests'
+                    'http://schema.phpunit.de/coverage/1.0',
+                    'tests'
                 )
             );
         }
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php
index 85bcd1eb2bfe..c689bc1f5301 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -74,7 +39,8 @@ public function addTest($test, $result)
     {
         $node = $this->contextNode->appendChild(
             $this->contextNode->ownerDocument->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0', 'test'
+                'http://schema.phpunit.de/coverage/1.0',
+                'test'
             )
         );
         $node->setAttribute('name', $test);
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php
index 8e8bb8923ab2..fdc84ca4259d 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @category   PHP
  * @package    CodeCoverage
  * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 2.0.0
@@ -90,23 +55,29 @@ public function __construct(DOMElement $container)
         $dom             = $container->ownerDocument;
 
         $this->linesNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0', 'lines')
+            'http://schema.phpunit.de/coverage/1.0',
+            'lines'
+        )
         ;
 
         $this->methodsNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0', 'methods'
+            'http://schema.phpunit.de/coverage/1.0',
+            'methods'
         );
 
         $this->functionsNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0', 'functions'
+            'http://schema.phpunit.de/coverage/1.0',
+            'functions'
         );
 
         $this->classesNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0', 'classes'
+            'http://schema.phpunit.de/coverage/1.0',
+            'classes'
         );
 
         $this->traitsNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0', 'traits'
+            'http://schema.phpunit.de/coverage/1.0',
+            'traits'
         );
 
         $container->appendChild($this->linesNode);
@@ -129,7 +100,8 @@ public function setNumLines($loc, $cloc, $ncloc, $executable, $executed)
         $this->linesNode->setAttribute('executable', $executable);
         $this->linesNode->setAttribute('executed', $executed);
         $this->linesNode->setAttribute(
-            'percent', PHP_CodeCoverage_Util::percent($executed,$executable, true)
+            'percent',
+            PHP_CodeCoverage_Util::percent($executed, $executable, true)
         );
     }
 
@@ -138,7 +110,8 @@ public function setNumClasses($count, $tested)
         $this->classesNode->setAttribute('count', $count);
         $this->classesNode->setAttribute('tested', $tested);
         $this->classesNode->setAttribute(
-            'percent', PHP_CodeCoverage_Util::percent($tested,$count, true)
+            'percent',
+            PHP_CodeCoverage_Util::percent($tested, $count, true)
         );
     }
 
@@ -147,7 +120,8 @@ public function setNumTraits($count, $tested)
         $this->traitsNode->setAttribute('count', $count);
         $this->traitsNode->setAttribute('tested', $tested);
         $this->traitsNode->setAttribute(
-            'percent', PHP_CodeCoverage_Util::percent($tested,$count, true)
+            'percent',
+            PHP_CodeCoverage_Util::percent($tested, $count, true)
         );
     }
 
@@ -156,7 +130,8 @@ public function setNumMethods($count, $tested)
         $this->methodsNode->setAttribute('count', $count);
         $this->methodsNode->setAttribute('tested', $tested);
         $this->methodsNode->setAttribute(
-            'percent', PHP_CodeCoverage_Util::percent($tested,$count, true)
+            'percent',
+            PHP_CodeCoverage_Util::percent($tested, $count, true)
         );
     }
 
@@ -165,7 +140,8 @@ public function setNumFunctions($count, $tested)
         $this->functionsNode->setAttribute('count', $count);
         $this->functionsNode->setAttribute('tested', $tested);
         $this->functionsNode->setAttribute(
-            'percent', PHP_CodeCoverage_Util::percent($tested,$count, true)
+            'percent',
+            PHP_CodeCoverage_Util::percent($tested, $count, true)
         );
     }
 }
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util.php
index f17904279285..2d5a8faa0b82 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php
index 6637a978d0d7..5fba9ca133bf 100644
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php
+++ b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.2.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -50,7 +15,7 @@
  * @category   PHP
  * @package    CodeCoverage
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.2.0
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/FilterTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/FilterTest.php
index 155f68941ec5..894cb187c170 100644
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/FilterTest.php
+++ b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/FilterTest.php
@@ -1,47 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 if (!defined('TEST_FILES_PATH')) {
@@ -59,7 +23,7 @@
  * @package    CodeCoverage
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/CloverTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/CloverTest.php
index b0933cac1ca7..a850bb582505 100644
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/CloverTest.php
+++ b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/CloverTest.php
@@ -1,47 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 if (!defined('TEST_FILES_PATH')) {
@@ -61,7 +25,7 @@
  * @package    CodeCoverage
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/FactoryTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/FactoryTest.php
index b0f4388561dc..b08b7a8df988 100644
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/FactoryTest.php
+++ b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/FactoryTest.php
@@ -1,47 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 if (!defined('TEST_FILES_PATH')) {
@@ -61,7 +25,7 @@
  * @package    CodeCoverage
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.1.0
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/UtilTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/UtilTest.php
index e3d8f9fc3a45..82ab7701949e 100644
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/UtilTest.php
+++ b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/UtilTest.php
@@ -1,47 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -51,7 +15,7 @@
  * @package    CodeCoverage
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php
index e167b1a8feb7..b5f012e4b107 100644
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php
+++ b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php
@@ -1,47 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 if (!defined('TEST_FILES_PATH')) {
@@ -63,7 +27,7 @@
  * @package    CodeCoverage
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-code-coverage/tests/TestCase.php b/core/vendor/phpunit/php-code-coverage/tests/TestCase.php
index 73ce71b99da4..2bfdb968cdeb 100644
--- a/core/vendor/phpunit/php-code-coverage/tests/TestCase.php
+++ b/core/vendor/phpunit/php-code-coverage/tests/TestCase.php
@@ -1,47 +1,11 @@
 <?php
-/**
- * PHP_CodeCoverage
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_CodeCoverage package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -51,7 +15,7 @@
  * @package    CodeCoverage
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/php-code-coverage
  * @since      Class available since Release 1.0.0
diff --git a/core/vendor/phpunit/php-file-iterator/ChangeLog.markdown b/core/vendor/phpunit/php-file-iterator/ChangeLog.markdown
deleted file mode 100644
index fd9ed1bfe5e7..000000000000
--- a/core/vendor/phpunit/php-file-iterator/ChangeLog.markdown
+++ /dev/null
@@ -1,31 +0,0 @@
-File_Iterator 1.3
-=================
-
-This is the list of changes for the File_Iterator 1.3 release series.
-
-File_Iterator 1.3.4
--------------------
-
-* Symlinks are now followed.
-
-File_Iterator 1.3.3
--------------------
-
-* No changes.
-
-File_Iterator 1.3.2
--------------------
-
-* No changes.
-
-File_Iterator 1.3.1
--------------------
-
-* Fixed infinite loop in `File_Iterator_Facade::getCommonPath()` for empty directories.
-
-File_Iterator 1.3.0
--------------------
-
-* Added `File_Iterator_Facade` for the most common use case.
-* Moved `File_Iterator_Factory::getFilesAsArray()` to `File_Iterator_Facade::getFilesAsArray()`.
-* `File_Iterator_Factory` is no longer static.
diff --git a/core/vendor/phpunit/php-file-iterator/ChangeLog.md b/core/vendor/phpunit/php-file-iterator/ChangeLog.md
new file mode 100644
index 000000000000..fa77cedb3b0f
--- /dev/null
+++ b/core/vendor/phpunit/php-file-iterator/ChangeLog.md
@@ -0,0 +1,10 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
+
+## [1.4.0] - 2015-04-02
+
+### Added
+
+* [Added support for wildcards (glob) in exclude](https://github.com/sebastianbergmann/php-file-iterator/pull/23)
+
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php b/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php
deleted file mode 100644
index 5a8c01aa68c3..000000000000
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/**
- * php-file-iterator
- *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.3.0
- */
-
-spl_autoload_register(
-  function ($class)
-  {
-      static $classes = NULL;
-      static $path = NULL;
-
-      if ($classes === NULL) {
-          $classes = array(
-            'file_iterator' => '/Iterator.php',
-            'file_iterator_facade' => '/Iterator/Facade.php',
-            'file_iterator_factory' => '/Iterator/Factory.php'
-          );
-
-          $path = dirname(dirname(__FILE__));
-      }
-
-      $cn = strtolower($class);
-
-      if (isset($classes[$cn])) {
-          require $path . $classes[$cn];
-      }
-  }
-);
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in b/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in
deleted file mode 100644
index 56da6c145a93..000000000000
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * php-file-iterator
- *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sb@sebastian-bergmann.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   File
- * @author    Sebastian Bergmann <sb@sebastian-bergmann.de>
- * @copyright 2009-2013 Sebastian Bergmann <sb@sebastian-bergmann.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.3.0
- */
-
-spl_autoload_register(
-  function ($class)
-  {
-      static $classes = NULL;
-      static $path = NULL;
-
-      if ($classes === NULL) {
-          $classes = array(
-            ___CLASSLIST___
-          );
-
-          $path = dirname(dirname(__FILE__));
-      }
-
-      $cn = strtolower($class);
-
-      if (isset($classes[$cn])) {
-          require $path . $classes[$cn];
-      }
-  }
-);
diff --git a/core/vendor/phpunit/php-file-iterator/LICENSE b/core/vendor/phpunit/php-file-iterator/LICENSE
index c392d412c4eb..6cccbbbfc347 100644
--- a/core/vendor/phpunit/php-file-iterator/LICENSE
+++ b/core/vendor/phpunit/php-file-iterator/LICENSE
@@ -1,6 +1,6 @@
 File_Iterator
 
-Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2009-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/php-file-iterator/README.markdown b/core/vendor/phpunit/php-file-iterator/README.markdown
deleted file mode 100644
index c8971c2d08be..000000000000
--- a/core/vendor/phpunit/php-file-iterator/README.markdown
+++ /dev/null
@@ -1,23 +0,0 @@
-File_Iterator
-=============
-
-Installation
-------------
-
-File_Iterator should be installed using the [PEAR Installer](http://pear.php.net/). This installer is the backbone of PEAR, which provides a distribution system for PHP packages, and is shipped with every release of PHP since version 4.3.0.
-
-The PEAR channel (`pear.phpunit.de`) that is used to distribute File_Iterator needs to be registered with the local PEAR environment:
-
-    sb@ubuntu ~ % pear channel-discover pear.phpunit.de
-    Adding Channel "pear.phpunit.de" succeeded
-    Discovery of channel "pear.phpunit.de" succeeded
-
-This has to be done only once. Now the PEAR Installer can be used to install packages from the PHPUnit channel:
-
-    sb@vmware ~ % pear install phpunit/File_Iterator
-    downloading File_Iterator-1.1.1.tgz ...
-    Starting to download File_Iterator-1.1.1.tgz (3,173 bytes)
-    ....done: 3,173 bytes
-    install ok: channel://pear.phpunit.de/File_Iterator-1.1.1
-
-After the installation you can find the File_Iterator source files inside your local PEAR directory; the path is usually `/usr/lib/php/File`.
diff --git a/core/vendor/phpunit/php-file-iterator/README.md b/core/vendor/phpunit/php-file-iterator/README.md
new file mode 100644
index 000000000000..ef2838870f3c
--- /dev/null
+++ b/core/vendor/phpunit/php-file-iterator/README.md
@@ -0,0 +1,12 @@
+# File_Iterator
+
+## Installation
+
+To add File_Iterator as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-file-iterator` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on File_Iterator 1.4:
+
+    {
+        "require": {
+            "phpunit/php-file-iterator": "~1.4"
+        }
+    }
+
diff --git a/core/vendor/phpunit/php-file-iterator/build.xml b/core/vendor/phpunit/php-file-iterator/build.xml
deleted file mode 100644
index 29d362fadc8f..000000000000
--- a/core/vendor/phpunit/php-file-iterator/build.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="File_Iterator" default="build">
- <property name="php" value="php"/>
- <property name="phpunit" value="phpunit"/>
-
- <target name="build"
-   depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpcb"/>
-
- <target name="build-parallel"
-   depends="prepare,lint,tools-parallel,phpcb"/>
-
- <target name="tools-parallel"
-         description="Run tools in parallel">
-  <parallel threadCount="2">
-   <sequential>
-    <antcall target="pdepend"/>
-    <antcall target="phpmd-ci"/>
-   </sequential>
-   <antcall target="phpcpd"/>
-   <antcall target="phpcs-ci"/>
-   <antcall target="phploc"/>
-  </parallel>
- </target>
-
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/build/api"/>
-  <delete dir="${basedir}/build/code-browser"/>
-  <delete dir="${basedir}/build/coverage"/>
-  <delete dir="${basedir}/build/logs"/>
-  <delete dir="${basedir}/build/pdepend"/>
- </target>
-
- <target name="prepare" depends="clean,phpab"
-         description="Prepare for build">
-  <mkdir dir="${basedir}/build/api"/>
-  <mkdir dir="${basedir}/build/code-browser"/>
-  <mkdir dir="${basedir}/build/coverage"/>
-  <mkdir dir="${basedir}/build/logs"/>
-  <mkdir dir="${basedir}/build/pdepend"/>
- </target>
-
- <target name="phpab" description="Generate autoloader scripts">
-  <exec executable="phpab">
-   <arg value="--output" />
-   <arg path="File/Iterator/Autoload.php" />
-   <arg value="--template" />
-   <arg path="File/Iterator/Autoload.php.in" />
-   <arg value="--indent" />
-   <arg value="            " />
-   <arg path="File" />
-  </exec>
- </target>
-
- <target name="lint">
-  <apply executable="${php}" failonerror="true">
-   <arg value="-l" />
-
-   <fileset dir="${basedir}/File">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-<!--
-   <fileset dir="${basedir}/Tests">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
--->
-  </apply>
- </target>
-
- <target name="phploc" description="Measure project size using PHPLOC">
-  <exec executable="phploc">
-   <arg value="--log-csv" />
-   <arg value="${basedir}/build/logs/phploc.csv" />
-   <arg path="${basedir}/File" />
-  </exec>
- </target>
-
- <target name="pdepend"
-         description="Calculate software metrics using PHP_Depend">
-  <exec executable="pdepend">
-   <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
-   <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
-   <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
-   <arg path="${basedir}/File" />
-  </exec>
- </target>
-
- <target name="phpmd"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/File" />
-   <arg value="text" />
-   <arg value="${basedir}/build/phpmd.xml" />
-  </exec>
- </target>
-
- <target name="phpmd-ci"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/File" />
-   <arg value="xml" />
-   <arg value="${basedir}/build/phpmd.xml" />
-   <arg value="--reportfile" />
-   <arg value="${basedir}/build/logs/pmd.xml" />
-  </exec>
- </target>
-
- <target name="phpcs"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs">
-   <arg value="--standard=${basedir}/build/PHPCS" />
-   <arg value="--extensions=php" />
-   <arg value="--ignore=Autoload.php" />
-   <arg path="${basedir}/File" />
-  </exec>
- </target>
-
- <target name="phpcs-ci"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs" output="/dev/null">
-   <arg value="--report=checkstyle" />
-   <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
-   <arg value="--standard=${basedir}/build/PHPCS" />
-   <arg value="--extensions=php" />
-   <arg value="--ignore=Autoload.php" />
-   <arg path="${basedir}/File" />
-  </exec>
- </target>
-
- <target name="phpcpd" description="Find duplicate code using PHPCPD">
-  <exec executable="phpcpd">
-   <arg value="--log-pmd" />
-   <arg value="${basedir}/build/logs/pmd-cpd.xml" />
-   <arg path="${basedir}/File" />
-  </exec>
- </target>
-
- <target name="phpunit" description="Run unit tests with PHPUnit">
-  <condition property="phpunit_cmd" value="${php} ${phpunit}" else="${phpunit}">
-   <not>
-    <equals arg1="${phpunit}" arg2="phpunit" />
-   </not>
-  </condition>
-
-  <exec executable="${phpunit_cmd}" failonerror="true"/>
- </target>
-
- <target name="phpcb"
-         description="Aggregate tool output with PHP_CodeBrowser">
-  <exec executable="phpcb">
-   <arg value="--log" />
-   <arg path="${basedir}/build/logs" />
-   <arg value="--source" />
-   <arg path="${basedir}/File" />
-   <arg value="--output" />
-   <arg path="${basedir}/build/code-browser" />
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php b/core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php
deleted file mode 100644
index bf9d520d3842..000000000000
--- a/core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class PHPCS_Sniffs_ControlStructures_ControlSignatureSniff extends PHP_CodeSniffer_Standards_AbstractPatternSniff
-{
-    public function __construct()
-    {
-        parent::__construct(true);
-    }
-
-    protected function getPatterns()
-    {
-        return array(
-          'do {EOL...} while (...);EOL',
-          'while (...) {EOL',
-          'for (...) {EOL',
-          'if (...) {EOL',
-          'foreach (...) {EOL',
-          '}EOLelse if (...) {EOL',
-          '}EOLelse {EOL',
-          'do {EOL',
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php b/core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php
deleted file mode 100644
index e91d6c6dd543..000000000000
--- a/core/vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class PHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff implements PHP_CodeSniffer_Sniff
-{
-    public function register()
-    {
-        return array(T_STRING_CONCAT);
-    }
-
-    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
-    {
-        $tokens = $phpcsFile->getTokens();
-
-        if ($tokens[($stackPtr - 1)]['code'] !== T_WHITESPACE ||
-            $tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) {
-
-            $phpcsFile->addError(
-              'Concatenation operator must be surrounded by whitespace',
-              $stackPtr
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-file-iterator/build/PHPCS/ruleset.xml b/core/vendor/phpunit/php-file-iterator/build/PHPCS/ruleset.xml
deleted file mode 100644
index 402f2140b598..000000000000
--- a/core/vendor/phpunit/php-file-iterator/build/PHPCS/ruleset.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="Sebastian">
- <description>Sebastian Bergmann's coding standard</description>
-
- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/>
- <rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/>
- <rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
- <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
- <rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
- <rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
-
- <rule ref="Generic.Commenting.Todo"/>
-
- <rule ref="Generic.ControlStructures.InlineControlStructure"/>
-
- <rule ref="Generic.Files.LineEndings"/>
-
- <rule ref="Generic.Formatting.DisallowMultipleStatements"/>
- <rule ref="Generic.Formatting.NoSpaceAfterCast"/>
-
- <rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/>
- <rule ref="PEAR.Functions.ValidDefaultValue"/>
-
- <rule ref="Generic.NamingConventions.ConstructorName"/>
- <rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
- <rule ref="PEAR.NamingConventions.ValidClassName"/>
-
- <rule ref="Generic.PHP.DisallowShortOpenTag"/>
- <rule ref="Generic.PHP.NoSilencedErrors"/>
- <rule ref="Generic.PHP.UpperCaseConstant"/>
-
- <rule ref="Generic.WhiteSpace.DisallowTabIndent"/>
- <rule ref="Generic.WhiteSpace.ScopeIndent"/>
- <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>
-</ruleset>
diff --git a/core/vendor/phpunit/php-file-iterator/build/phpmd.xml b/core/vendor/phpunit/php-file-iterator/build/phpmd.xml
deleted file mode 100644
index 23ecb8b0b631..000000000000
--- a/core/vendor/phpunit/php-file-iterator/build/phpmd.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<ruleset name="Sebastian"
-         xmlns="http://pmd.sf.net/ruleset/1.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
-  <description>Sebastian Bergmann's ruleset</description>
-
-  <rule ref="rulesets/codesize.xml/CyclomaticComplexity" />
-  <rule ref="rulesets/codesize.xml/NPathComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveMethodLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveParameterList" />
-
-  <rule ref="rulesets/design.xml/EvalExpression" />
-  <rule ref="rulesets/design.xml/ExitExpression" />
-  <rule ref="rulesets/design.xml/GotoStatement" />
-
-  <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
-
-  <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter" />
-  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" />
-</ruleset>
diff --git a/core/vendor/phpunit/php-file-iterator/composer.json b/core/vendor/phpunit/php-file-iterator/composer.json
index 1ddd5b88bb67..c6527943f10e 100644
--- a/core/vendor/phpunit/php-file-iterator/composer.json
+++ b/core/vendor/phpunit/php-file-iterator/composer.json
@@ -24,10 +24,13 @@
     },
     "autoload": {
         "classmap": [
-            "File/"
+            "src/"
         ]
     },
-    "include-path": [
-        ""
-    ]
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.4.x-dev"
+        }
+    }
 }
+
diff --git a/core/vendor/phpunit/php-file-iterator/package.xml b/core/vendor/phpunit/php-file-iterator/package.xml
deleted file mode 100644
index f6ca981b176a..000000000000
--- a/core/vendor/phpunit/php-file-iterator/package.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.4.10" version="2.0"
-  xmlns="http://pear.php.net/dtd/package-2.0"
-  xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
-                      http://pear.php.net/dtd/tasks-1.0.xsd
-                      http://pear.php.net/dtd/package-2.0
-                      http://pear.php.net/dtd/package-2.0.xsd">
- <name>File_Iterator</name>
- <channel>pear.phpunit.de</channel>
- <summary>FilterIterator implementation that filters files based on a list of suffixes.</summary>
- <description>FilterIterator implementation that filters files based on a list of suffixes.</description>
- <lead>
-  <name>Sebastian Bergmann</name>
-  <user>sb</user>
-  <email>sb@sebastian-bergmann.de</email>
-  <active>yes</active>
- </lead>
- <date>2013-10-10</date>
- <version>
-  <release>1.3.4</release>
-  <api>1.3.0</api>
- </version>
- <stability>
-  <release>stable</release>
-  <api>stable</api>
- </stability>
- <license>The BSD 3-Clause License</license>
- <notes>http://github.com/sebastianbergmann/php-file-iterator/tree</notes>
- <contents>
-  <dir name="/">
-   <dir name="File">
-    <dir name="Iterator">
-     <file baseinstalldir="/" name="Autoload.php" role="php">
-      <tasks:replace from="@package_version@" to="version" type="package-info" />
-     </file>
-     <file baseinstalldir="/" name="Facade.php" role="php">
-      <tasks:replace from="@package_version@" to="version" type="package-info" />
-     </file>
-     <file baseinstalldir="/" name="Factory.php" role="php">
-      <tasks:replace from="@package_version@" to="version" type="package-info" />
-     </file>
-    </dir>
-    <file baseinstalldir="/" name="Iterator.php" role="php">
-     <tasks:replace from="@package_version@" to="version" type="package-info" />
-    </file>
-   </dir>
-   <file baseinstalldir="/" name="ChangeLog.markdown" role="doc"/>
-   <file baseinstalldir="/" name="LICENSE" role="doc"/>
-   <file baseinstalldir="/" name="README.markdown" role="doc"/>
-  </dir>
- </contents>
- <dependencies>
-  <required>
-   <php>
-    <min>5.3.3</min>
-   </php>
-   <pearinstaller>
-    <min>1.9.4</min>
-   </pearinstaller>
-  </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php b/core/vendor/phpunit/php-file-iterator/src/Facade.php
similarity index 60%
rename from core/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php
rename to core/vendor/phpunit/php-file-iterator/src/Facade.php
index 2b846d09df50..cf73ba886782 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Facade.php
+++ b/core/vendor/phpunit/php-file-iterator/src/Facade.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * php-file-iterator
- *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the File_Iterator package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.3.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +15,7 @@
  * files is returned as an array.
  *
  * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php b/core/vendor/phpunit/php-file-iterator/src/Factory.php
similarity index 51%
rename from core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php
rename to core/vendor/phpunit/php-file-iterator/src/Factory.php
index 3c0166e08013..70fc66b97bbe 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php
+++ b/core/vendor/phpunit/php-file-iterator/src/Factory.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * php-file-iterator
- *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the File_Iterator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +14,7 @@
  * path.
  *
  * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
@@ -68,18 +35,8 @@ public function getFileIterator($paths, $suffixes = '', $prefixes = '', array $e
             $paths = array($paths);
         }
 
-        $_paths = array();
-
-        foreach ($paths as $path) {
-            if ($locals = glob($path, GLOB_ONLYDIR)) {
-                $_paths = array_merge($_paths, $locals);
-            } else {
-                $_paths[] = $path;
-            }
-        }
-
-        $paths = $_paths;
-        unset($_paths);
+        $paths   = $this->getPathsAfterResolvingWildcards($paths);
+        $exclude = $this->getPathsAfterResolvingWildcards($exclude);
 
         if (is_string($prefixes)) {
             if ($prefixes != '') {
@@ -117,4 +74,23 @@ public function getFileIterator($paths, $suffixes = '', $prefixes = '', array $e
 
         return $iterator;
     }
+
+    /**
+     * @param  array $paths
+     * @return array
+     */
+    protected function getPathsAfterResolvingWildcards(array $paths)
+    {
+        $_paths = array();
+
+        foreach ($paths as $path) {
+            if ($locals = glob($path, GLOB_ONLYDIR)) {
+                $_paths = array_merge($_paths, $locals);
+            } else {
+                $_paths[] = $path;
+            }
+        }
+
+        return $_paths;
+    }
 }
diff --git a/core/vendor/phpunit/php-file-iterator/File/Iterator.php b/core/vendor/phpunit/php-file-iterator/src/Iterator.php
similarity index 66%
rename from core/vendor/phpunit/php-file-iterator/File/Iterator.php
rename to core/vendor/phpunit/php-file-iterator/src/Iterator.php
index f898ef51a55b..53720e244f6a 100644
--- a/core/vendor/phpunit/php-file-iterator/File/Iterator.php
+++ b/core/vendor/phpunit/php-file-iterator/src/Iterator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * php-file-iterator
- *
- * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the File_Iterator package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   File
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -46,7 +13,7 @@
  * suffix(es). Hidden files and files from hidden directories are also filtered.
  *
  * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
diff --git a/core/vendor/phpunit/php-token-stream/LICENSE b/core/vendor/phpunit/php-token-stream/LICENSE
index 3138cf7a29b3..6a176fa0f341 100644
--- a/core/vendor/phpunit/php-token-stream/LICENSE
+++ b/core/vendor/phpunit/php-token-stream/LICENSE
@@ -1,6 +1,6 @@
 PHP_TokenStream
 
-Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2009-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/php-token-stream/composer.json b/core/vendor/phpunit/php-token-stream/composer.json
index 168f3dee51a7..dfde7299546b 100644
--- a/core/vendor/phpunit/php-token-stream/composer.json
+++ b/core/vendor/phpunit/php-token-stream/composer.json
@@ -28,7 +28,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.3-dev"
+            "dev-master": "1.4-dev"
         }
     }
 }
diff --git a/core/vendor/phpunit/php-token-stream/src/Token.php b/core/vendor/phpunit/php-token-stream/src/Token.php
index b9828e3651a6..91474992b160 100644
--- a/core/vendor/phpunit/php-token-stream/src/Token.php
+++ b/core/vendor/phpunit/php-token-stream/src/Token.php
@@ -1,51 +1,18 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * A PHP token.
  *
  * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
@@ -742,3 +709,15 @@ class PHP_Token_YIELD extends PHP_Token {}
 class PHP_Token_ELLIPSIS extends PHP_Token {}
 class PHP_Token_POW extends PHP_Token {}
 class PHP_Token_POW_EQUAL extends PHP_Token {}
+
+
+// Tokens introduced in HackLang
+class PHP_Token_TYPELIST_LT extends PHP_Token {}
+class PHP_Token_TYPELIST_GT extends PHP_Token {}
+class PHP_Token_TYPE extends PHP_Token {}
+class PHP_Token_SHAPE extends PHP_Token {}
+class PHP_Token_LAMBDA_OP extends PHP_Token {}
+class PHP_Token_LAMBDA_CP extends PHP_Token {}
+class PHP_Token_LAMBDA_ARROW extends PHP_Token {}
+class PHP_Token_IN extends PHP_Token {}
+class PHP_Token_JOIN extends PHP_Token {}
diff --git a/core/vendor/phpunit/php-token-stream/src/Token/Stream.php b/core/vendor/phpunit/php-token-stream/src/Token/Stream.php
index 654a782f1c71..e25cbe22aef4 100644
--- a/core/vendor/phpunit/php-token-stream/src/Token/Stream.php
+++ b/core/vendor/phpunit/php-token-stream/src/Token/Stream.php
@@ -1,51 +1,18 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * A stream of PHP tokens.
  *
  * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
diff --git a/core/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php b/core/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php
index f5ef61820e41..a80d41abc2f6 100644
--- a/core/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php
+++ b/core/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php
@@ -1,51 +1,18 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package   PHP_TokenStream
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since     File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * A caching factory for token stream objects.
  *
  * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version   Release: @package_version@
  * @link      http://github.com/sebastianbergmann/php-token-stream/tree
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php
index afcd1a1fade3..d2a64b650b1b 100644
--- a/core/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php
+++ b/core/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.2
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php
index 895529aba4d0..f1e508cf264a 100644
--- a/core/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php
+++ b/core/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php
index d43abaacf616..4f23c39d8f2e 100644
--- a/core/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php
+++ b/core/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php
index 440e1fa2c38e..1e4335129217 100644
--- a/core/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php
+++ b/core/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.2
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +15,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
index ebe1f6315628..56caede2afa9 100644
--- a/core/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
+++ b/core/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -50,7 +15,7 @@
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php
index 7a0bb7c3eae2..469f787261ea 100644
--- a/core/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php
+++ b/core/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/php-token-stream/tests/TokenTest.php b/core/vendor/phpunit/php-token-stream/tests/TokenTest.php
index b0b3d03b1cf2..67bf79a0553e 100644
--- a/core/vendor/phpunit/php-token-stream/tests/TokenTest.php
+++ b/core/vendor/phpunit/php-token-stream/tests/TokenTest.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * php-token-stream
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHP_TokenStream package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  * @package    PHP_TokenStream
  * @subpackage Tests
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/php-token-stream/
diff --git a/core/vendor/phpunit/phpunit-mock-objects/.travis.yml b/core/vendor/phpunit/phpunit-mock-objects/.travis.yml
index e536e651f3dd..127bb651df4b 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/.travis.yml
+++ b/core/vendor/phpunit/phpunit-mock-objects/.travis.yml
@@ -12,6 +12,7 @@ php:
   - 5.4
   - 5.5
   - 5.6
+  - 7.0
   - hhvm
 
 notifications:
diff --git a/core/vendor/phpunit/phpunit-mock-objects/LICENSE b/core/vendor/phpunit/phpunit-mock-objects/LICENSE
index 6c7e93b14fb1..3705d2be2f1a 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/LICENSE
+++ b/core/vendor/phpunit/phpunit-mock-objects/LICENSE
@@ -1,6 +1,6 @@
 PHPUnit_MockObject
 
-Copyright (c) 2002-2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/phpunit/phpunit-mock-objects/composer.json b/core/vendor/phpunit/phpunit-mock-objects/composer.json
index 87f270e8124d..7cbf44275674 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/composer.json
+++ b/core/vendor/phpunit/phpunit-mock-objects/composer.json
@@ -22,10 +22,10 @@
     "require": {
         "php": ">=5.3.3",
         "phpunit/php-text-template": "~1.2",
-        "doctrine/instantiator": "~1.0,>=1.0.1"
+        "doctrine/instantiator": "~1.0,>=1.0.2"
     },
     "require-dev": {
-        "phpunit/phpunit": "~4.3"
+        "phpunit/phpunit": "~4.4"
     },
     "suggest": {
         "ext-soap": "*"
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php
index 67c2b6c07245..c963a79cb298 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -52,7 +18,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php
index 9b83c1734c53..4a5be925388f 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -52,7 +18,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php
index 4acedd30ca28..4bc48d54b1cd 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php
index 3576a56faea2..f41c65ed8c8b 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php
index 7b5c70273eb2..83db918f2a0c 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +15,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php
index 2bd8849c714b..a9b406cc4b10 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php
index 156e0f800c15..89c08c618e20 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php
index a0cd1f30377e..2e341560a237 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php
@@ -1,51 +1,17 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 2.0.6
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
  * @since      Class available since Release 2.0.6
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php
index 8ce99ff2a8c7..4a3edb4a25be 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
  * @since      Interface available since Release 2.0.6
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php
index b13ab68568b5..3516fc04cc7a 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php
@@ -1,51 +1,17 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 2.0.6
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
  * @since      Class available since Release 2.0.6
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
index 8d9151c34f91..7b18cd00ec85 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 use Doctrine\Instantiator\Instantiator;
@@ -58,7 +24,7 @@ function trait_exists($traitname, $autoload = true)
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
@@ -369,8 +335,8 @@ interface_exists($originalClassName, $callAutoload)) {
             $reflector = new ReflectionClass($originalClassName);
             $methods   = $mockedMethods;
 
-            foreach ($reflector->getMethods() as $method) {
-                if ($method->isAbstract() && !in_array($method->getName(), $methods)) {
+            foreach ($reflector->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) {
+                if (!in_array($method->getName(), $methods)) {
                     $methods[] = $method->getName();
                 }
             }
@@ -578,7 +544,7 @@ public function generateClassFromWsdl($wsdlFile, $className, array $methods = ar
         }
 
         if ($this->soapLoaded) {
-            $options = array_merge($options, array('cache_wsdl'=>FALSE));
+            $options = array_merge($options, array('cache_wsdl' => WSDL_CACHE_NONE));
             $client   = new SoapClient($wsdlFile, $options);
             $_methods = array_unique($client->__getFunctions());
             unset($client);
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php
index 992b927a7ac4..9fe998c84744 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php
index 6cb98e707614..a8fdfd1dba56 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php
index 862367a0f367..6b570e695c99 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 use SebastianBergmann\Exporter\Exporter;
@@ -49,7 +15,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php
index ac407207ff09..e6627e131f71 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -51,7 +17,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php
index e02b2c29e81d..30da9b7ed0bd 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -50,7 +16,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php
index 219c0d02bb50..044350156f86 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -53,7 +19,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php
index cf066da8266c..8d0b00ef0418 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php
index e69b65c5f23e..ae6cc25e5353 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php
index 5c9368b8c1b1..e7b577c8fe49 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -53,7 +20,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php
index 7891a7b491b3..470cb29913e6 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php
index 0d3a8e8970ed..a4ffe2a8df0d 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -54,7 +20,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php
index 7723be67f66e..b8caca37d9f4 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 2.2.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php
index 5b4d36f21027..a2a93011482d 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -50,7 +16,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php
index b6fee24d4e92..3a015966208f 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 2.2.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php
index 848f420e2cb0..d98eb7689c5d 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -52,7 +18,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php
index 9a34516472bc..1548ab304dd5 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -50,7 +16,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php
index 8b9ec10dcba4..11fc4994d612 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -51,7 +17,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php
index ebd5c697a823..4922e6280800 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -51,7 +17,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php
index 3d0283ee07c1..fd8fa7acbf0b 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -51,7 +17,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php
index 3ff865567c82..f59c23d368ab 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    PHPUnit_MockObject
- * @author     Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @package    PHPUnit_MockObject
  * @author     Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
  * @since      File available since Release 1.0.0
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php
index 1fbfeb4d2b7b..5501762a9cc6 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -48,7 +14,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php
index ca8f26279b33..4e3d06eab32f 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -50,7 +16,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php
index 10563c187d2b..05c0faa051f4 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    PHPUnit_MockObject
- * @author     Patrick Müller <elias0@gmx.net>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @package    PHPUnit_MockObject
  * @author     Patrick Müller <elias0@gmx.net>
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php
index 1a4d476c550e..9203365346c1 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    PHPUnit_MockObject
- * @author     Oliver Schlicht <o.schlicht@bitExpert.de>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @package    PHPUnit_MockObject
  * @author     Oliver Schlicht <o.schlicht@bitExpert.de>
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php
index cfdd6b778baa..254c164c2fa4 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php
index 9ef71ef65eb9..9aea78ef426b 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php
index 68f6564c3664..c84f962a6ee8 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php
index a093abf1df1e..34318e60c224 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php
index b24bdb537e50..8cc34737e96f 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php
@@ -1,46 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kris Wallsmith <kris.wallsmith@gmail.com>
- * @copyright  2010 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +14,7 @@
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kris Wallsmith <kris.wallsmith@gmail.com>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php
index 36e82c667096..ddda8e52a45a 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.1.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php
index 21ccbf48ae31..376b7fe8e3da 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -47,7 +13,7 @@
  *
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php
index 045b85167347..8c0a08e74ddf 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php
@@ -100,7 +100,7 @@ public function testGetMockForAbstractClassExpectingInvalidArgumentException($cl
      * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
      * @expectedException PHPUnit_Framework_MockObject_RuntimeException
      */
-    public function testGetMockForAbstractClassAnstractClassDoesNotExist()
+    public function testGetMockForAbstractClassAbstractClassDoesNotExist()
     {
         $mock = $this->generator->getMockForAbstractClass('Tux');
     }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php
index c770e2a936f1..b5a6bb9c3418 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php
@@ -1,53 +1,18 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    PHPUnit_MockObject
- * @author     Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @package    PHPUnit_MockObject
  * @author     Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
  * @since      File available since Release 1.0.0
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php
index f3d8a7360244..6ad3fd0ba7f9 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      File available since Release 3.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
@@ -49,7 +15,7 @@
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Patrick Mueller <elias0@gmx.net>
  * @author     Frank Kleine <mikey@stubbles.net>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://www.phpunit.de/
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php
index 3e735211fbd8..829621fcfa4a 100644
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php
+++ b/core/vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php
@@ -1,51 +1,17 @@
 <?php
-/**
- * PHPUnit
- *
- * Copyright (c) 2010-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the PHPUnit_MockObject package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      File available since Release 2.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 /**
  * @package    PHPUnit_MockObject
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @version    Release: @package_version@
  * @link       http://www.phpunit.de/
diff --git a/core/vendor/phpunit/phpunit/.travis.yml b/core/vendor/phpunit/phpunit/.travis.yml
index 79b5a5abda92..61b7cc9b0111 100644
--- a/core/vendor/phpunit/phpunit/.travis.yml
+++ b/core/vendor/phpunit/phpunit/.travis.yml
@@ -14,9 +14,13 @@ matrix:
     - php: hhvm
     - php: hhvm-nightly
 
+sudo: false
+
+before_install:
+  - composer self-update
+
 install:
   - travis_retry composer install --no-interaction --prefer-source
-  - if [[ "$TRAVIS_PHP_VERSION" == hhvm* ]]; then echo -e '\nhhvm.libxml.ext_entity_whitelist = "file"' | sudo tee -a /etc/hhvm/php.ini; fi
 
 script:
   - ./phpunit
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.0.md b/core/vendor/phpunit/phpunit/ChangeLog-4.0.md
new file mode 100644
index 000000000000..705f2215b16a
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/ChangeLog-4.0.md
@@ -0,0 +1,115 @@
+# Changes in PHPUnit 4.0
+
+## PHPUnit 4.0.20
+
+* Fixed [#1242](https://github.com/sebastianbergmann/phpunit/issues/1242): `--self-update` uses OpenSSL API that is deprecated in PHP 5.6
+
+## PHPUnit 4.0.19
+
+* Fixed [#1193](https://github.com/sebastianbergmann/phpunit/issues/1193): Process isolation does not work correctly when PHPUnit is used from PHAR
+* Fixed a BC break related to comparing `DOMNode` objects that was introduced in PHPUnit 4.0.18
+
+## PHPUnit 4.0.18
+
+* Fixed [#1218](https://github.com/sebastianbergmann/phpunit/issues/1218): `--self-update` destroys symlink
+
+## PHPUnit 4.0.17
+
+* [Display a message that the PEAR installation method is no longer supported when PHPUnit was installed using the PEAR Installer](https://github.com/sebastianbergmann/phpunit/commit/70b02c6be0176ab8ad3d3c9ec97480556c5dd63b)
+
+## PHPUnit 4.0.16
+
+* [Fixed handling of the `--report-useless-tests`, `--strict-coverage`, `--disallow-test-output`, and `--enforce-time-limit` options](https://github.com/sebastianbergmann/phpunit/commit/38baa9670711adedfe44ef24a33b568f61f3f045)
+
+## PHPUnit 4.0.15
+
+* New release of PHPUnit as PHAR and PEAR package with updated dependencies
+
+## PHPUnit 4.0.14
+
+* New release of PHPUnit as PHAR and PEAR package with updated dependencies
+
+## PHPUnit 4.0.13
+
+* New release of PHPUnit as PHAR and PEAR package with updated dependencies
+
+## PHPUnit 4.0.12
+
+* [Use blacklist from PHP_CodeCoverage](https://github.com/sebastianbergmann/phpunit/commit/16152ba4b8d0104ce34f60cb71b2b982ba84c898)
+
+## PHPUnit 4.0.11
+
+* [Fixed unintended autoloader invokation triggered by the `@beforeClass` and `@afterClass` annotations](https://github.com/sebastianbergmann/phpunit/commit/f12e10fddc3ccbddb652a04d9036aeb5a6d54bff)
+
+## PHPUnit 4.0.10
+
+* New release of PHPUnit as PHAR and PEAR package with updated dependencies (most notably a [fix](https://github.com/sebastianbergmann/phpunit-mock-objects/commit/c5e6274b8f2bf983cf883bb375cf44f99aff200e) in the mock object generator that caused a [performance regression](https://github.com/sebastianbergmann/phpunit/issues/1187))
+
+## PHPUnit 4.0.9
+
+* The "No code coverage will be generated." message was displayed even when code coverage reporting was not requested
+* Optimized the search for the `@before`, `@after`, `@beforeClass` and `@afterClass` annotations
+* Optimized the usage of `SebastianBergmann\Environment\Runtime::canCollectCodeCoverage()`
+
+## PHPUnit 4.0.8
+
+* Fixed [#1186](https://github.com/sebastianbergmann/phpunit/issues/1186): `@before` and `@after` methods are not called in `@dataProvider` methods
+
+## PHPUnit 4.0.7
+
+* Removed dependency on `phpunit/dbunit` in `composer.json` that was unintentionally added in PHPUnit 4.0.6
+
+## PHPUnit 4.0.6
+
+* New release of PHPUnit as PHAR and PEAR package with updated dependencies
+
+## PHPUnit 4.0.5
+
+* New release of PHPUnit as PHAR and PEAR package with updated dependencies
+
+## PHPUnit 4.0.4
+
+* Fixed stacktrace filtering when PHPUnit is used from a PHAR
+
+## PHPUnit 4.0.3
+
+* New release of PHPUnit as PHAR and PEAR package with updated dependencies
+
+## PHPUnit 4.0.2
+
+*  Fixed an issue related to displaying PHPUnit's version number
+
+## PHPUnit 4.0.1
+
+* Fixed collection of code coverage data for tests that use a data provider
+
+## PHPUnit 4.0.0
+
+* Implemented #382: Added the `$options` parameter to `PHPUnit_Framework_TestCase::getMockFromWsdl()` for configuring the `SoapClient`
+* Implemented #628: Added `PHPUnit_Framework_Assert::countOf(), a shortcut to get a `PHPUnit_Framework_Constraint_Count` instance
+* Implemented #711: `coverage-text` now has an XML `showOnlySummary` option
+* Implemented #719: The `--stderr` switch now respects `--colors` and `--debug`
+* Implemented #746: Allow identity checking for non-object types in all asserts that depend on `TraversableContains`
+* Implemented #758: Show a proper stack trace when @expectedException fails due to a unexpected exception being thrown
+* Implemented #773: Recursive and repeated arrays are more gracefully when comparison differences are exported
+* Implemented #813: Added `@before`, `@after`, `@beforeClass` and `@afterClass` annotations
+* Implemented #834: Added the `@requires OS` annotation
+* Implemented #835: Printers that extend `PHPUnit_TextUI_ResultPrinter` should have similar construction
+* Implemented #838: Added a base test listener
+* Implemented #859: Added PHP label validation to attribute assertions
+* Implemented #869: Added support for the adjacent sibling selector (+) to `PHPUnit_Util_XML::findNodes()`
+* Implemented #871: Add Comparator for DateTime objects
+* Implemented #877: Added new HTML5 tags to `PHPUnit_Util_XML::findNodes()`
+* Added `--coverage-crap4j` switch to generate code coverage report in Crap4J XML format
+* `assertCount()`, `assertNotCount()`, `assertSameSize()`, and `assertNotSameSize()` now support all objects that implement the `Traversable` interface
+* A test will now fail in strict mode when it uses the `@covers` annotation and code that is not expected to be covered is executed
+* All relative paths in a configuration file are now resolved relative to that configuration file
+* Fixed #240: XML strings are escaped by removing invalid characters
+* Fixed #261: `setUp()` and `setUpBeforeClass()` are run before filters are applied
+* Fixed #541: Excluded groups are counted towards total number of tests being executed
+* Fixed #789: PHP INI settings would not be passed to child processes
+* Fixed #806: Array references are now properly displayed in error output
+* Fixed #808: Resources are now reported as `resource(13) of type (stream)` instead of `NULL`
+* Fixed #873: PHPUnit suppresses exceptions thrown outside of test case function
+* Fixed: `phpt` test cases now use the correct php binary when executed through wrapper scripts
+
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.1.md b/core/vendor/phpunit/phpunit/ChangeLog-4.1.md
new file mode 100644
index 000000000000..cf18a30c48a6
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/ChangeLog-4.1.md
@@ -0,0 +1,44 @@
+# Changes in PHPUnit 4.1
+
+## PHPUnit 4.1.6
+
+* Fixed [#1380](https://github.com/sebastianbergmann/phpunit/issues/1380): `assertMatch()` returns `Unexpected end tag : hr`
+* Fixed [#1390](https://github.com/sebastianbergmann/phpunit/issues/1390): Licensing issue with third-party components bundled in PHAR distribution
+
+## PHPUnit 4.1.5
+
+* Implemented [#1330](https://github.com/sebastianbergmann/phpunit/issues/1330): Allow non-ambiguous shortened long options
+* Fixed [#529](https://github.com/sebastianbergmann/phpunit/issues/529): Tests missed in execution when another test extends from it 
+* Fixed [#1149](https://github.com/sebastianbergmann/phpunit/issues/1149): Test swallows output buffer when run in a separate process
+* Fixed [#1336](https://github.com/sebastianbergmann/phpunit/issues/1336): Problem in process isolation with global variables that contain an object which contains a string which contains multiple backslashes
+* Fixed [#1337](https://github.com/sebastianbergmann/phpunit/issues/1337): Data Provider with `\` at the end of the name breaks with process isolation
+* Fixed [#1345](https://github.com/sebastianbergmann/phpunit/issues/1345): Process isolation blocks infinitely upon fatal error in child process
+* Fixed [#1354](https://github.com/sebastianbergmann/phpunit/issues/1354): PHPUnit test suite fails on Windows
+* Fixed [#1369](https://github.com/sebastianbergmann/phpunit/issues/1369): Performance of `TestSuite::addTestFile()` and missing documentation
+* Fixed [#1374](https://github.com/sebastianbergmann/phpunit/issues/1374): `tearDown()` is called despite unmet requirements
+
+## PHPUnit 4.1.4
+
+* Fixed [#1265](https://github.com/sebastianbergmann/phpunit/issues/1265): `PHPUnit_Runner_StandardTestSuiteLoader` could not be configured as loader
+* Fixed [#1311](https://github.com/sebastianbergmann/phpunit/issues/1311): Incomplete XML Schema for PHPUnit XML configuration file
+* Fixed [#1314](https://github.com/sebastianbergmann/phpunit/issues/1314): Bug in configuration parser
+
+## PHPUnit 4.1.3
+
+* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
+
+## PHPUnit 4.1.2
+
+* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
+
+## PHPUnit 4.1.1
+
+* Added `--selfupdate` alias for `--self-update`
+* Fixed the constructor argument for `SebastianBergmann\Version`
+* Improved the fix for [#1133](https://github.com/sebastianbergmann/phpunit/issues/1133)
+
+## PHPUnit 4.1.0
+
+* The code to compare PHP values for equality (in `assertEquals()`, for instance) has been factored out into a [separate component](https://github.com/sebastianbergmann/comparator)
+* [The mock object generator is now created lazily](https://github.com/sebastianbergmann/phpunit/pull/1165)
+
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.2.md b/core/vendor/phpunit/phpunit/ChangeLog-4.2.md
new file mode 100644
index 000000000000..2a8ae1771e37
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/ChangeLog-4.2.md
@@ -0,0 +1,31 @@
+# Changes in PHPUnit 4.2
+
+## PHPUnit 4.2.5
+
+* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
+
+## PHPUnit 4.2.4
+
+* Fixed [#1413](https://github.com/sebastianbergmann/phpunit/issues/1413): `assertCount()` hangs in infinite loop on HHVM
+
+## PHPUnit 4.2.3
+
+* Fixed [#1403](https://github.com/sebastianbergmann/phpunit/issues/1403): `phpunit --self-update` does not work
+
+## PHPUnit 4.2.2
+
+* Fixed [#1399](https://github.com/sebastianbergmann/phpunit/issues/1399): `enforceTimeLimit` configuration option is not handled
+
+## PHPUnit 4.2.1
+
+* Fixed [#1380](https://github.com/sebastianbergmann/phpunit/issues/1380): `assertMatch()` returns `Unexpected end tag : hr`
+* Fixed [#1390](https://github.com/sebastianbergmann/phpunit/issues/1390): Licensing issue with third-party components bundled in PHAR distribution
+
+## PHPUnit 4.2.0
+
+* Tests annotated with `@todo` will now be reported as risky when the `--disallow-todo-tests` option is used or `beStrictAboutTodoAnnotatedTests=true` is set in the configuration file
+* The `atLeast()` and `atMost()` invocation count matchers were added
+* The `assertTag()` and `assertSelect*()` assertion methods have been deprecated in favor of the [phpunit-dom-assertions](https://github.com/phpunit/phpunit-dom-assertions) extension; these methods will be removed in PHPUnit 5.0
+* `trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);` is used now to indicate that a PHPUnit API method is deprecated; the old "system" for deprecating methods has been removed
+* The PHP Archive (PHAR) distribution of PHPUnit can now be used as a library; `include()`ing or `require()`ing it will not execute the CLI test runner
+
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.3.md b/core/vendor/phpunit/phpunit/ChangeLog-4.3.md
new file mode 100644
index 000000000000..e9d4496321a4
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/ChangeLog-4.3.md
@@ -0,0 +1,32 @@
+# Changes in PHPUnit 4.3
+
+## PHPUnit 4.3.5
+
+* Merged [#1484](https://github.com/sebastianbergmann/phpunit/issues/1484): Removed `lazymap` from blacklist as it is not longer used
+* Merged [#1489](https://github.com/sebastianbergmann/phpunit/issues/1489): Do not send output from tests in process isolation when testing output
+
+## PHPUnit 4.3.4
+
+* Fixed [#1428](https://github.com/sebastianbergmann/phpunit/issues/1428): Issue with Composer dependencies
+* Fixed [#1447](https://github.com/sebastianbergmann/phpunit/issues/1447): PHPT tests treat line endings inconsistently
+
+## PHPUnit 4.3.3
+
+* Fixed [#1471](https://github.com/sebastianbergmann/phpunit/issues/1471): Output made while test is running is printed although `expectOutputString()` is used when an assertion fails
+
+## PHPUnit 4.3.2
+
+* Fixed [#1468](https://github.com/sebastianbergmann/phpunit/issues/1468): Incomplete and `@todo` annotated tests are counted twice
+
+## PHPUnit 4.3.1
+
+* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
+
+## PHPUnit 4.3.0
+
+* Merged [#1358](https://github.com/sebastianbergmann/phpunit/issues/1358): Implement `@expectedExceptionMessageRegExp` annotation
+* Merged [#1360](https://github.com/sebastianbergmann/phpunit/issues/1360): Allow a test to identify whether it runs in isolation
+* Fixed [#1216](https://github.com/sebastianbergmann/phpunit/issues/1216): Bootstrap does not have global variables set when `--bootstrap` is specified on commandline
+* Fixed [#1351](https://github.com/sebastianbergmann/phpunit/issues/1351): `TestResult` object contains serialized test class upon test failure/exception in process isolation
+* Fixed [#1437](https://github.com/sebastianbergmann/phpunit/issues/1437): Risky test messages mask failures 
+
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.4.md b/core/vendor/phpunit/phpunit/ChangeLog-4.4.md
new file mode 100644
index 000000000000..6b541c3f9959
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/ChangeLog-4.4.md
@@ -0,0 +1,32 @@
+# Changes in PHPUnit 4.4
+
+## PHPUnit 4.4.5
+
+* Fixed [#1592](https://github.com/sebastianbergmann/phpunit/issues/1592): Incorrect dependency information
+
+## PHPUnit 4.4.4
+
+* Fixed [#1587](https://github.com/sebastianbergmann/phpunit/issues/1587): Class `SebastianBergmann\Exporter\Context` not found
+
+## PHPUnit 4.4.3
+
+* New PHAR release due to updated dependencies
+
+## PHPUnit 4.4.2
+
+* Merged [#1567](https://github.com/sebastianbergmann/phpunit/issues/1567): `coverage-crap4j` missing in XSD for PHPUnit XML configuration
+* Merged [#1573](https://github.com/sebastianbergmann/phpunit/issues/1573): Updates for the XSD for PHPUnit XML configuration
+* Fixed [#1570](https://github.com/sebastianbergmann/phpunit/issues/1570): Test that prints output is marked as failure and not as risky when `--disallow-test-output` is used
+* Fixed `--stderr` with `--tap` or `--testdox` options
+
+## PHPUnit 4.4.1
+
+* Merged [#1528](https://github.com/sebastianbergmann/phpunit/issues/1528): Add `expectedCount()` to `toString()` return value
+
+## PHPUnit 4.4.0
+
+* Merged [#1371](https://github.com/sebastianbergmann/phpunit/issues/1371): Implement `assertArraySubset()` assertion
+* Merged [#1427](https://github.com/sebastianbergmann/phpunit/issues/1427): Improve failure output for tests when provided data is binary
+* Merged [#1439](https://github.com/sebastianbergmann/phpunit/issues/1439): Add support for `double` to `assertInternalType()`
+* Merged [#1458](https://github.com/sebastianbergmann/phpunit/issues/1458): Only enable colors when PHPUnit is run on a console (and output is not sent to a file)
+
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.5.md b/core/vendor/phpunit/phpunit/ChangeLog-4.5.md
new file mode 100644
index 000000000000..2b280da2d7f8
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/ChangeLog-4.5.md
@@ -0,0 +1,10 @@
+# Changes in PHPUnit 4.5
+
+## PHPUnit 4.5.0
+
+* Added out-of-the-box support for [Prophecy](https://github.com/phpspec/prophecy)
+* Implemented [#137](https://github.com/sebastianbergmann/phpunit/issues/137): Add support for variable number of tests shown per line in default result printer
+* Merged [#1478](https://github.com/sebastianbergmann/phpunit/issues/1478): Improve the performance of `PHPUnit_Framework_Constraint_IsEqual` (which is used by `assertEquals()`, for instance) for the most common case
+* Fixed [#1474](https://github.com/sebastianbergmann/phpunit/issues/1474): Allow the registration of custom comparators for `assertEquals()` et al. (again)
+* [Deprecated](https://github.com/sebastianbergmann/phpunit/commit/7abe7796f77b13fdf3cfc506fb987d6c2ab477f5) the `--strict` commandline option and the XML configuration's `strict` attribute
+
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.6.md b/core/vendor/phpunit/phpunit/ChangeLog-4.6.md
new file mode 100644
index 000000000000..7c0ea25c6dd9
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/ChangeLog-4.6.md
@@ -0,0 +1,26 @@
+# Changes in PHPUnit 4.6
+
+## PHPUnit 4.6.4
+
+* The default list of blacklisted classes is now always passed to PHP_CodeCoverage
+
+## PHPUnit 4.6.3
+
+* Updated the default list of blacklisted classes
+
+## PHPUnit 4.6.2
+
+* Fixed [#1667](https://github.com/sebastianbergmann/phpunit/issues/1667): Loading `src/Framework/Assert/Functions.php` by default causes collisions
+
+## PHPUnit 4.6.1
+
+* Fixed [#1665](https://github.com/sebastianbergmann/phpunit/issues/1665): PHPUnit 4.6.0 PHAR does not work when renamed to `phpunit`
+
+## PHPUnit 4.6.0
+
+* Added the `--strict-global-state` command-line option and the `beStrictAboutChangesToGlobalState` configuration setting for enabling a check that global variabes, super-global variables, and static attributes in user-defined classes are not modified during a test
+* Merged [#1527](https://github.com/sebastianbergmann/phpunit/issues/1527) and [#1529](https://github.com/sebastianbergmann/phpunit/issues/1529): Allow to define options for displaying colors
+* Merged [#1528](https://github.com/sebastianbergmann/phpunit/issues/1528): Improve message when `PHPUnit_Framework_Constraint_Count` is used with logical operators
+* Merged [#1537](https://github.com/sebastianbergmann/phpunit/issues/1537): Fix problem of `--stderr` with `--tap` and `--testdox`
+* Fixed [#1599](https://github.com/sebastianbergmann/phpunit/issues/1599): The PHAR build of PHPUnit no longer uses an autoloader to load PHPUnit's own classes and instead statically loads all classes on startup
+
diff --git a/core/vendor/phpunit/phpunit/README.md b/core/vendor/phpunit/phpunit/README.md
index c0c0d7ab4b17..585cc02d308a 100644
--- a/core/vendor/phpunit/phpunit/README.md
+++ b/core/vendor/phpunit/phpunit/README.md
@@ -3,8 +3,8 @@
 PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.
 
 [![Latest Stable Version](https://poser.pugx.org/phpunit/phpunit/v/stable.png)](https://packagist.org/packages/phpunit/phpunit)
-[![Build Status](https://travis-ci.org/sebastianbergmann/phpunit.png?branch=master)](https://travis-ci.org/sebastianbergmann/phpunit)
-[![Dependency Status](https://www.versioneye.com/php/phpunit:phpunit/dev-master/badge.png)](https://www.versioneye.com/php/phpunit:phpunit/dev-master)
+[![Build Status](https://travis-ci.org/sebastianbergmann/phpunit.svg?branch=4.6)](https://travis-ci.org/sebastianbergmann/phpunit)
+[![Dependency Status](https://www.versioneye.com/php/phpunit:phpunit/4.6/badge.png)](https://www.versioneye.com/php/phpunit:phpunit/dev-master)
 [![Reference Status](https://www.versioneye.com/php/phpunit:phpunit/reference_badge.svg)](https://www.versioneye.com/php/phpunit:phpunit/references)
 
 ## Installation
@@ -26,8 +26,6 @@ Alternatively, you may use [Composer](http://getcomposer.org/) to download and i
 
 Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects.
 
-The development of PHPUnit is discussed on the [dev@phpunit.de](mailto:dev-subscribe@phpunit.de) mailing list as well as on the [#phpunit channel on the Freenode IRC network](irc://irc.freenode.net/phpunit).
-
 ## List of Contributors
 
 Thanks to everyone who has contributed to PHPUnit! You can find a detailed list of contributors on every PHPUnit related package on GitHub. This list shows only the major components:
@@ -36,7 +34,7 @@ Thanks to everyone who has contributed to PHPUnit! You can find a detailed list
 * [PHP_CodeCoverage](https://github.com/sebastianbergmann/php-code-coverage/graphs/contributors)
 * [PHPUnit_MockObject](https://github.com/sebastianbergmann/phpunit-mock-objects/graphs/contributors)
 
-A very special thanks to everyone who has contributed to the documentation and helps maintaining the translations:
+A very special thanks to everyone who has contributed to the documentation and helps maintain the translations:
 
 * [PHPUnit Documentation](https://github.com/sebastianbergmann/phpunit-documentation/graphs/contributors)
 
diff --git a/core/vendor/phpunit/phpunit/build.xml b/core/vendor/phpunit/phpunit/build.xml
index 482e49915dc4..32ee1a0a2a9f 100644
--- a/core/vendor/phpunit/phpunit/build.xml
+++ b/core/vendor/phpunit/phpunit/build.xml
@@ -223,7 +223,7 @@
 
   <copy file="${basedir}/vendor/phpunit/php-file-iterator/LICENSE" tofile="${basedir}/build/phar/php-file-iterator/LICENSE"/>
   <copy todir="${basedir}/build/phar/php-file-iterator">
-   <fileset dir="${basedir}/vendor/phpunit/php-file-iterator/File">
+   <fileset dir="${basedir}/vendor/phpunit/php-file-iterator/src">
     <include name="**/*.php" />
     <exclude name="**/Autoload.*" />
    </fileset>
@@ -289,6 +289,14 @@
    </fileset>
   </copy>
 
+  <copy file="${basedir}/vendor/sebastian/recursion-context/LICENSE" tofile="${basedir}/build/phar/sebastian-recursion-context/LICENSE"/>
+  <copy todir="${basedir}/build/phar/sebastian-recursion-context">
+   <fileset dir="${basedir}/vendor/sebastian/recursion-context/src">
+    <include name="**/*.php" />
+    <exclude name="**/autoload.php" />
+   </fileset>
+  </copy>
+
   <copy file="${basedir}/vendor/sebastian/global-state/LICENSE" tofile="${basedir}/build/phar/sebastian-global-state/LICENSE"/>
   <copy todir="${basedir}/build/phar/sebastian-global-state">
    <fileset dir="${basedir}/vendor/sebastian/global-state/src">
@@ -339,6 +347,20 @@
     <exclude name="**/Autoload.*" />
    </fileset>
   </copy>
+
+  <copy file="${basedir}/vendor/phpdocumentor/reflection-docblock/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-reflection-docblock/LICENSE"/>
+  <copy todir="${basedir}/build/phar/phpdocumentor-reflection-docblock">
+   <fileset dir="${basedir}/vendor/phpdocumentor/reflection-docblock/src">
+    <include name="**/*.php" />
+   </fileset>
+  </copy>
+
+  <copy file="${basedir}/vendor/phpspec/prophecy/LICENSE" tofile="${basedir}/build/phar/phpspec-prophecy/LICENSE"/>
+  <copy todir="${basedir}/build/phar/phpspec-prophecy">
+   <fileset dir="${basedir}/vendor/phpspec/prophecy/src">
+    <include name="**/*.php" />
+   </fileset>
+  </copy>
  </target>
 
  <target name="phar-build">
@@ -355,13 +377,12 @@
 
   <exec executable="phpab">
    <arg value="--all" />
+   <arg value="--static" />
    <arg value="--phar" />
    <arg value="--output" />
    <arg path="${basedir}/build/phpunit-${_version}.phar" />
    <arg value="--template" />
    <arg path="${basedir}/build/phar-autoload.php.in" />
-   <arg value="--indent" />
-   <arg value="            " />
    <arg path="${basedir}/build/phar" />
   </exec>
 
diff --git a/core/vendor/phpunit/phpunit/build/phar-autoload.php.in b/core/vendor/phpunit/phpunit/build/phar-autoload.php.in
index 62d8f4966dc9..c2b2d159f7ec 100644
--- a/core/vendor/phpunit/phpunit/build/phar-autoload.php.in
+++ b/core/vendor/phpunit/phpunit/build/phar-autoload.php.in
@@ -12,27 +12,10 @@ if (__FILE__ == realpath($GLOBALS['_SERVER']['SCRIPT_NAME'])) {
 define('__PHPUNIT_PHAR__', str_replace(DIRECTORY_SEPARATOR, '/', $phar));
 define('__PHPUNIT_PHAR_ROOT__', 'phar://___PHAR___');
 
-spl_autoload_register(
-  function ($class)
-  {
-      static $classes = NULL;
-
-      if ($classes === NULL) {
-          $classes = array(
-            ___CLASSLIST___
-          );
-      }
-
-      $class = strtolower($class);
-
-      if (isset($classes[$class])) {
-          require __PHPUNIT_PHAR_ROOT__ . $classes[$class];
-      }
-  }
-);
-
 Phar::mapPhar('___PHAR___');
 
+___FILELIST___
+
 if ($execute) {
     if (isset($_SERVER['argv'][1]) && $_SERVER['argv'][1] == '--manifest') {
         print file_get_contents(__PHPUNIT_PHAR_ROOT__ . '/manifest.txt');
diff --git a/core/vendor/phpunit/phpunit/build/phar-manifest.php b/core/vendor/phpunit/phpunit/build/phar-manifest.php
index 50608fb4f9bb..474686bb4254 100755
--- a/core/vendor/phpunit/phpunit/build/phar-manifest.php
+++ b/core/vendor/phpunit/phpunit/build/phar-manifest.php
@@ -25,4 +25,3 @@
 
     print "\n";
 }
-
diff --git a/core/vendor/phpunit/phpunit/composer.json b/core/vendor/phpunit/phpunit/composer.json
index 756e1ff143ff..f5f65b9aa53c 100644
--- a/core/vendor/phpunit/phpunit/composer.json
+++ b/core/vendor/phpunit/phpunit/composer.json
@@ -22,16 +22,17 @@
     },
     "require": {
         "php": ">=5.3.3",
-        "phpunit/php-file-iterator": "~1.3.2",
+        "phpunit/php-file-iterator": "~1.4",
         "phpunit/php-text-template": "~1.2",
-        "phpunit/php-code-coverage": "~2.0",
-        "phpunit/php-timer": "~1.0.2",
+        "phpunit/php-code-coverage": "~2.0,>=2.0.11",
+        "phpunit/php-timer": "~1.0",
         "phpunit/phpunit-mock-objects": "~2.3",
-        "symfony/yaml": "~2.0",
-        "sebastian/comparator": "~1.0",
-        "sebastian/diff": "~1.1",
-        "sebastian/environment": "~1.1",
-        "sebastian/exporter": "~1.0",
+        "phpspec/prophecy": "~1.3,>=1.3.1",
+        "symfony/yaml": "~2.1|~3.0",
+        "sebastian/comparator": "~1.1",
+        "sebastian/diff": "~1.2",
+        "sebastian/environment": "~1.2",
+        "sebastian/exporter": "~1.2",
         "sebastian/global-state": "~1.0",
         "sebastian/version": "~1.0",
         "ext-dom": "*",
@@ -65,7 +66,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "4.4.x-dev"
+            "dev-master": "4.6.x-dev"
         }
     }
 }
diff --git a/core/vendor/phpunit/phpunit/phpunit.xsd b/core/vendor/phpunit/phpunit/phpunit.xsd
index 63078222d254..9c723eccf09f 100644
--- a/core/vendor/phpunit/phpunit/phpunit.xsd
+++ b/core/vendor/phpunit/phpunit/phpunit.xsd
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <xs:annotation>
-    <xs:documentation source="https://phpunit.de/manual/4.4/en/appendixes.configuration.html">
-      This Schema file defines the rules by which the XML configuration file of PHPUnit 4.4 may be structured.
+    <xs:documentation source="https://phpunit.de/manual/4.6/en/appendixes.configuration.html">
+      This Schema file defines the rules by which the XML configuration file of PHPUnit 4.6 may be structured.
     </xs:documentation>
     <xs:appinfo source="http://www.phpunit.de/manual/current/en/appendixes.configuration.html"/>
   </xs:annotation>
@@ -190,6 +190,7 @@
     <xs:attribute name="bootstrap" type="xs:anyURI"/>
     <xs:attribute name="cacheTokens" type="xs:boolean"/>
     <xs:attribute name="colors" type="xs:boolean" default="false"/>
+    <xs:attribute name="columns" type="xs:integer" default="80"/>
     <xs:attribute name="convertErrorsToExceptions" type="xs:boolean" default="true"/>
     <xs:attribute name="convertNoticesToExceptions" type="xs:boolean" default="true"/>
     <xs:attribute name="convertWarningsToExceptions" type="xs:boolean" default="true"/>
@@ -207,6 +208,7 @@
     <xs:attribute name="beStrictAboutOutputDuringTests" type="xs:boolean" default="false"/>
     <xs:attribute name="beStrictAboutTestSize" type="xs:boolean" default="false"/>
     <xs:attribute name="beStrictAboutTodoAnnotatedTests" type="xs:boolean" default="false"/>
+    <xs:attribute name="beStrictAboutChangesToGlobalState" type="xs:boolean" default="false"/>
     <xs:attribute name="checkForUnintentionallyCoveredCode" type="xs:boolean" default="false"/>
     <xs:attribute name="strict" type="xs:boolean" default="false"/>
     <xs:attribute name="testSuiteLoaderClass" type="xs:string" default="PHPUnit_Runner_StandardTestSuiteLoader"/>
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/GroupTestSuite.php b/core/vendor/phpunit/phpunit/src/Extensions/GroupTestSuite.php
index 9cf23b2caf8e..7b91e7344ca4 100644
--- a/core/vendor/phpunit/phpunit/src/Extensions/GroupTestSuite.php
+++ b/core/vendor/phpunit/phpunit/src/Extensions/GroupTestSuite.php
@@ -48,7 +48,8 @@ public function __construct(PHPUnit_Framework_TestSuite $suite, array $groups)
         foreach ($tests as $test) {
             if ($test instanceof PHPUnit_Framework_TestCase) {
                 $testGroups = PHPUnit_Util_Test::getGroups(
-                    get_class($test), $test->getName(false)
+                    get_class($test),
+                    $test->getName(false)
                 );
 
                 foreach ($groups as $group) {
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/RepeatedTest.php b/core/vendor/phpunit/phpunit/src/Extensions/RepeatedTest.php
index 0e05af7e2868..d2dd44637c20 100644
--- a/core/vendor/phpunit/phpunit/src/Extensions/RepeatedTest.php
+++ b/core/vendor/phpunit/phpunit/src/Extensions/RepeatedTest.php
@@ -60,7 +60,8 @@ public function __construct(PHPUnit_Framework_Test $test, $timesRepeat = 1, $pro
             $this->timesRepeat = $timesRepeat;
         } else {
             throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2, 'positive integer'
+                2,
+                'positive integer'
             );
         }
 
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Assert.php b/core/vendor/phpunit/phpunit/src/Framework/Assert.php
index 9543893d154f..54cdd5302d74 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/Assert.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/Assert.php
@@ -68,13 +68,15 @@ public static function assertArraySubset($subset, $array, $strict = false, $mess
     {
         if (!is_array($subset)) {
             throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1, 'array or ArrayAccess'
+                1,
+                'array or ArrayAccess'
             );
         }
 
         if (!is_array($array)) {
             throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2, 'array or ArrayAccess'
+                2,
+                'array or ArrayAccess'
             );
         }
 
@@ -985,8 +987,8 @@ public static function assertClassHasAttribute($attributeName, $className, $mess
             throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
         }
 
-        if (!is_string($className) || !class_exists($className, false)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name');
+        if (!is_string($className) || !class_exists($className)) {
+            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
         }
 
         $constraint = new PHPUnit_Framework_Constraint_ClassHasAttribute(
@@ -1014,8 +1016,8 @@ public static function assertClassNotHasAttribute($attributeName, $className, $m
             throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
         }
 
-        if (!is_string($className) || !class_exists($className, false)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name');
+        if (!is_string($className) || !class_exists($className)) {
+            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
         }
 
         $constraint = new PHPUnit_Framework_Constraint_Not(
@@ -1043,8 +1045,8 @@ public static function assertClassHasStaticAttribute($attributeName, $className,
             throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
         }
 
-        if (!is_string($className) || !class_exists($className, false)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name');
+        if (!is_string($className) || !class_exists($className)) {
+            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
         }
 
         $constraint = new PHPUnit_Framework_Constraint_ClassHasStaticAttribute(
@@ -1072,8 +1074,8 @@ public static function assertClassNotHasStaticAttribute($attributeName, $classNa
             throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
         }
 
-        if (!is_string($className) || !class_exists($className, false)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name');
+        if (!is_string($className) || !class_exists($className)) {
+            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
         }
 
         $constraint = new PHPUnit_Framework_Constraint_Not(
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php
index f520c8e10152..cdd06021ee22 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php
@@ -47,7 +47,7 @@ protected function matches($other)
         $match = PHPUnit_Util_Regex::pregMatchSafe($this->expectedMessageRegExp, $other->getMessage());
 
         if (false === $match) {
-            throw new PHPUnit_Framework_Exception (
+            throw new PHPUnit_Framework_Exception(
                 "Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'"
             );
         }
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php
index 185b211871e5..ecc9b96ff8c3 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php
@@ -112,7 +112,14 @@ public function __construct($value, $delta = 0.0, $maxDepth = 10, $canonicalize
      */
     public function evaluate($other, $description = '', $returnResult = false)
     {
-        $comparatorFactory = new SebastianBergmann\Comparator\Factory;
+        // If $this->value and $other are identical, they are also equal.
+        // This is the most common path and will allow us to skip
+        // initialization of all the comparators.
+        if ($this->value === $other) {
+            return true;
+        }
+
+        $comparatorFactory = SebastianBergmann\Comparator\Factory::getInstance();
 
         try {
             $comparator = $comparatorFactory->getComparatorFor(
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php
index 3355f9c5e92b..6f682c50aef0 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php
@@ -129,7 +129,7 @@ protected function matches($other)
                 }
 
             case 'resource': {
-                return is_resource($other);
+                return is_resource($other) || is_string(@get_resource_type($other));
                 }
 
             case 'scalar': {
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatches.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatches.php
index 6ac5156c95b0..422838137116 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatches.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatches.php
@@ -63,8 +63,8 @@ protected function additionalFailureDescription($other)
             }
         }
 
-        $this->string = join("\n", $from);
-        $other        = join("\n", $to);
+        $this->string = implode("\n", $from);
+        $other        = implode("\n", $to);
 
         $differ = new Differ("--- Expected\n+++ Actual\n");
 
diff --git a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php b/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php
index 225acb61a8ea..29853166d948 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php
@@ -52,6 +52,8 @@ class PHPUnit_Framework_IncompleteTestCase extends PHPUnit_Framework_TestCase
     protected $useOutputBuffering = false;
 
     /**
+     * @param string $className
+     * @param string $methodName
      * @param string $message
      */
     public function __construct($className, $methodName, $message = '')
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestCase.php b/core/vendor/phpunit/phpunit/src/Framework/TestCase.php
index dcec654b212d..75c3d123a577 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/TestCase.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/TestCase.php
@@ -11,8 +11,10 @@
 use SebastianBergmann\GlobalState\Snapshot;
 use SebastianBergmann\GlobalState\Restorer;
 use SebastianBergmann\GlobalState\Blacklist;
-use SebastianBergmann\Exporter\Context;
+use SebastianBergmann\Diff\Differ;
 use SebastianBergmann\Exporter\Exporter;
+use Prophecy\Exception\Prediction\PredictionException;
+use Prophecy\Prophet;
 
 /**
  * A TestCase defines the fixture to run multiple tests.
@@ -258,6 +260,16 @@ abstract class PHPUnit_Framework_TestCase extends PHPUnit_Framework_Assert imple
      */
     private $snapshot;
 
+    /**
+     * @var Prophecy\Prophet
+     */
+    private $prophet;
+
+    /**
+     * @var boolean
+     */
+    private $disallowChangesToGlobalState = false;
+
     /**
      * Constructs a test case with the given name.
      *
@@ -740,6 +752,9 @@ public function runBare()
             $this->status        = PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED;
             $this->statusMessage = $e->getMessage();
         } catch (PHPUnit_Framework_AssertionFailedError $e) {
+            $this->status = PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE;
+            $this->statusMessage = $e->getMessage();
+        } catch (PredictionException $e) {
             $this->status        = PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE;
             $this->statusMessage = $e->getMessage();
         } catch (Exception $e) {
@@ -749,6 +764,7 @@ public function runBare()
 
         // Clean up the mock objects.
         $this->mockObjects = array();
+        $this->prophet     = null;
 
         // Tear down the fixture. An exception raised in tearDown() will be
         // caught and passed on when no exception was raised before.
@@ -813,6 +829,10 @@ public function runBare()
 
         // Workaround for missing "finally".
         if (isset($e)) {
+            if ($e instanceof PredictionException) {
+                $e = new PHPUnit_Framework_AssertionFailedError($e->getMessage());
+            }
+
             $this->onNotSuccessfulTest($e);
         }
     }
@@ -931,6 +951,26 @@ protected function verifyMockObjects()
 
             $mockObject->__phpunit_verify();
         }
+
+        if ($this->prophet !== null) {
+            try {
+                $this->prophet->checkPredictions();
+            } catch (Exception $e) {
+                /** Intentionally left empty */
+            }
+
+            foreach ($this->prophet->getProphecies() as $objectProphecy) {
+                foreach ($objectProphecy->getMethodProphecies() as $methodProphecies) {
+                    foreach ($methodProphecies as $methodProphecy) {
+                        $this->numAssertions += count($methodProphecy->getCheckedPredictions());
+                    }
+                }
+            }
+
+            if (isset($e)) {
+                throw $e;
+            }
+        }
     }
 
     /**
@@ -976,6 +1016,15 @@ public function setDependencyInput(array $dependencyInput)
         $this->dependencyInput = $dependencyInput;
     }
 
+    /**
+     * @param boolean $disallowChangesToGlobalState
+     * @since Method available since Release 4.6.0
+     */
+    public function setDisallowChangesToGlobalState($disallowChangesToGlobalState)
+    {
+        $this->disallowChangesToGlobalState = $disallowChangesToGlobalState;
+    }
+
     /**
      * Calling this method in setUp() has no effect!
      *
@@ -1175,7 +1224,7 @@ protected function setLocale()
 
         $this->locale[$category] = setlocale($category, null);
 
-        $result = call_user_func_array( 'setlocale', $args );
+        $result = call_user_func_array('setlocale', $args);
 
         if ($result === false) {
             throw new PHPUnit_Framework_Exception(
@@ -1404,6 +1453,17 @@ protected function getObjectForTrait($traitName, array $arguments = array(), $tr
         );
     }
 
+    /**
+     * @param string|null $classOrInterface
+     * @return \Prophecy\Prophecy\ObjectProphecy
+     * @throws \LogicException
+     * @since  Method available since Release 4.5.0
+     */
+    protected function prophesize($classOrInterface = null)
+    {
+        return $this->getProphet()->prophesize($classOrInterface);
+    }
+
     /**
      * Adds a value to the assertion counter.
      *
@@ -1617,45 +1677,6 @@ public static function onConsecutiveCalls()
         return new PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls($args);
     }
 
-    /**
-     * @param  mixed                              $data       The data to export as a string
-     * @param  SebastianBergmann\Exporter\Context $processed  Contains all objects and arrays that have previously been processed
-     * @return string
-     * @since  Method available since Release 3.2.1
-     */
-    protected function dataToString(&$data, $processed = null)
-    {
-        $result = array();
-        $exporter = new Exporter();
-
-        if (!$processed) {
-            $processed = new Context();
-        }
-
-        $processed->add($data);
-
-        foreach ($data as $key => $value) {
-            if (is_array($value)) {
-                if ($processed->contains($data[$key]) !== false) {
-                    $result[] = '*RECURSION*';
-                }
-
-                else {
-                    $result[] = sprintf(
-                        'array(%s)',
-                        $this->dataToString($data[$key], $processed)
-                    );
-                }
-            }
-
-            else {
-                $result[] = $exporter->shortenedExport($value);
-            }
-        }
-
-        return join(', ', $result);
-    }
-
     /**
      * Gets the data set description of a TestCase.
      *
@@ -1674,8 +1695,10 @@ protected function getDataSetAsString($includeData = true)
                 $buffer .= sprintf(' with data set "%s"', $this->dataName);
             }
 
+            $exporter = new Exporter;
+
             if ($includeData) {
-                $buffer .= sprintf(' (%s)', $this->dataToString($this->data));
+                $buffer .= sprintf(' (%s)', $exporter->shortenedRecursiveExport($this->data));
             }
         }
 
@@ -1900,52 +1923,14 @@ private function stopOutputBuffering()
 
     private function snapshotGlobalState()
     {
-        if ($this->runTestInSeparateProcess || $this->inIsolation) {
-            return;
-        }
-
         $backupGlobals = $this->backupGlobals === null || $this->backupGlobals === true;
 
-        if ($backupGlobals || $this->backupStaticAttributes) {
-            $blacklist = new Blacklist;
-
-            if ($backupGlobals) {
-                foreach ($this->backupGlobalsBlacklist as $globalVariable) {
-                    $blacklist->addGlobalVariable($globalVariable);
-                }
-            }
-
-            if ($this->backupStaticAttributes && !defined('PHPUNIT_TESTSUITE')) {
-                $blacklist->addClassNamePrefix('PHPUnit');
-                $blacklist->addClassNamePrefix('File_Iterator');
-                $blacklist->addClassNamePrefix('PHP_CodeCoverage');
-                $blacklist->addClassNamePrefix('PHP_Invoker');
-                $blacklist->addClassNamePrefix('PHP_Timer');
-                $blacklist->addClassNamePrefix('PHP_Token');
-                $blacklist->addClassNamePrefix('Symfony');
-                $blacklist->addClassNamePrefix('Text_Template');
-                $blacklist->addClassNamePrefix('Doctrine\Instantiator');
-
-                foreach ($this->backupStaticAttributesBlacklist as $class => $attributes) {
-                    foreach ($attributes as $attribute) {
-                        $blacklist->addStaticAttribute($class, $attribute);
-                    }
-                }
-            }
-
-            $this->snapshot = new Snapshot(
-                $blacklist,
-                $backupGlobals,
-                $this->backupStaticAttributes,
-                false,
-                false,
-                false,
-                false,
-                false,
-                false,
-                false
-            );
+        if ($this->runTestInSeparateProcess || $this->inIsolation ||
+            (!$backupGlobals && !$this->backupStaticAttributes)) {
+            return;
         }
+
+        $this->snapshot = $this->createGlobalStateSnapshot($backupGlobals);
     }
 
     private function restoreGlobalState()
@@ -1954,9 +1939,18 @@ private function restoreGlobalState()
             return;
         }
 
+        $backupGlobals = $this->backupGlobals === null || $this->backupGlobals === true;
+
+        if ($this->disallowChangesToGlobalState) {
+            $this->compareGlobalStateSnapshots(
+                $this->snapshot,
+                $this->createGlobalStateSnapshot($backupGlobals)
+            );
+        }
+
         $restorer = new Restorer;
 
-        if ($this->backupGlobals === null || $this->backupGlobals === true) {
+        if ($backupGlobals) {
             $restorer->restoreGlobalVariables($this->snapshot);
         }
 
@@ -1966,4 +1960,116 @@ private function restoreGlobalState()
 
         $this->snapshot = null;
     }
+
+    /**
+     * @param  boolean $backupGlobals
+     * @return Snapshot
+     */
+    private function createGlobalStateSnapshot($backupGlobals)
+    {
+        $blacklist = new Blacklist;
+
+        foreach ($this->backupGlobalsBlacklist as $globalVariable) {
+            $blacklist->addGlobalVariable($globalVariable);
+        }
+
+        if (!defined('PHPUNIT_TESTSUITE')) {
+            $blacklist->addClassNamePrefix('PHPUnit');
+            $blacklist->addClassNamePrefix('File_Iterator');
+            $blacklist->addClassNamePrefix('PHP_CodeCoverage');
+            $blacklist->addClassNamePrefix('PHP_Invoker');
+            $blacklist->addClassNamePrefix('PHP_Timer');
+            $blacklist->addClassNamePrefix('PHP_Token');
+            $blacklist->addClassNamePrefix('Symfony');
+            $blacklist->addClassNamePrefix('Text_Template');
+            $blacklist->addClassNamePrefix('Doctrine\Instantiator');
+
+            foreach ($this->backupStaticAttributesBlacklist as $class => $attributes) {
+                foreach ($attributes as $attribute) {
+                    $blacklist->addStaticAttribute($class, $attribute);
+                }
+            }
+        }
+
+        return new Snapshot(
+            $blacklist,
+            $backupGlobals,
+            $this->backupStaticAttributes,
+            false,
+            false,
+            false,
+            false,
+            false,
+            false,
+            false
+        );
+    }
+
+    /**
+     * @param  Snapshot $before
+     * @param  Snapshot $after
+     * @throws PHPUnit_Framework_RiskyTestError
+     */
+    private function compareGlobalStateSnapshots(Snapshot $before, Snapshot $after)
+    {
+        $backupGlobals = $this->backupGlobals === null || $this->backupGlobals === true;
+
+        if ($backupGlobals) {
+            $this->compareGlobalStateSnapshotPart(
+                $before->globalVariables(),
+                $after->globalVariables(),
+                "--- Global variables before the test\n+++ Global variables after the test\n"
+            );
+
+            $this->compareGlobalStateSnapshotPart(
+                $before->superGlobalVariables(),
+                $after->superGlobalVariables(),
+                "--- Super-global variables before the test\n+++ Super-global variables after the test\n"
+            );
+        }
+
+        if ($this->backupStaticAttributes) {
+            $this->compareGlobalStateSnapshotPart(
+                $before->staticAttributes(),
+                $after->staticAttributes(),
+                "--- Static attributes before the test\n+++ Static attributes after the test\n"
+            );
+        }
+    }
+
+    /**
+     * @param  array  $before
+     * @param  array  $after
+     * @param  string $header
+     * @throws PHPUnit_Framework_RiskyTestError
+     */
+    private function compareGlobalStateSnapshotPart(array $before, array $after, $header)
+    {
+        if ($before != $after) {
+            $differ   = new Differ($header);
+            $exporter = new Exporter;
+
+            $diff = $differ->diff(
+                $exporter->export($before),
+                $exporter->export($after)
+            );
+
+            throw new PHPUnit_Framework_RiskyTestError(
+                $diff
+            );
+        }
+    }
+
+    /**
+     * @return Prophecy\Prophet
+     * @since Method available since Release 4.5.0
+     */
+    private function getProphet()
+    {
+        if ($this->prophet === null) {
+            $this->prophet = new Prophet;
+        }
+
+        return $this->prophet;
+    }
 }
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php b/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php
index 1588a2c483eb..0998316949a9 100644
--- a/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php
+++ b/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php
@@ -60,6 +60,11 @@ class PHPUnit_Framework_TestSuite implements PHPUnit_Framework_Test, PHPUnit_Fra
      */
     protected $backupStaticAttributes = null;
 
+    /**
+     * @var boolean
+     */
+    private $disallowChangesToGlobalState = null;
+
     /**
      * @var boolean
      */
@@ -708,6 +713,7 @@ class_exists($this->name, false) &&
 
             if ($test instanceof PHPUnit_Framework_TestCase ||
                 $test instanceof PHPUnit_Framework_TestSuite) {
+                $test->setDisallowChangesToGlobalState($this->disallowChangesToGlobalState);
                 $test->setBackupGlobals($this->backupGlobals);
                 $test->setBackupStaticAttributes($this->backupStaticAttributes);
                 $test->setRunTestInSeparateProcess($this->runTestInSeparateProcess);
@@ -905,6 +911,17 @@ protected static function incompleteTest($class, $methodName, $message)
         return new PHPUnit_Framework_IncompleteTestCase($class, $methodName, $message);
     }
 
+    /**
+     * @param boolean $disallowChangesToGlobalState
+     * @since  Method available since Release 4.6.0
+     */
+    public function setDisallowChangesToGlobalState($disallowChangesToGlobalState)
+    {
+        if (is_null($this->disallowChangesToGlobalState) && is_bool($disallowChangesToGlobalState)) {
+            $this->disallowChangesToGlobalState = $disallowChangesToGlobalState;
+        }
+    }
+
     /**
      * @param boolean $backupGlobals
      * @since  Method available since Release 3.3.0
diff --git a/core/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php b/core/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php
index 47c636e8f588..5fa766eb24b5 100644
--- a/core/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php
+++ b/core/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php
@@ -55,7 +55,8 @@ public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '')
             !is_file($suiteClassName . '.php') && empty($suiteClassFile)) {
             $facade = new File_Iterator_Facade;
             $files  = $facade->getFilesAsArray(
-                $suiteClassName, $suffixes
+                $suiteClassName,
+                $suffixes
             );
 
             $suite = new PHPUnit_Framework_TestSuite($suiteClassName);
@@ -66,12 +67,13 @@ public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '')
 
         try {
             $testClass = $this->loadSuiteClass(
-                $suiteClassName, $suiteClassFile
+                $suiteClassName,
+                $suiteClassFile
             );
         } catch (PHPUnit_Framework_Exception $e) {
             $this->runFailed($e->getMessage());
 
-            return null;
+            return;
         }
 
         try {
@@ -82,7 +84,7 @@ public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '')
                     'suite() method must be static.'
                 );
 
-                return null;
+                return;
             }
 
             try {
@@ -95,7 +97,7 @@ public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '')
                     )
                 );
 
-                return null;
+                return;
             }
         } catch (ReflectionException $e) {
             try {
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group.php b/core/vendor/phpunit/phpunit/src/Runner/Filter/Group.php
index 422c2ca8b73d..02fc291947a7 100644
--- a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group.php
+++ b/core/vendor/phpunit/phpunit/src/Runner/Filter/Group.php
@@ -36,7 +36,8 @@ public function __construct(RecursiveIterator $iterator, array $groups, PHPUnit_
         foreach ($suite->getGroupDetails() as $group => $tests) {
             if (in_array($group, $groups)) {
                 $testHashes = array_map(
-                    function ($test) { return spl_object_hash($test);
+                    function ($test) {
+                        return spl_object_hash($test);
                     },
                     $tests
                 );
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Filter/Test.php b/core/vendor/phpunit/phpunit/src/Runner/Filter/Test.php
index d9f5ee50073b..2701f21cb35d 100644
--- a/core/vendor/phpunit/phpunit/src/Runner/Filter/Test.php
+++ b/core/vendor/phpunit/phpunit/src/Runner/Filter/Test.php
@@ -82,7 +82,9 @@ protected function setFilter($filter)
             // Escape delimiters in regular expression. Do NOT use preg_quote,
             // to keep magic characters.
             $filter = sprintf('/%s/', str_replace(
-                '/', '\\/', $filter
+                '/',
+                '\\/',
+                $filter
             ));
         }
 
@@ -103,7 +105,7 @@ public function accept()
         $tmp = PHPUnit_Util_Test::describe($test, false);
 
         if ($tmp[0] != '') {
-            $name = join('::', $tmp);
+            $name = implode('::', $tmp);
         } else {
             $name = $tmp[1];
         }
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Version.php b/core/vendor/phpunit/phpunit/src/Runner/Version.php
index 1680c1538d4c..23349a8d8fe0 100644
--- a/core/vendor/phpunit/phpunit/src/Runner/Version.php
+++ b/core/vendor/phpunit/phpunit/src/Runner/Version.php
@@ -36,7 +36,7 @@ public static function id()
         }
 
         if (self::$version === null) {
-            $version = new SebastianBergmann\Version('4.4.2', dirname(dirname(__DIR__)));
+            $version = new SebastianBergmann\Version('4.6.4', dirname(dirname(__DIR__)));
             self::$version = $version->getVersion();
         }
 
@@ -48,7 +48,7 @@ public static function id()
      */
     public static function getVersionString()
     {
-        return 'PHPUnit ' . self::id() . ' by Sebastian Bergmann.';
+        return 'PHPUnit ' . self::id() . ' by Sebastian Bergmann and contributors.';
     }
 
     /**
diff --git a/core/vendor/phpunit/phpunit/src/TextUI/Command.php b/core/vendor/phpunit/phpunit/src/TextUI/Command.php
index d69b9250b9ad..d453342de2bf 100644
--- a/core/vendor/phpunit/phpunit/src/TextUI/Command.php
+++ b/core/vendor/phpunit/phpunit/src/TextUI/Command.php
@@ -40,8 +40,9 @@ class PHPUnit_TextUI_Command
      * @var array
      */
     protected $longOptions = array(
-      'colors' => null,
+      'colors==' => null,
       'bootstrap=' => null,
+      'columns=' => null,
       'configuration=' => null,
       'coverage-clover=' => null,
       'coverage-crap4j=' => null,
@@ -74,6 +75,7 @@ class PHPUnit_TextUI_Command
       'disallow-test-output' => null,
       'enforce-time-limit' => null,
       'disallow-todo-tests' => null,
+      'strict-global-state' => null,
       'strict' => null,
       'tap' => null,
       'testdox' => null,
@@ -244,7 +246,7 @@ protected function handleArguments(array $argv)
         foreach ($this->options[0] as $option) {
             switch ($option[0]) {
                 case '--colors': {
-                    $this->arguments['colors'] = true;
+                    $this->arguments['colors'] = $option[1] ?: PHPUnit_TextUI_ResultPrinter::COLOR_AUTO;
                     }
                 break;
 
@@ -253,6 +255,15 @@ protected function handleArguments(array $argv)
                     }
                 break;
 
+                case '--columns': {
+                    if (is_numeric($option[1])) {
+                        $this->arguments['columns'] = (int) $option[1];
+                    } elseif ($option[1] == 'max') {
+                        $this->arguments['columns'] = 'max';
+                    }
+                }
+                break;
+
                 case 'c':
                 case '--configuration': {
                     $this->arguments['configuration'] = $option[1];
@@ -481,6 +492,11 @@ protected function handleArguments(array $argv)
                     }
                 break;
 
+                case '--strict-global-state': {
+                    $this->arguments['disallowChangesToGlobalState'] = true;
+                }
+                break;
+
                 case '--disallow-test-output': {
                     $this->arguments['disallowTestOutput'] = true;
                     }
@@ -502,6 +518,7 @@ protected function handleArguments(array $argv)
                     $this->arguments['disallowTestOutput']         = true;
                     $this->arguments['enforceTimeLimit']           = true;
                     $this->arguments['disallowTodoAnnotatedTests'] = true;
+                    $this->arguments['deprecatedStrictModeOption'] = true;
                     }
                 break;
 
@@ -893,16 +910,18 @@ protected function showHelp()
 
   --report-useless-tests    Be strict about tests that do not test anything.
   --strict-coverage         Be strict about unintentionally covered code.
+  --strict-global-state     Be strict about changes to global state
   --disallow-test-output    Be strict about output during tests.
   --enforce-time-limit      Enforce time limit based on test size.
   --disallow-todo-tests     Disallow @todo-annotated tests.
-  --strict                  Run tests in strict mode (enables all of the above).
 
   --process-isolation       Run each test in a separate PHP process.
   --no-globals-backup       Do not backup and restore \$GLOBALS for each test.
   --static-backup           Backup and restore static attributes for each test.
 
-  --colors                  Use colors in output.
+  --colors=<flag>           Use colors in output ("never", "auto" or "always").
+  --columns <n>             Number of columns to use for progress output.
+  --columns max             Use maximum number of columns for progress output.
   --stderr                  Write to STDERR instead of STDOUT.
   --stop-on-error           Stop execution upon first error.
   --stop-on-failure         Stop execution upon first error or failure.
diff --git a/core/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php b/core/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php
index 2cf5300e6155..93a7c112ba1d 100644
--- a/core/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php
+++ b/core/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php
@@ -28,6 +28,11 @@ class PHPUnit_TextUI_ResultPrinter extends PHPUnit_Util_Printer implements PHPUn
     const EVENT_TESTSUITE_START = 2;
     const EVENT_TESTSUITE_END   = 3;
 
+    const COLOR_NEVER   = 'never';
+    const COLOR_AUTO    = 'auto';
+    const COLOR_ALWAYS  = 'always';
+    const COLOR_DEFAULT = self::COLOR_NEVER;
+
     /**
      * @var array
      */
@@ -93,38 +98,62 @@ class PHPUnit_TextUI_ResultPrinter extends PHPUnit_Util_Printer implements PHPUn
      */
     protected $verbose = false;
 
+    /**
+     * @var integer
+     */
+    private $numberOfColumns;
+
     /**
      * Constructor.
      *
      * @param  mixed                       $out
      * @param  boolean                     $verbose
-     * @param  boolean                     $colors
+     * @param  string                      $colors
      * @param  boolean                     $debug
+     * @param  integer|string              $numberOfColumns
      * @throws PHPUnit_Framework_Exception
      * @since  Method available since Release 3.0.0
      */
-    public function __construct($out = null, $verbose = false, $colors = false, $debug = false)
+    public function __construct($out = null, $verbose = false, $colors = self::COLOR_DEFAULT, $debug = false, $numberOfColumns = 80)
     {
         parent::__construct($out);
 
-        if (is_bool($verbose)) {
-            $this->verbose = $verbose;
-        } else {
+        if (!is_bool($verbose)) {
             throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'boolean');
         }
 
-        if (is_bool($colors)) {
-            $console = new Console;
+        $availableColors = array(self::COLOR_NEVER, self::COLOR_AUTO, self::COLOR_ALWAYS);
+        if (!in_array($colors, $availableColors)) {
+            throw PHPUnit_Util_InvalidArgumentHelper::factory(
+                3,
+                vsprintf('value from "%s", "%s" or "%s"', $availableColors)
+            );
+        }
 
-            $this->colors = $colors && $console->hasColorSupport();
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'boolean');
+        if (!is_bool($debug)) {
+            throw PHPUnit_Util_InvalidArgumentHelper::factory(4, 'boolean');
+        }
+
+        if (!is_int($numberOfColumns) && $numberOfColumns != 'max') {
+            throw PHPUnit_Util_InvalidArgumentHelper::factory(5, 'integer or "max"');
         }
 
-        if (is_bool($debug)) {
-            $this->debug = $debug;
+        $console = new Console;
+
+        $maxNumberOfColumns = $console->getNumberOfColumns();
+
+        if ($numberOfColumns == 'max' || $numberOfColumns > $maxNumberOfColumns) {
+            $numberOfColumns = $maxNumberOfColumns;
+        }
+
+        $this->numberOfColumns = $numberOfColumns;
+        $this->verbose         = $verbose;
+        $this->debug           = $debug;
+
+        if ($colors === self::COLOR_AUTO && $console->hasColorSupport()) {
+            $this->colors = true;
         } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(4, 'boolean');
+            $this->colors = (self::COLOR_ALWAYS === $colors);
         }
     }
 
@@ -325,13 +354,16 @@ protected function printFooter(PHPUnit_Framework_TestResult $result)
                     count($result),
                     $this->numAssertions,
                     $this->getCountString(
-                        $result->notImplementedCount(), 'Incomplete'
+                        $result->notImplementedCount(),
+                        'Incomplete'
                     ),
                     $this->getCountString(
-                        $result->skippedCount(), 'Skipped'
+                        $result->skippedCount(),
+                        'Skipped'
                     ),
                     $this->getCountString(
-                        $result->riskyCount(), 'Risky'
+                        $result->riskyCount(),
+                        'Risky'
                     )
                 )
             );
@@ -346,7 +378,8 @@ protected function printFooter(PHPUnit_Framework_TestResult $result)
                     $this->getCountString($result->failureCount(), 'Failures'),
                     $this->getCountString($result->errorCount(), 'Errors'),
                     $this->getCountString(
-                        $result->notImplementedCount(), 'Incomplete'
+                        $result->notImplementedCount(),
+                        'Incomplete'
                     ),
                     $this->getCountString($result->skippedCount(), 'Skipped')
                 )
@@ -460,7 +493,7 @@ public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
         if ($this->numTests == -1) {
             $this->numTests      = count($suite);
             $this->numTestsWidth = strlen((string) $this->numTests);
-            $this->maxColumn     = 69 - (2 * $this->numTestsWidth);
+            $this->maxColumn     = $this->numberOfColumns - strlen('  /  (XXX%)') - (2 * $this->numTestsWidth);
         }
     }
 
@@ -484,7 +517,8 @@ public function startTest(PHPUnit_Framework_Test $test)
         if ($this->debug) {
             $this->write(
                 sprintf(
-                    "\nStarting test '%s'.\n", PHPUnit_Util_Test::describe($test)
+                    "\nStarting test '%s'.\n",
+                    PHPUnit_Util_Test::describe($test)
                 )
             );
         }
diff --git a/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php b/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php
index 5ad6b671ee36..bc93e3a395ad 100644
--- a/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php
+++ b/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php
@@ -66,7 +66,7 @@ class PHPUnit_TextUI_TestRunner extends PHPUnit_Runner_BaseTestRunner
     public function __construct(PHPUnit_Runner_TestSuiteLoader $loader = null, PHP_CodeCoverage_Filter $filter = null)
     {
         if ($filter === null) {
-            $filter = new PHP_CodeCoverage_Filter;
+            $filter = $this->getCodeCoverageFilter();
         }
 
         $this->codeCoverageFilter = $filter;
@@ -166,6 +166,10 @@ public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array())
             $suite->setBackupStaticAttributes(true);
         }
 
+        if ($arguments['disallowChangesToGlobalState'] === true) {
+            $suite->setDisallowChangesToGlobalState(true);
+        }
+
         if (is_integer($arguments['repeat'])) {
             $test = new PHPUnit_Extensions_RepeatedTest(
                 $suite,
@@ -217,6 +221,7 @@ public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array())
                 $this->printer = $arguments['printer'];
             } else {
                 $printerClass = 'PHPUnit_TextUI_ResultPrinter';
+
                 if (isset($arguments['printer']) &&
                     is_string($arguments['printer']) &&
                     class_exists($arguments['printer'], false)) {
@@ -231,7 +236,8 @@ class_exists($arguments['printer'], false)) {
                   isset($arguments['stderr']) ? 'php://stderr' : null,
                   $arguments['verbose'],
                   $arguments['colors'],
-                  $arguments['debug']
+                  $arguments['debug'],
+                  $arguments['columns']
                 );
             }
         }
@@ -251,6 +257,14 @@ class_exists($arguments['printer'], false)) {
                     )
                 );
             }
+
+            if (isset($arguments['deprecatedStrictModeOption'])) {
+                print "Deprecated option \"--strict\" used\n\n";
+            }
+
+            if (isset($arguments['deprecatedStrictModeSetting'])) {
+                print "Deprecated configuration setting \"strict\" used\n\n";
+            }
         }
 
         foreach ($arguments['listeners'] as $listener) {
@@ -304,11 +318,13 @@ class_exists($arguments['printer'], false)) {
         if ($codeCoverageReports > 0 && (!extension_loaded('tokenizer') || !$this->canCollectCodeCoverage)) {
             if (!extension_loaded('tokenizer')) {
                 $this->showExtensionNotLoadedMessage(
-                    'tokenizer', 'No code coverage will be generated.'
+                    'tokenizer',
+                    'No code coverage will be generated.'
                 );
             } elseif (!extension_loaded('Xdebug')) {
                 $this->showExtensionNotLoadedMessage(
-                    'Xdebug', 'No code coverage will be generated.'
+                    'Xdebug',
+                    'No code coverage will be generated.'
                 );
             }
 
@@ -317,7 +333,8 @@ class_exists($arguments['printer'], false)) {
 
         if ($codeCoverageReports > 0) {
             $codeCoverage = new PHP_CodeCoverage(
-                null, $this->codeCoverageFilter
+                null,
+                $this->codeCoverageFilter
             );
 
             $codeCoverage->setAddUncoveredFilesFromWhitelist(
@@ -368,7 +385,8 @@ class_exists($arguments['printer'], false)) {
         if (isset($arguments['junitLogfile'])) {
             $result->addListener(
                 new PHPUnit_Util_Log_JUnit(
-                    $arguments['junitLogfile'], $arguments['logIncompleteSkipped']
+                    $arguments['junitLogfile'],
+                    $arguments['logIncompleteSkipped']
                 )
             );
         }
@@ -454,7 +472,7 @@ class_exists($arguments['printer'], false)) {
             if (isset($arguments['coverageText'])) {
                 if ($arguments['coverageText'] == 'php://stdout') {
                     $outputStream = $this->printer;
-                    $colors       = (bool) $arguments['colors'];
+                    $colors       = $arguments['colors'];
                 } else {
                     $outputStream = new PHPUnit_Util_Printer($arguments['coverageText']);
                     $colors       = false;
@@ -562,6 +580,10 @@ protected function handleConfiguration(array &$arguments)
 
             $phpunitConfiguration = $arguments['configuration']->getPHPUnitConfiguration();
 
+            if (isset($phpunitConfiguration['deprecatedStrictModeSetting'])) {
+                $arguments['deprecatedStrictModeSetting'] = true;
+            }
+
             if (isset($phpunitConfiguration['backupGlobals']) &&
                 !isset($arguments['backupGlobals'])) {
                 $arguments['backupGlobals'] = $phpunitConfiguration['backupGlobals'];
@@ -572,6 +594,11 @@ protected function handleConfiguration(array &$arguments)
                 $arguments['backupStaticAttributes'] = $phpunitConfiguration['backupStaticAttributes'];
             }
 
+            if (isset($phpunitConfiguration['disallowChangesToGlobalState']) &&
+                !isset($arguments['disallowChangesToGlobalState'])) {
+                $arguments['disallowChangesToGlobalState'] = $phpunitConfiguration['disallowChangesToGlobalState'];
+            }
+
             if (isset($phpunitConfiguration['bootstrap']) &&
                 !isset($arguments['bootstrap'])) {
                 $arguments['bootstrap'] = $phpunitConfiguration['bootstrap'];
@@ -767,7 +794,8 @@ protected function handleConfiguration(array &$arguments)
 
             if (isset($loggingConfiguration['plain'])) {
                 $arguments['listeners'][] = new PHPUnit_TextUI_ResultPrinter(
-                    $loggingConfiguration['plain'], true
+                    $loggingConfiguration['plain'],
+                    true
                 );
             }
 
@@ -809,19 +837,12 @@ protected function handleConfiguration(array &$arguments)
 
                 if (empty($filterConfiguration['whitelist']['include']['directory']) &&
                     empty($filterConfiguration['whitelist']['include']['file'])) {
-                    if (defined('__PHPUNIT_PHAR__')) {
-                        $this->codeCoverageFilter->addFileToBlacklist(__PHPUNIT_PHAR__);
-                    }
-
-                    $blacklist = new PHPUnit_Util_Blacklist;
-
-                    foreach ($blacklist->getBlacklistedDirectories() as $directory) {
-                        $this->codeCoverageFilter->addDirectoryToBlacklist($directory);
-                    }
-
                     foreach ($filterConfiguration['blacklist']['include']['directory'] as $dir) {
                         $this->codeCoverageFilter->addDirectoryToBlacklist(
-                            $dir['path'], $dir['suffix'], $dir['prefix'], $dir['group']
+                            $dir['path'],
+                            $dir['suffix'],
+                            $dir['prefix'],
+                            $dir['group']
                         );
                     }
 
@@ -831,7 +852,10 @@ protected function handleConfiguration(array &$arguments)
 
                     foreach ($filterConfiguration['blacklist']['exclude']['directory'] as $dir) {
                         $this->codeCoverageFilter->removeDirectoryFromBlacklist(
-                            $dir['path'], $dir['suffix'], $dir['prefix'], $dir['group']
+                            $dir['path'],
+                            $dir['suffix'],
+                            $dir['prefix'],
+                            $dir['group']
                         );
                     }
 
@@ -842,7 +866,9 @@ protected function handleConfiguration(array &$arguments)
 
                 foreach ($filterConfiguration['whitelist']['include']['directory'] as $dir) {
                     $this->codeCoverageFilter->addDirectoryToWhitelist(
-                        $dir['path'], $dir['suffix'], $dir['prefix']
+                        $dir['path'],
+                        $dir['suffix'],
+                        $dir['prefix']
                     );
                 }
 
@@ -852,7 +878,9 @@ protected function handleConfiguration(array &$arguments)
 
                 foreach ($filterConfiguration['whitelist']['exclude']['directory'] as $dir) {
                     $this->codeCoverageFilter->removeDirectoryFromWhitelist(
-                        $dir['path'], $dir['suffix'], $dir['prefix']
+                        $dir['path'],
+                        $dir['suffix'],
+                        $dir['prefix']
                     );
                 }
 
@@ -866,8 +894,10 @@ protected function handleConfiguration(array &$arguments)
         $arguments['processUncoveredFilesFromWhitelist'] = isset($arguments['processUncoveredFilesFromWhitelist']) ? $arguments['processUncoveredFilesFromWhitelist'] : false;
         $arguments['backupGlobals']                      = isset($arguments['backupGlobals'])                      ? $arguments['backupGlobals']                      : null;
         $arguments['backupStaticAttributes']             = isset($arguments['backupStaticAttributes'])             ? $arguments['backupStaticAttributes']             : null;
+        $arguments['disallowChangesToGlobalState']       = isset($arguments['disallowChangesToGlobalState'])       ? $arguments['disallowChangesToGlobalState']       : null;
         $arguments['cacheTokens']                        = isset($arguments['cacheTokens'])                        ? $arguments['cacheTokens']                        : false;
-        $arguments['colors']                             = isset($arguments['colors'])                             ? $arguments['colors']                             : false;
+        $arguments['columns']                            = isset($arguments['columns'])                            ? $arguments['columns']                            : 80;
+        $arguments['colors']                             = isset($arguments['colors'])                             ? $arguments['colors']                             : PHPUnit_TextUI_ResultPrinter::COLOR_DEFAULT;
         $arguments['convertErrorsToExceptions']          = isset($arguments['convertErrorsToExceptions'])          ? $arguments['convertErrorsToExceptions']          : true;
         $arguments['convertNoticesToExceptions']         = isset($arguments['convertNoticesToExceptions'])         ? $arguments['convertNoticesToExceptions']         : true;
         $arguments['convertWarningsToExceptions']        = isset($arguments['convertWarningsToExceptions'])        ? $arguments['convertWarningsToExceptions']        : true;
@@ -931,4 +961,24 @@ private function showMessage($message, $exit = false)
             exit(self::EXCEPTION_EXIT);
         }
     }
+
+    /**
+     * @return PHP_CodeCoverage_Filter
+     */
+    private function getCodeCoverageFilter()
+    {
+        $filter = new PHP_CodeCoverage_Filter;
+
+        if (defined('__PHPUNIT_PHAR__')) {
+            $filter->addFileToBlacklist(__PHPUNIT_PHAR__);
+        }
+
+        $blacklist = new PHPUnit_Util_Blacklist;
+
+        foreach ($blacklist->getBlacklistedDirectories() as $directory) {
+            $filter->addDirectoryToBlacklist($directory);
+        }
+
+        return $filter;
+    }
 }
diff --git a/core/vendor/phpunit/phpunit/src/Util/Blacklist.php b/core/vendor/phpunit/phpunit/src/Util/Blacklist.php
index 4aaeed068481..367c33d7108b 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Blacklist.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Blacklist.php
@@ -41,9 +41,13 @@ class PHPUnit_Util_Blacklist
         'SebastianBergmann\Environment\Runtime' => 1,
         'SebastianBergmann\Comparator\Comparator' => 1,
         'SebastianBergmann\Exporter\Exporter' => 1,
+        'SebastianBergmann\GlobalState\Snapshot' => 1,
+        'SebastianBergmann\RecursionContext\Context' => 1,
         'SebastianBergmann\Version' => 1,
         'Composer\Autoload\ClassLoader' => 1,
-        'Doctrine\Instantiator\Instantiator' => 1
+        'Doctrine\Instantiator\Instantiator' => 1,
+        'phpDocumentor\Reflection\DocBlock' => 1,
+        'Prophecy\Prophet' => 1
     );
 
     /**
diff --git a/core/vendor/phpunit/phpunit/src/Util/Configuration.php b/core/vendor/phpunit/phpunit/src/Util/Configuration.php
index 7af6f6eb28d8..fb36fbb1fa2e 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Configuration.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Configuration.php
@@ -19,6 +19,7 @@
  *          backupStaticAttributes="false"
  *          bootstrap="/path/to/bootstrap.php"
  *          cacheTokens="false"
+ *          columns="80"
  *          colors="false"
  *          stderr="false"
  *          convertErrorsToExceptions="true"
@@ -42,6 +43,7 @@
  *          beStrictAboutTestSize="false"
  *          beStrictAboutTodoAnnotatedTests="false"
  *          checkForUnintentionallyCoveredCode="false"
+ *          disallowChangesToGlobalState="false"
  *          verbose="false">
  *   <testsuites>
  *     <testsuite name="My Test Suite">
@@ -324,7 +326,8 @@ public function getListenerConfiguration()
 
             if ($listener->getAttribute('file')) {
                 $file = $this->toAbsolutePath(
-                    (string) $listener->getAttribute('file'), true
+                    (string) $listener->getAttribute('file'),
+                    true
                 );
             }
 
@@ -539,14 +542,29 @@ public function getPHPUnitConfiguration()
 
         if ($root->hasAttribute('cacheTokens')) {
             $result['cacheTokens'] = $this->getBoolean(
-                (string) $root->getAttribute('cacheTokens'), false
+                (string) $root->getAttribute('cacheTokens'),
+                false
             );
         }
 
+        if ($root->hasAttribute('columns')) {
+            $columns = (string) $root->getAttribute('columns');
+
+            if ($columns == 'max') {
+                $result['columns'] = 'max';
+            } else {
+                $result['columns'] = $this->getInteger($columns, 80);
+            }
+        }
+
         if ($root->hasAttribute('colors')) {
-            $result['colors'] = $this->getBoolean(
-                (string) $root->getAttribute('colors'), false
-            );
+            /* only allow boolean for compatibility with previous versions
+              'always' only allowed from command line */
+            if ($this->getBoolean($root->getAttribute('colors'), false)) {
+                $result['colors'] = PHPUnit_TextUI_ResultPrinter::COLOR_AUTO;
+            } else {
+                $result['colors'] = PHPUnit_TextUI_ResultPrinter::COLOR_NEVER;
+            }
         }
 
         /**
@@ -554,19 +572,22 @@ public function getPHPUnitConfiguration()
          */
         if ($root->hasAttribute('stderr')) {
             $result['stderr'] = $this->getBoolean(
-                (string)$root->getAttribute('stderr'), false
+                (string)$root->getAttribute('stderr'),
+                false
             );
         }
 
         if ($root->hasAttribute('backupGlobals')) {
             $result['backupGlobals'] = $this->getBoolean(
-                (string) $root->getAttribute('backupGlobals'), true
+                (string) $root->getAttribute('backupGlobals'),
+                true
             );
         }
 
         if ($root->hasAttribute('backupStaticAttributes')) {
             $result['backupStaticAttributes'] = $this->getBoolean(
-                (string) $root->getAttribute('backupStaticAttributes'), false
+                (string) $root->getAttribute('backupStaticAttributes'),
+                false
             );
         }
 
@@ -578,25 +599,29 @@ public function getPHPUnitConfiguration()
 
         if ($root->hasAttribute('convertErrorsToExceptions')) {
             $result['convertErrorsToExceptions'] = $this->getBoolean(
-                (string) $root->getAttribute('convertErrorsToExceptions'), true
+                (string) $root->getAttribute('convertErrorsToExceptions'),
+                true
             );
         }
 
         if ($root->hasAttribute('convertNoticesToExceptions')) {
             $result['convertNoticesToExceptions'] = $this->getBoolean(
-                (string) $root->getAttribute('convertNoticesToExceptions'), true
+                (string) $root->getAttribute('convertNoticesToExceptions'),
+                true
             );
         }
 
         if ($root->hasAttribute('convertWarningsToExceptions')) {
             $result['convertWarningsToExceptions'] = $this->getBoolean(
-                (string) $root->getAttribute('convertWarningsToExceptions'), true
+                (string) $root->getAttribute('convertWarningsToExceptions'),
+                true
             );
         }
 
         if ($root->hasAttribute('forceCoversAnnotation')) {
             $result['forceCoversAnnotation'] = $this->getBoolean(
-                (string) $root->getAttribute('forceCoversAnnotation'), false
+                (string) $root->getAttribute('forceCoversAnnotation'),
+                false
             );
         }
 
@@ -609,37 +634,43 @@ public function getPHPUnitConfiguration()
 
         if ($root->hasAttribute('processIsolation')) {
             $result['processIsolation'] = $this->getBoolean(
-                (string) $root->getAttribute('processIsolation'), false
+                (string) $root->getAttribute('processIsolation'),
+                false
             );
         }
 
         if ($root->hasAttribute('stopOnError')) {
             $result['stopOnError'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnError'), false
+                (string) $root->getAttribute('stopOnError'),
+                false
             );
         }
 
         if ($root->hasAttribute('stopOnFailure')) {
             $result['stopOnFailure'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnFailure'), false
+                (string) $root->getAttribute('stopOnFailure'),
+                false
             );
         }
 
         if ($root->hasAttribute('stopOnIncomplete')) {
             $result['stopOnIncomplete'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnIncomplete'), false
+                (string) $root->getAttribute('stopOnIncomplete'),
+                false
             );
         }
 
         if ($root->hasAttribute('stopOnRisky')) {
             $result['stopOnRisky'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnRisky'), false
+                (string) $root->getAttribute('stopOnRisky'),
+                false
             );
         }
 
         if ($root->hasAttribute('stopOnSkipped')) {
             $result['stopOnSkipped'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnSkipped'), false
+                (string) $root->getAttribute('stopOnSkipped'),
+                false
             );
         }
 
@@ -669,67 +700,85 @@ public function getPHPUnitConfiguration()
 
         if ($root->hasAttribute('timeoutForSmallTests')) {
             $result['timeoutForSmallTests'] = $this->getInteger(
-                (string) $root->getAttribute('timeoutForSmallTests'), 1
+                (string) $root->getAttribute('timeoutForSmallTests'),
+                1
             );
         }
 
         if ($root->hasAttribute('timeoutForMediumTests')) {
             $result['timeoutForMediumTests'] = $this->getInteger(
-                (string) $root->getAttribute('timeoutForMediumTests'), 10
+                (string) $root->getAttribute('timeoutForMediumTests'),
+                10
             );
         }
 
         if ($root->hasAttribute('timeoutForLargeTests')) {
             $result['timeoutForLargeTests'] = $this->getInteger(
-                (string) $root->getAttribute('timeoutForLargeTests'), 60
+                (string) $root->getAttribute('timeoutForLargeTests'),
+                60
             );
         }
 
         if ($root->hasAttribute('beStrictAboutTestsThatDoNotTestAnything')) {
             $result['reportUselessTests'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutTestsThatDoNotTestAnything'), false
+                (string) $root->getAttribute('beStrictAboutTestsThatDoNotTestAnything'),
+                false
             );
         }
 
         if ($root->hasAttribute('checkForUnintentionallyCoveredCode')) {
             $result['strictCoverage'] = $this->getBoolean(
-                (string) $root->getAttribute('checkForUnintentionallyCoveredCode'), false
+                (string) $root->getAttribute('checkForUnintentionallyCoveredCode'),
+                false
             );
         }
 
         if ($root->hasAttribute('beStrictAboutOutputDuringTests')) {
             $result['disallowTestOutput'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutOutputDuringTests'), false
+                (string) $root->getAttribute('beStrictAboutOutputDuringTests'),
+                false
+            );
+        }
+
+        if ($root->hasAttribute('beStrictAboutChangesToGlobalState')) {
+            $result['disallowChangesToGlobalState'] = $this->getBoolean(
+                (string) $root->getAttribute('beStrictAboutChangesToGlobalState'),
+                false
             );
         }
 
         if ($root->hasAttribute('beStrictAboutTestSize')) {
             $result['enforceTimeLimit'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutTestSize'), false
+                (string) $root->getAttribute('beStrictAboutTestSize'),
+                false
             );
         }
 
         if ($root->hasAttribute('beStrictAboutTodoAnnotatedTests')) {
             $result['disallowTodoAnnotatedTests'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutTodoAnnotatedTests'), false
+                (string) $root->getAttribute('beStrictAboutTodoAnnotatedTests'),
+                false
             );
         }
 
         if ($root->hasAttribute('strict')) {
             $flag = $this->getBoolean(
-                (string) $root->getAttribute('strict'), false
+                (string) $root->getAttribute('strict'),
+                false
             );
 
-            $result['reportUselessTests']         = $flag;
-            $result['strictCoverage']             = $flag;
-            $result['disallowTestOutput']         = $flag;
-            $result['enforceTimeLimit']           = $flag;
-            $result['disallowTodoAnnotatedTests'] = $flag;
+            $result['reportUselessTests']          = $flag;
+            $result['strictCoverage']              = $flag;
+            $result['disallowTestOutput']          = $flag;
+            $result['enforceTimeLimit']            = $flag;
+            $result['disallowTodoAnnotatedTests']  = $flag;
+            $result['deprecatedStrictModeSetting'] = true;
         }
 
         if ($root->hasAttribute('verbose')) {
             $result['verbose'] = $this->getBoolean(
-                (string) $root->getAttribute('verbose'), false
+                (string) $root->getAttribute('verbose'),
+                false
             );
         }
 
@@ -758,7 +807,8 @@ public function getSeleniumBrowserConfiguration()
 
             if ($config->hasAttribute('port')) {
                 $port = $this->getInteger(
-                    (string) $config->getAttribute('port'), 4444
+                    (string) $config->getAttribute('port'),
+                    4444
                 );
             } else {
                 $port = 4444;
@@ -766,7 +816,8 @@ public function getSeleniumBrowserConfiguration()
 
             if ($config->hasAttribute('timeout')) {
                 $timeout = $this->getInteger(
-                    (string) $config->getAttribute('timeout'), 30000
+                    (string) $config->getAttribute('timeout'),
+                    30000
                 );
             } else {
                 $timeout = 30000;
diff --git a/core/vendor/phpunit/phpunit/src/Util/Fileloader.php b/core/vendor/phpunit/phpunit/src/Util/Fileloader.php
index c41e1243850e..8e4b7cf81bd6 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Fileloader.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Fileloader.php
@@ -59,7 +59,8 @@ public static function load($filename)
 
         $newVariables     = get_defined_vars();
         $newVariableNames = array_diff(
-            array_keys($newVariables), $oldVariableNames
+            array_keys($newVariables),
+            $oldVariableNames
         );
 
         foreach ($newVariableNames as $variableName) {
diff --git a/core/vendor/phpunit/phpunit/src/Util/Filter.php b/core/vendor/phpunit/phpunit/src/Util/Filter.php
index 8606e9508487..4f6ce30f2b5b 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Filter.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Filter.php
@@ -62,7 +62,8 @@ public static function getFilteredStacktrace(Exception $e, $asString = true)
 
         if (!self::frameExists($eTrace, $eFile, $eLine)) {
             array_unshift(
-                $eTrace, array('file' => $eFile, 'line' => $eLine)
+                $eTrace,
+                array('file' => $eFile, 'line' => $eLine)
             );
         }
 
diff --git a/core/vendor/phpunit/phpunit/src/Util/Getopt.php b/core/vendor/phpunit/phpunit/src/Util/Getopt.php
index 56d62d498106..c234e6826760 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Getopt.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Getopt.php
@@ -58,11 +58,17 @@ public static function getopt(array $args, $short_options, $long_options = null)
                 break;
             } elseif (strlen($arg) > 1 && $arg[1] == '-') {
                 self::parseLongOption(
-                    substr($arg, 2), $long_options, $opts, $args
+                    substr($arg, 2),
+                    $long_options,
+                    $opts,
+                    $args
                 );
             } else {
                 self::parseShortOption(
-                    substr($arg, 1), $short_options, $opts, $args
+                    substr($arg, 1),
+                    $short_options,
+                    $opts,
+                    $args
                 );
             }
         }
diff --git a/core/vendor/phpunit/phpunit/src/Util/GlobalState.php b/core/vendor/phpunit/phpunit/src/Util/GlobalState.php
index 10766deb3533..87831f5b2761 100644
--- a/core/vendor/phpunit/phpunit/src/Util/GlobalState.php
+++ b/core/vendor/phpunit/phpunit/src/Util/GlobalState.php
@@ -159,7 +159,8 @@ protected static function getSuperGlobalArrays()
     {
         if (ini_get('register_long_arrays') == '1') {
             return array_merge(
-                self::$superGlobalArrays, self::$superGlobalArraysLong
+                self::$superGlobalArrays,
+                self::$superGlobalArraysLong
             );
         } else {
             return self::$superGlobalArrays;
diff --git a/core/vendor/phpunit/phpunit/src/Util/Log/JUnit.php b/core/vendor/phpunit/phpunit/src/Util/Log/JUnit.php
index d50bcb689665..299dc4b958a9 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Log/JUnit.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Log/JUnit.php
@@ -141,7 +141,8 @@ public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
                        PHPUnit_Util_Filter::getFilteredStacktrace($e);
 
             $error = $this->document->createElement(
-                'error', PHPUnit_Util_XML::prepareString($buffer)
+                'error',
+                PHPUnit_Util_XML::prepareString($buffer)
             );
 
             $error->setAttribute('type', get_class($e));
@@ -174,7 +175,8 @@ public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_Asser
                            PHPUnit_Util_Filter::getFilteredStacktrace($e);
 
                 $failure = $this->document->createElement(
-                    'failure', PHPUnit_Util_XML::prepareString($buffer)
+                    'failure',
+                    PHPUnit_Util_XML::prepareString($buffer)
                 );
 
                 $failure->setAttribute('type', get_class($e));
@@ -316,23 +318,28 @@ public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
     public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
     {
         $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'tests', $this->testSuiteTests[$this->testSuiteLevel]
+            'tests',
+            $this->testSuiteTests[$this->testSuiteLevel]
         );
 
         $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'assertions', $this->testSuiteAssertions[$this->testSuiteLevel]
+            'assertions',
+            $this->testSuiteAssertions[$this->testSuiteLevel]
         );
 
         $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'failures', $this->testSuiteFailures[$this->testSuiteLevel]
+            'failures',
+            $this->testSuiteFailures[$this->testSuiteLevel]
         );
 
         $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'errors', $this->testSuiteErrors[$this->testSuiteLevel]
+            'errors',
+            $this->testSuiteErrors[$this->testSuiteLevel]
         );
 
         $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'time', sprintf('%F', $this->testSuiteTimes[$this->testSuiteLevel])
+            'time',
+            sprintf('%F', $this->testSuiteTimes[$this->testSuiteLevel])
         );
 
         if ($this->testSuiteLevel > 1) {
@@ -389,12 +396,14 @@ public function endTest(PHPUnit_Framework_Test $test, $time)
                     $this->testSuiteAssertions[$this->testSuiteLevel] += $numAssertions;
 
                     $this->currentTestCase->setAttribute(
-                        'assertions', $numAssertions
+                        'assertions',
+                        $numAssertions
                     );
                 }
 
                 $this->currentTestCase->setAttribute(
-                    'time', sprintf('%F', $time)
+                    'time',
+                    sprintf('%F', $time)
                 );
 
                 $this->testSuites[$this->testSuiteLevel]->appendChild(
diff --git a/core/vendor/phpunit/phpunit/src/Util/Log/TAP.php b/core/vendor/phpunit/phpunit/src/Util/Log/TAP.php
index d54c187bcd40..d59f1362c552 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Log/TAP.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Log/TAP.php
@@ -74,7 +74,8 @@ public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_Asser
         $this->writeNotOk($test, 'Failure');
 
         $message = explode(
-            "\n", PHPUnit_Framework_TestFailure::exceptionToString($e)
+            "\n",
+            PHPUnit_Framework_TestFailure::exceptionToString($e)
         );
 
         $diagnostic = array(
diff --git a/core/vendor/phpunit/phpunit/src/Util/PHP.php b/core/vendor/phpunit/phpunit/src/Util/PHP.php
index 146e1545c340..43c607a98613 100644
--- a/core/vendor/phpunit/phpunit/src/Util/PHP.php
+++ b/core/vendor/phpunit/phpunit/src/Util/PHP.php
@@ -49,7 +49,10 @@ public function runTestJob($job, PHPUnit_Framework_Test $test, PHPUnit_Framework
         $_result = $this->runJob($job);
 
         $this->processChildResult(
-            $test, $result, $_result['stdout'], $_result['stderr']
+            $test,
+            $result,
+            $_result['stdout'],
+            $_result['stderr']
         );
     }
 
@@ -95,7 +98,8 @@ private function processChildResult(PHPUnit_Framework_Test $test, PHPUnit_Framew
         if (!empty($stderr)) {
             $result->addError(
                 $test,
-                new PHPUnit_Framework_Exception(trim($stderr)), $time
+                new PHPUnit_Framework_Exception(trim($stderr)),
+                $time
             );
         } else {
             set_error_handler(function ($errno, $errstr, $errfile, $errline) {
@@ -113,7 +117,9 @@ private function processChildResult(PHPUnit_Framework_Test $test, PHPUnit_Framew
                 $childResult = false;
 
                 $result->addError(
-                    $test, new PHPUnit_Framework_Exception(trim($stdout), 0, $e), $time
+                    $test,
+                    new PHPUnit_Framework_Exception(trim($stdout), 0, $e),
+                    $time
                 );
             }
 
@@ -142,23 +148,33 @@ private function processChildResult(PHPUnit_Framework_Test $test, PHPUnit_Framew
 
                 if (!empty($notImplemented)) {
                     $result->addError(
-                        $test, $this->getException($notImplemented[0]), $time
+                        $test,
+                        $this->getException($notImplemented[0]),
+                        $time
                     );
                 } elseif (!empty($risky)) {
                     $result->addError(
-                        $test, $this->getException($risky[0]), $time
+                        $test,
+                        $this->getException($risky[0]),
+                        $time
                     );
                 } elseif (!empty($skipped)) {
                     $result->addError(
-                        $test, $this->getException($skipped[0]), $time
+                        $test,
+                        $this->getException($skipped[0]),
+                        $time
                     );
                 } elseif (!empty($errors)) {
                     $result->addError(
-                        $test, $this->getException($errors[0]), $time
+                        $test,
+                        $this->getException($errors[0]),
+                        $time
                     );
                 } elseif (!empty($failures)) {
                     $result->addFailure(
-                        $test, $this->getException($failures[0]), $time
+                        $test,
+                        $this->getException($failures[0]),
+                        $time
                     );
                 }
             }
diff --git a/core/vendor/phpunit/phpunit/src/Util/Printer.php b/core/vendor/phpunit/phpunit/src/Util/Printer.php
index e46003d8dfe6..5c7af11780c7 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Printer.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Printer.php
@@ -94,7 +94,9 @@ public function flush()
             file_put_contents(
                 $this->outTarget,
                 tidy_repair_file(
-                    $this->outTarget, array('indent' => true, 'wrap' => 0), 'utf8'
+                    $this->outTarget,
+                    array('indent' => true, 'wrap' => 0),
+                    'utf8'
                 )
             );
         }
diff --git a/core/vendor/phpunit/phpunit/src/Util/Test.php b/core/vendor/phpunit/phpunit/src/Util/Test.php
index ff449c14d65c..1d51df20b33d 100644
--- a/core/vendor/phpunit/phpunit/src/Util/Test.php
+++ b/core/vendor/phpunit/phpunit/src/Util/Test.php
@@ -40,10 +40,6 @@ class PHPUnit_Util_Test
 
     private static $annotationCache = array();
 
-    private static $templateMethods = array(
-      'setUp', 'assertPreConditions', 'assertPostConditions', 'tearDown'
-    );
-
     private static $hookMethods = array();
 
     /**
@@ -366,7 +362,7 @@ public static function getProvidedData($className, $methodName)
             $dataProviderMethodName          = array_pop($leaf);
 
             if (!empty($dataProviderMethodNameNamespace)) {
-                $dataProviderMethodNameNamespace = join('\\', $dataProviderMethodNameNamespace) . '\\';
+                $dataProviderMethodNameNamespace = implode('\\', $dataProviderMethodNameNamespace) . '\\';
             } else {
                 $dataProviderMethodNameNamespace = '';
             }
diff --git a/core/vendor/phpunit/phpunit/src/Util/XML.php b/core/vendor/phpunit/phpunit/src/Util/XML.php
index 6ac0b7b705b4..070a28bdc42e 100644
--- a/core/vendor/phpunit/phpunit/src/Util/XML.php
+++ b/core/vendor/phpunit/phpunit/src/Util/XML.php
@@ -404,7 +404,7 @@ public static function convertSelectToTag($selector, $content = true)
                 }
 
                 if ($classes) {
-                    $tag['class'] = join(' ', $classes);
+                    $tag['class'] = implode(' ', $classes);
                 }
 
                 if ($attrs) {
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/AssertTest.php b/core/vendor/phpunit/phpunit/tests/Framework/AssertTest.php
index db7be62886cf..4b0c61e3466d 100644
--- a/core/vendor/phpunit/phpunit/tests/Framework/AssertTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Framework/AssertTest.php
@@ -717,9 +717,9 @@ protected function notEqualValues()
         $book4 = new stdClass;
         $book4->author = 'Terry Pratchett';
 
-        $object1 = new SampleClass( 4, 8, 15);
+        $object1 = new SampleClass(4, 8, 15);
         $object2 = new SampleClass(16, 23, 42);
-        $object3 = new SampleClass( 4, 8, 15);
+        $object3 = new SampleClass(4, 8, 15);
         $storage1 = new SplObjectStorage;
         $storage1->attach($object1);
         $storage2 = new SplObjectStorage;
@@ -3479,10 +3479,10 @@ public function testMarkTestSkipped()
      */
     public function testAssertCount()
     {
-        $this->assertCount(2, array(1,2));
+        $this->assertCount(2, array(1, 2));
 
         try {
-            $this->assertCount(2, array(1,2,3));
+            $this->assertCount(2, array(1, 2, 3));
         } catch (PHPUnit_Framework_AssertionFailedError $e) {
             return;
         }
@@ -3495,10 +3495,10 @@ public function testAssertCount()
      */
     public function testAssertCountTraversable()
     {
-        $this->assertCount(2, new ArrayIterator(array(1,2)));
+        $this->assertCount(2, new ArrayIterator(array(1, 2)));
 
         try {
-            $this->assertCount(2, new ArrayIterator(array(1,2,3)));
+            $this->assertCount(2, new ArrayIterator(array(1, 2, 3)));
         } catch (PHPUnit_Framework_AssertionFailedError $e) {
             return;
         }
@@ -3527,7 +3527,6 @@ public function testAssertCountThrowsExceptionIfExpectedCountIsNoInteger()
      */
     public function testAssertCountThrowsExceptionIfElementIsNotCountable()
     {
-
         try {
             $this->assertCount(2, '');
         } catch (PHPUnit_Framework_Exception $e) {
@@ -3555,10 +3554,10 @@ public function testAssertAttributeCount()
      */
     public function testAssertNotCount()
     {
-        $this->assertNotCount(2, array(1,2,3));
+        $this->assertNotCount(2, array(1, 2, 3));
 
         try {
-            $this->assertNotCount(2, array(1,2));
+            $this->assertNotCount(2, array(1, 2));
         } catch (PHPUnit_Framework_AssertionFailedError $e) {
             return;
         }
@@ -3600,10 +3599,10 @@ public function testAssertAttributeNotCount()
      */
     public function testAssertSameSize()
     {
-        $this->assertSameSize(array(1,2), array(3,4));
+        $this->assertSameSize(array(1, 2), array(3, 4));
 
         try {
-            $this->assertSameSize(array(1,2), array(1,2,3));
+            $this->assertSameSize(array(1, 2), array(1, 2, 3));
         } catch (PHPUnit_Framework_AssertionFailedError $e) {
             return;
         }
@@ -3648,10 +3647,10 @@ public function testAssertSameSizeThrowsExceptionIfActualIsNotCountable()
      */
     public function testAssertNotSameSize()
     {
-        $this->assertNotSameSize(array(1,2), array(1,2,3));
+        $this->assertNotSameSize(array(1, 2), array(1, 2, 3));
 
         try {
-            $this->assertNotSameSize(array(1,2), array(3,4));
+            $this->assertNotSameSize(array(1, 2), array(3, 4));
         } catch (PHPUnit_Framework_AssertionFailedError $e) {
             return;
         }
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php b/core/vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php
index b309318dbb52..4202143cd1b3 100644
--- a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php
@@ -25,7 +25,7 @@ class CountTest extends PHPUnit_Framework_TestCase
     public function testCount()
     {
         $countConstraint = new PHPUnit_Framework_Constraint_Count(3);
-        $this->assertTrue($countConstraint->evaluate(array(1,2,3), '', true));
+        $this->assertTrue($countConstraint->evaluate(array(1, 2, 3), '', true));
 
         $countConstraint = new PHPUnit_Framework_Constraint_Count(0);
         $this->assertTrue($countConstraint->evaluate(array(), '', true));
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php b/core/vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php
index 18364ab06844..c84ac978ab62 100644
--- a/core/vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php
@@ -37,9 +37,7 @@ public function testConstraintArrayHasKey()
 
         try {
             $constraint->evaluate(array());
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 Failed asserting that an array has the key 0.
 
@@ -65,9 +63,7 @@ public function testConstraintArrayHasKey2()
 
         try {
             $constraint->evaluate(array(), 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message\nFailed asserting that an array has the key 0.
@@ -102,9 +98,7 @@ public function testConstraintArrayNotHasKey()
 
         try {
             $constraint->evaluate(array(0 => 1));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that an array does not have the key 0.
@@ -135,9 +129,7 @@ public function testConstraintArrayNotHasKey2()
 
         try {
             $constraint->evaluate(array(0), 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -170,9 +162,7 @@ public function testConstraintFileExists()
 
         try {
             $constraint->evaluate('foo');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that file "foo" exists.
@@ -199,9 +189,7 @@ public function testConstraintFileExists2()
 
         try {
             $constraint->evaluate('foo', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that file "foo" exists.
@@ -238,9 +226,7 @@ public function testConstraintFileNotExists()
 
         try {
             $constraint->evaluate($file);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that file "$file" does not exist.
@@ -273,9 +259,7 @@ public function testConstraintFileNotExists2()
 
         try {
             $constraint->evaluate($file, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that file "$file" does not exist.
@@ -308,9 +292,7 @@ public function testConstraintGreaterThan()
 
         try {
             $constraint->evaluate(0);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 0 is greater than 1.
@@ -337,9 +319,7 @@ public function testConstraintGreaterThan2()
 
         try {
             $constraint->evaluate(0, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -375,9 +355,7 @@ public function testConstraintNotGreaterThan()
 
         try {
             $constraint->evaluate(2);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 2 is not greater than 1.
@@ -408,9 +386,7 @@ public function testConstraintNotGreaterThan2()
 
         try {
             $constraint->evaluate(2, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -445,9 +421,7 @@ public function testConstraintGreaterThanOrEqual()
 
         try {
             $constraint->evaluate(0);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 0 is equal to 1 or is greater than 1.
@@ -476,9 +450,7 @@ public function testConstraintGreaterThanOrEqual2()
 
         try {
             $constraint->evaluate(0, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -516,9 +488,7 @@ public function testConstraintNotGreaterThanOrEqual()
 
         try {
             $constraint->evaluate(1);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that not( 1 is equal to 1 or is greater than 1 ).
@@ -551,9 +521,7 @@ public function testConstraintNotGreaterThanOrEqual2()
 
         try {
             $constraint->evaluate(1, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -605,9 +573,7 @@ public function testConstraintNotIsAnything()
 
         try {
             $constraint->evaluate(null);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that null is not anything.
@@ -640,9 +606,7 @@ public function testConstraintIsEqual()
 
         try {
             $constraint->evaluate(0);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 0 matches expected 1.
@@ -901,9 +865,7 @@ public function testConstraintIsEqual2($expected, $actual, $message)
 
         try {
             $constraint->evaluate($actual, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               "custom message\n$message",
               $this->trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e))
@@ -935,9 +897,7 @@ public function testConstraintIsNotEqual()
 
         try {
             $constraint->evaluate(1);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 1 is not equal to 1.
@@ -968,9 +928,7 @@ public function testConstraintIsNotEqual2()
 
         try {
             $constraint->evaluate(1, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -1007,9 +965,7 @@ public function testConstraintIsIdentical()
 
         try {
             $constraint->evaluate($b);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 Failed asserting that two variables reference the same object.
 
@@ -1038,9 +994,7 @@ public function testConstraintIsIdentical2()
 
         try {
             $constraint->evaluate($b, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that two variables reference the same object.
@@ -1067,9 +1021,7 @@ public function testConstraintIsIdentical3()
 
         try {
             $constraint->evaluate('b', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that two strings are identical.
@@ -1113,9 +1065,7 @@ public function testConstraintIsNotIdentical()
 
         try {
             $constraint->evaluate($a);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 Failed asserting that two variables don't reference the same object.
 
@@ -1147,9 +1097,7 @@ public function testConstraintIsNotIdentical2()
 
         try {
             $constraint->evaluate($a, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that two variables don't reference the same object.
@@ -1180,9 +1128,7 @@ public function testConstraintIsNotIdentical3()
 
         try {
             $constraint->evaluate('a', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that two strings are not identical.
@@ -1220,9 +1166,7 @@ public function testConstraintIsInstanceOf()
 
         try {
             $constraint->evaluate(new stdClass);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that stdClass Object () is an instance of class "Exception".
@@ -1249,9 +1193,7 @@ public function testConstraintIsInstanceOf2()
 
         try {
             $constraint->evaluate(new stdClass, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that stdClass Object () is an instance of class "Exception".
@@ -1287,9 +1229,7 @@ public function testConstraintIsNotInstanceOf()
 
         try {
             $constraint->evaluate(new stdClass);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that stdClass Object () is not an instance of class "stdClass".
@@ -1320,9 +1260,7 @@ public function testConstraintIsNotInstanceOf2()
 
         try {
             $constraint->evaluate(new stdClass, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that stdClass Object () is not an instance of class "stdClass".
@@ -1355,9 +1293,7 @@ public function testConstraintIsType()
 
         try {
             $constraint->evaluate(new stdClass);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertStringMatchesFormat(<<<EOF
 Failed asserting that stdClass Object &%x () is of type "string".
 
@@ -1383,9 +1319,7 @@ public function testConstraintIsType2()
 
         try {
             $constraint->evaluate(new stdClass, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertStringMatchesFormat(<<<EOF
 custom message
 Failed asserting that stdClass Object &%x () is of type "string".
@@ -1401,6 +1335,31 @@ public function testConstraintIsType2()
         $this->fail();
     }
 
+    public function resources()
+    {
+        $fh = fopen(__FILE__, 'r');
+        fclose($fh);
+
+        return array(
+            'open resource'     => array(fopen(__FILE__, 'r')),
+            'closed resource'   => array($fh),
+        );
+    }
+
+    /**
+     * @dataProvider resources
+     * @covers PHPUnit_Framework_Constraint_IsType
+     * @covers PHPUnit_Framework_Assert::isType
+     */
+    public function testConstraintIsResourceTypeEvaluatesCorrectlyWithResources($resource)
+    {
+        $constraint = PHPUnit_Framework_Assert::isType('resource');
+
+        $this->assertTrue($constraint->evaluate($resource, '', true));
+
+        @fclose($resource);
+    }
+
     /**
      * @covers PHPUnit_Framework_Constraint_IsType
      * @covers PHPUnit_Framework_Constraint_Not
@@ -1421,9 +1380,7 @@ public function testConstraintIsNotType()
 
         try {
             $constraint->evaluate('');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that '' is not of type "string".
@@ -1454,9 +1411,7 @@ public function testConstraintIsNotType2()
 
         try {
             $constraint->evaluate('', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that '' is not of type "string".
@@ -1489,9 +1444,7 @@ public function testConstraintIsNull()
 
         try {
             $constraint->evaluate(0);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 Failed asserting that 0 is null.
 
@@ -1517,9 +1470,7 @@ public function testConstraintIsNull2()
 
         try {
             $constraint->evaluate(0, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that 0 is null.
@@ -1556,9 +1507,7 @@ public function testConstraintIsNotNull()
 
         try {
             $constraint->evaluate(null);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 Failed asserting that null is not null.
 
@@ -1588,9 +1537,7 @@ public function testConstraintIsNotNull2()
 
         try {
             $constraint->evaluate(null, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that null is not null.
@@ -1623,9 +1570,7 @@ public function testConstraintLessThan()
 
         try {
             $constraint->evaluate(1);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 1 is less than 1.
@@ -1652,9 +1597,7 @@ public function testConstraintLessThan2()
 
         try {
             $constraint->evaluate(1, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -1691,9 +1634,7 @@ public function testConstraintNotLessThan()
 
         try {
             $constraint->evaluate(0);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 0 is not less than 1.
@@ -1724,9 +1665,7 @@ public function testConstraintNotLessThan2()
 
         try {
             $constraint->evaluate(0, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -1761,9 +1700,7 @@ public function testConstraintLessThanOrEqual()
 
         try {
             $constraint->evaluate(2);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 2 is equal to 1 or is less than 1.
@@ -1784,11 +1721,11 @@ public function testConstraintLessThanOrEqual()
      */
     public function testConstraintCallback()
     {
-        $closureReflect = function($parameter) {
+        $closureReflect = function ($parameter) {
             return $parameter;
         };
 
-        $closureWithoutParameter = function() {
+        $closureWithoutParameter = function () {
             return true;
         };
 
@@ -1817,7 +1754,7 @@ public function testConstraintCallback()
      */
     public function testConstraintCallbackFailure()
     {
-        $constraint = PHPUnit_Framework_Assert::callback(function() {
+        $constraint = PHPUnit_Framework_Assert::callback(function () {
             return false;
         });
         $constraint->evaluate('This fails');
@@ -1846,9 +1783,7 @@ public function testConstraintLessThanOrEqual2()
 
         try {
             $constraint->evaluate(2, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -1887,9 +1822,7 @@ public function testConstraintNotLessThanOrEqual()
 
         try {
             $constraint->evaluate(1);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that not( 1 is equal to 1 or is less than 1 ).
@@ -1922,9 +1855,7 @@ public function testConstraintNotLessThanOrEqual2()
 
         try {
             $constraint->evaluate(1, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -1958,9 +1889,7 @@ public function testConstraintClassHasAttribute()
 
         try {
             $constraint->evaluate('stdClass');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that class "stdClass" has attribute "privateAttribute".
@@ -1987,9 +1916,7 @@ public function testConstraintClassHasAttribute2()
 
         try {
             $constraint->evaluate('stdClass', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that class "stdClass" has attribute "privateAttribute".
@@ -2025,9 +1952,7 @@ public function testConstraintClassNotHasAttribute()
 
         try {
             $constraint->evaluate('ClassWithNonPublicAttributes');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
@@ -2058,9 +1983,7 @@ public function testConstraintClassNotHasAttribute2()
 
         try {
             $constraint->evaluate('ClassWithNonPublicAttributes', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
@@ -2093,9 +2016,7 @@ public function testConstraintClassHasStaticAttribute()
 
         try {
             $constraint->evaluate('stdClass');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that class "stdClass" has static attribute "privateStaticAttribute".
@@ -2122,9 +2043,7 @@ public function testConstraintClassHasStaticAttribute2()
 
         try {
             $constraint->evaluate('stdClass', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that class "stdClass" has static attribute "foo".
@@ -2160,9 +2079,7 @@ public function testConstraintClassNotHasStaticAttribute()
 
         try {
             $constraint->evaluate('ClassWithNonPublicAttributes');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that class "ClassWithNonPublicAttributes" does not have static attribute "privateStaticAttribute".
@@ -2193,9 +2110,7 @@ public function testConstraintClassNotHasStaticAttribute2()
 
         try {
             $constraint->evaluate('ClassWithNonPublicAttributes', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that class "ClassWithNonPublicAttributes" does not have static attribute "privateStaticAttribute".
@@ -2228,9 +2143,7 @@ public function testConstraintObjectHasAttribute()
 
         try {
             $constraint->evaluate(new stdClass);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that object of class "stdClass" has attribute "privateAttribute".
@@ -2257,9 +2170,7 @@ public function testConstraintObjectHasAttribute2()
 
         try {
             $constraint->evaluate(new stdClass, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that object of class "stdClass" has attribute "privateAttribute".
@@ -2295,9 +2206,7 @@ public function testConstraintObjectNotHasAttribute()
 
         try {
             $constraint->evaluate(new ClassWithNonPublicAttributes);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that object of class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
@@ -2328,9 +2237,7 @@ public function testConstraintObjectNotHasAttribute2()
 
         try {
             $constraint->evaluate(new ClassWithNonPublicAttributes, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that object of class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
@@ -2363,9 +2270,7 @@ public function testConstraintPCREMatch()
 
         try {
             $constraint->evaluate('barbazbar');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'barbazbar' matches PCRE pattern "/foo/".
@@ -2392,9 +2297,7 @@ public function testConstraintPCREMatch2()
 
         try {
             $constraint->evaluate('barbazbar', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that 'barbazbar' matches PCRE pattern "/foo/".
@@ -2430,9 +2333,7 @@ public function testConstraintPCRENotMatch()
 
         try {
             $constraint->evaluate('barfoobar');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'barfoobar' does not match PCRE pattern "/foo/".
@@ -2463,9 +2364,7 @@ public function testConstraintPCRENotMatch2()
 
         try {
             $constraint->evaluate('barfoobar', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(<<<EOF
 custom message
 Failed asserting that 'barfoobar' does not match PCRE pattern "/foo/".
@@ -2582,9 +2481,7 @@ public function testConstraintStringStartsWith()
 
         try {
             $constraint->evaluate('foo');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'foo' starts with "prefix".
@@ -2611,9 +2508,7 @@ public function testConstraintStringStartsWith2()
 
         try {
             $constraint->evaluate('foo', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message\nFailed asserting that 'foo' starts with "prefix".
@@ -2649,9 +2544,7 @@ public function testConstraintStringStartsNotWith()
 
         try {
             $constraint->evaluate('prefixfoo');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'prefixfoo' starts not with "prefix".
@@ -2680,9 +2573,7 @@ public function testConstraintStringStartsNotWith2()
 
         try {
             $constraint->evaluate('prefixfoo', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -2716,9 +2607,7 @@ public function testConstraintStringContains()
 
         try {
             $constraint->evaluate('barbazbar');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'barbazbar' contains "foo".
@@ -2745,9 +2634,7 @@ public function testConstraintStringContains2()
 
         try {
             $constraint->evaluate('barbazbar', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -2784,9 +2671,7 @@ public function testConstraintStringNotContains()
 
         try {
             $constraint->evaluate('barfoobar');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'barfoobar' does not contain "foo".
@@ -2817,9 +2702,7 @@ public function testConstraintStringNotContains2()
 
         try {
             $constraint->evaluate('barfoobar', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -2853,9 +2736,7 @@ public function testConstraintStringEndsWith()
 
         try {
             $constraint->evaluate('foo');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'foo' ends with "suffix".
@@ -2882,9 +2763,7 @@ public function testConstraintStringEndsWith2()
 
         try {
             $constraint->evaluate('foo', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -2921,9 +2800,7 @@ public function testConstraintStringEndsNotWith()
 
         try {
             $constraint->evaluate('foosuffix');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that 'foosuffix' ends not with "suffix".
@@ -2952,9 +2829,7 @@ public function testConstraintStringEndsNotWith2()
 
         try {
             $constraint->evaluate('foosuffix', 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -3005,9 +2880,7 @@ public function testConstraintArrayContains()
 
         try {
             $constraint->evaluate(array('bar'));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that an array contains 'foo'.
@@ -3033,9 +2906,7 @@ public function testConstraintArrayContains2()
 
         try {
             $constraint->evaluate(array('bar'), 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -3071,9 +2942,7 @@ public function testConstraintArrayNotContains()
 
         try {
             $constraint->evaluate(array('foo'));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that an array does not contain 'foo'.
@@ -3103,9 +2972,7 @@ public function testConstraintArrayNotContains2()
 
         try {
             $constraint->evaluate(array('foo'), 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message
@@ -3141,9 +3008,7 @@ public function testConstraintSplObjectStorageContains()
 
         try {
             $constraint->evaluate(new SplObjectStorage);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertStringMatchesFormat(
               <<<EOF
 Failed asserting that a traversable contains stdClass Object &%x ().
@@ -3170,9 +3035,7 @@ public function testConstraintSplObjectStorageContains2()
 
         try {
             $constraint->evaluate(new SplObjectStorage, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertStringMatchesFormat(
               <<<EOF
 custom message
@@ -3209,9 +3072,7 @@ public function testAttributeEqualTo()
 
         try {
             $constraint->evaluate($object);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that attribute "foo" is equal to 2.
@@ -3239,9 +3100,7 @@ public function testAttributeEqualTo2()
 
         try {
             $constraint->evaluate($object, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message\nFailed asserting that attribute "foo" is equal to 2.
@@ -3283,9 +3142,7 @@ public function testAttributeNotEqualTo()
 
         try {
             $constraint->evaluate($object);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that attribute "foo" is not equal to 1.
@@ -3317,9 +3174,7 @@ public function testAttributeNotEqualTo2()
 
         try {
             $constraint->evaluate($object, 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message\nFailed asserting that attribute "foo" is not equal to 1.
@@ -3353,9 +3208,7 @@ public function testConstraintIsEmpty()
 
         try {
             $constraint->evaluate(array('foo'));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that an array is empty.
@@ -3381,9 +3234,7 @@ public function testConstraintIsEmpty2()
 
         try {
             $constraint->evaluate(array('foo'), 'custom message');
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 custom message\nFailed asserting that an array is empty.
@@ -3406,8 +3257,8 @@ public function testConstraintCountWithAnArray()
     {
         $constraint = new PHPUnit_Framework_Constraint_Count(5);
 
-        $this->assertTrue($constraint->evaluate(array(1,2,3,4,5), '', true));
-        $this->assertFalse($constraint->evaluate(array(1,2,3,4), '', true));
+        $this->assertTrue($constraint->evaluate(array(1, 2, 3, 4, 5), '', true));
+        $this->assertFalse($constraint->evaluate(array(1, 2, 3, 4), '', true));
     }
 
     /**
@@ -3417,8 +3268,8 @@ public function testConstraintCountWithAnIteratorWhichDoesNotImplementCountable(
     {
         $constraint = new PHPUnit_Framework_Constraint_Count(5);
 
-        $this->assertTrue($constraint->evaluate(new TestIterator(array(1,2,3,4,5)), '', true));
-        $this->assertFalse($constraint->evaluate(new TestIterator(array(1,2,3,4)), '', true));
+        $this->assertTrue($constraint->evaluate(new TestIterator(array(1, 2, 3, 4, 5)), '', true));
+        $this->assertFalse($constraint->evaluate(new TestIterator(array(1, 2, 3, 4)), '', true));
     }
 
     /**
@@ -3428,8 +3279,8 @@ public function testConstraintCountWithAnObjectImplementingCountable()
     {
         $constraint = new PHPUnit_Framework_Constraint_Count(5);
 
-        $this->assertTrue($constraint->evaluate(new ArrayObject(array(1,2,3,4,5)), '', true));
-        $this->assertFalse($constraint->evaluate(new ArrayObject(array(1,2,3,4)), '', true));
+        $this->assertTrue($constraint->evaluate(new ArrayObject(array(1, 2, 3, 4, 5)), '', true));
+        $this->assertFalse($constraint->evaluate(new ArrayObject(array(1, 2, 3, 4)), '', true));
     }
 
     /**
@@ -3441,10 +3292,8 @@ public function testConstraintCountFailing()
         $constraint = new PHPUnit_Framework_Constraint_Count(5);
 
         try {
-            $constraint->evaluate(array(1,2));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+            $constraint->evaluate(array(1, 2));
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that actual size 2 matches expected size 5.
@@ -3473,10 +3322,8 @@ public function testConstraintNotCountFailing()
         );
 
         try {
-            $constraint->evaluate(array(1,2));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+            $constraint->evaluate(array(1, 2));
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that actual size 2 does not match expected size 2.
@@ -3497,10 +3344,10 @@ public function testConstraintNotCountFailing()
      */
     public function testConstraintSameSizeWithAnArray()
     {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(array(1,2,3,4,5));
+        $constraint = new PHPUnit_Framework_Constraint_SameSize(array(1, 2, 3, 4, 5));
 
-        $this->assertTrue($constraint->evaluate(array(6,7,8,9,10), '', true));
-        $this->assertFalse($constraint->evaluate(array(1,2,3,4), '', true));
+        $this->assertTrue($constraint->evaluate(array(6, 7, 8, 9, 10), '', true));
+        $this->assertFalse($constraint->evaluate(array(1, 2, 3, 4), '', true));
     }
 
     /**
@@ -3508,10 +3355,10 @@ public function testConstraintSameSizeWithAnArray()
      */
     public function testConstraintSameSizeWithAnIteratorWhichDoesNotImplementCountable()
     {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(new TestIterator(array(1,2,3,4,5)));
+        $constraint = new PHPUnit_Framework_Constraint_SameSize(new TestIterator(array(1, 2, 3, 4, 5)));
 
-        $this->assertTrue($constraint->evaluate(new TestIterator(array(6,7,8,9,10)), '', true));
-        $this->assertFalse($constraint->evaluate(new TestIterator(array(1,2,3,4)), '', true));
+        $this->assertTrue($constraint->evaluate(new TestIterator(array(6, 7, 8, 9, 10)), '', true));
+        $this->assertFalse($constraint->evaluate(new TestIterator(array(1, 2, 3, 4)), '', true));
     }
 
     /**
@@ -3519,10 +3366,10 @@ public function testConstraintSameSizeWithAnIteratorWhichDoesNotImplementCountab
      */
     public function testConstraintSameSizeWithAnObjectImplementingCountable()
     {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(new ArrayObject(array(1,2,3,4,5)));
+        $constraint = new PHPUnit_Framework_Constraint_SameSize(new ArrayObject(array(1, 2, 3, 4, 5)));
 
-        $this->assertTrue($constraint->evaluate(new ArrayObject(array(6,7,8,9,10)), '', true));
-        $this->assertFalse($constraint->evaluate(new ArrayObject(array(1,2,3,4)), '', true));
+        $this->assertTrue($constraint->evaluate(new ArrayObject(array(6, 7, 8, 9, 10)), '', true));
+        $this->assertFalse($constraint->evaluate(new ArrayObject(array(1, 2, 3, 4)), '', true));
     }
 
     /**
@@ -3531,13 +3378,11 @@ public function testConstraintSameSizeWithAnObjectImplementingCountable()
      */
     public function testConstraintSameSizeFailing()
     {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(array(1,2,3,4,5));
+        $constraint = new PHPUnit_Framework_Constraint_SameSize(array(1, 2, 3, 4, 5));
 
         try {
-            $constraint->evaluate(array(1,2));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+            $constraint->evaluate(array(1, 2));
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that actual size 2 matches expected size 5.
@@ -3562,14 +3407,12 @@ public function testConstraintSameSizeFailing()
     public function testConstraintNotSameSizeFailing()
     {
         $constraint = PHPUnit_Framework_Assert::logicalNot(
-          new PHPUnit_Framework_Constraint_SameSize(array(1,2))
+          new PHPUnit_Framework_Constraint_SameSize(array(1, 2))
         );
 
         try {
-            $constraint->evaluate(array(3,4));
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+            $constraint->evaluate(array(3, 4));
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that actual size 2 does not match expected size 2.
@@ -3597,9 +3440,7 @@ public function testConstraintException()
 
         try {
             $constraint->evaluate($exception);
-        }
-
-        catch (PHPUnit_Framework_ExpectationFailedException $e) {
+        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
             $this->assertEquals(
               <<<EOF
 Failed asserting that exception of type "DummyException" matches expected exception "FoobarException". Message was: "Test" at
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/SuiteTest.php b/core/vendor/phpunit/phpunit/tests/Framework/SuiteTest.php
index c1899ddc9696..910531d01301 100644
--- a/core/vendor/phpunit/phpunit/tests/Framework/SuiteTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Framework/SuiteTest.php
@@ -231,6 +231,5 @@ public function testDontSkipInheritedClass()
         $suite->addTestFile($dir.'InheritanceB.php');
         $result = $suite->run();
         $this->assertEquals(2, count($result));
-
     }
 }
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/1021.phpt b/core/vendor/phpunit/phpunit/tests/Regression/1021.phpt
index 2f31e7343f40..cae0705de735 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/1021.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/1021.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/523.phpt b/core/vendor/phpunit/phpunit/tests/Regression/523.phpt
index 339570fcf98c..6f2dd268fc5f 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/523.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/523.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/578.phpt b/core/vendor/phpunit/phpunit/tests/Regression/578.phpt
index 4a4d3e07fbc9..4f12821842f2 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/578.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/578.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 EEE
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/684.phpt b/core/vendor/phpunit/phpunit/tests/Regression/684.phpt
index 139b3f9a18c5..e3f836068c57 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/684.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/684.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/783.phpt b/core/vendor/phpunit/phpunit/tests/Regression/783.phpt
index 84f00f6bc961..920bf93dd73d 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/783.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/783.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt
index 7d9dfcf28000..01525dcc1328 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .1.2
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt
index c269f36ef1a3..004d440fb9fa 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt
@@ -14,7 +14,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Configuration read from %s
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt
index 12556647b369..ae865614a6ef 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Configuration read from %s
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt
index af02df1c49fd..747ea5a33f7b 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Configuration read from %s
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt
index de467f6a2c58..31b8e0552c15 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ............
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php
index 307ef66a7d0a..218cf7e64665 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php
@@ -5,62 +5,62 @@
  */
 class Issue1335Test extends PHPUnit_Framework_TestCase
 {
-    function testGlobalString()
+    public function testGlobalString()
     {
         $this->assertEquals("Hello", $GLOBALS['globalString']);
     }
 
-    function testGlobalIntTruthy()
+    public function testGlobalIntTruthy()
     {
         $this->assertEquals(1, $GLOBALS['globalIntTruthy']);
     }
 
-    function testGlobalIntFalsey()
+    public function testGlobalIntFalsey()
     {
         $this->assertEquals(0, $GLOBALS['globalIntFalsey']);
     }
 
-    function testGlobalFloat()
+    public function testGlobalFloat()
     {
         $this->assertEquals(1.123, $GLOBALS['globalFloat']);
     }
 
-    function testGlobalBoolTrue()
+    public function testGlobalBoolTrue()
     {
         $this->assertEquals(true, $GLOBALS['globalBoolTrue']);
     }
 
-    function testGlobalBoolFalse()
+    public function testGlobalBoolFalse()
     {
         $this->assertEquals(false, $GLOBALS['globalBoolFalse']);
     }
 
-    function testGlobalNull()
+    public function testGlobalNull()
     {
         $this->assertEquals(null, $GLOBALS['globalNull']);
     }
 
-    function testGlobalArray()
+    public function testGlobalArray()
     {
         $this->assertEquals(array("foo"), $GLOBALS['globalArray']);
     }
 
-    function testGlobalNestedArray()
+    public function testGlobalNestedArray()
     {
         $this->assertEquals(array(array("foo")), $GLOBALS['globalNestedArray']);
     }
 
-    function testGlobalObject()
+    public function testGlobalObject()
     {
         $this->assertEquals((object)array("foo"=>"bar"), $GLOBALS['globalObject']);
     }
 
-    function testGlobalObjectWithBackSlashString()
+    public function testGlobalObjectWithBackSlashString()
     {
         $this->assertEquals((object)array("foo"=>"back\\slash"), $GLOBALS['globalObjectWithBackSlashString']);
     }
 
-    function testGlobalObjectWithDoubleBackSlashString()
+    public function testGlobalObjectWithDoubleBackSlashString()
     {
         $this->assertEquals((object)array("foo"=>"back\\\\slash"), $GLOBALS['globalObjectWithDoubleBackSlashString']);
     }
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt
index 17ee08e3c7fb..d97ba4f922a3 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340.phpt
index 4e1cd1fe4664..0778f9784351 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340.phpt
@@ -4,14 +4,16 @@ GH-1340: Process isolation blocks infinitely upon fatal error
 <?php
 
 $_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][3] = 'Issue1340Test';
-$_SERVER['argv'][4] = dirname(__FILE__).'/1340/Issue1340Test.php';
+$_SERVER['argv'][2] = '-d';
+$_SERVER['argv'][3] = 'error_log=';
+$_SERVER['argv'][4] = 'Issue1340Test';
+$_SERVER['argv'][5] = dirname(__FILE__).'/1340/Issue1340Test.php';
 
 require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 %A
 .E.EE
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340/Issue1340Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340/Issue1340Test.php
index f00312501ca6..19c4fbd5a7b3 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340/Issue1340Test.php
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340/Issue1340Test.php
@@ -18,7 +18,7 @@ public function testLargeStderrOutputDoesNotBlock()
         // STDERR of a phpt test is not caught/validated at this point, so this
         // error output does not cause this test to fail.
         // @see https://github.com/sebastianbergmann/phpunit/issues/1169
-        error_log("\n" . __FUNCTION__ . ": stderr:" . self::get4KB() . "\n", 4);
+        error_log("\n" . __FUNCTION__ . ": stderr:" . self::get4KB() . "\n");
         $this->assertTrue(true);
     }
 
@@ -27,7 +27,7 @@ public function testLargeStderrOutputDoesNotBlock()
      */
     public function testLargeStderrOutputDoesNotBlockInIsolation()
     {
-        error_log("\n" . __FUNCTION__ . ": stderr:" . self::get4KB() . "\n", 4);
+        error_log("\n" . __FUNCTION__ . ": stderr:" . self::get4KB() . "\n");
         $this->assertTrue(true);
     }
 
@@ -65,6 +65,6 @@ public function testFatalErrorDoesNotPass()
     public static function onShutdown()
     {
         echo "\nshutdown: stdout:", self::get4KB(), "\n";
-        error_log("\nshutdown: stderr:" . self::get4KB(), 4);
+        error_log("\nshutdown: stderr:" . self::get4KB());
     }
 }
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt
index eae3c22d8cca..e1892bac10cc 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt
@@ -9,7 +9,7 @@ if (defined('HHVM_VERSION'))
 <?php
 
 $_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][] = '--strict';
+$_SERVER['argv'][] = '--report-useless-tests';
 $_SERVER['argv'][] = '--process-isolation';
 $_SERVER['argv'][] = 'Issue1348Test';
 $_SERVER['argv'][] = __DIR__ . '/1348/Issue1348Test.php';
@@ -18,7 +18,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 STDOUT does not break test result
@@ -32,4 +32,4 @@ There was 1 error:
 PHPUnit_Framework_Exception: STDERR works as usual.
 
 FAILURES!
-Tests: 2, Assertions: 1, Errors: 1.
\ No newline at end of file
+Tests: 2, Assertions: 1, Errors: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt
index ab96268efd51..da285fee53f3 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt
@@ -18,7 +18,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F.E.E
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt
index 9ec7e3c79613..c994f5615ac5 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 S
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt
index 08f51070b7f6..c3b2e25d9666 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt
index b0b32e1a0758..23c410b1ffaf 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 I
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php
index 93be777077ce..535b25b99c50 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php
@@ -9,4 +9,3 @@ public function testFailure()
         $this->markTestIncomplete();
     }
 }
-
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt
index bc1d585438c7..631d6e6dc821 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php
index e0cdcbcd8f7a..6a09416e6e72 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php
@@ -10,4 +10,3 @@ public function testFailure()
         $this->assertTrue(false);
     }
 }
-
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt
index fd62adb91e3d..3e605b406f07 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt
@@ -1,5 +1,12 @@
 --TEST--
 GH-1472: assertEqualXMLStructure modifies the tested elements
+--SKIPIF--
+<?php
+// See: https://github.com/facebook/hhvm/issues/4669
+if (defined('HHVM_VERSION')) {
+    print 'skip: HHVM does not support cloning DOM nodes';
+}
+?>
 --FILE--
 <?php
 $_SERVER['argv'][1] = '--no-configuration';
@@ -10,7 +17,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt
index 35117a991257..a94b961ac85f 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 R*
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt
index 33ec8192d09c..29be767cb117 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .FFF
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt
index 7fc31c494f81..1dfa80505cde 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt
@@ -15,7 +15,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Configuration read from %s
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt
index 9c512d8a0400..de247c4c2394 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt
index 37e2a86149a4..8041d0b1270c 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt
@@ -4,7 +4,7 @@ GH-455: expectOutputString not working in strict mode
 <?php
 
 $_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--strict';
+$_SERVER['argv'][2] = '--disallow-test-output';
 $_SERVER['argv'][3] = 'Issue445Test';
 $_SERVER['argv'][4] = dirname(__FILE__).'/445/Issue445Test.php';
 
@@ -12,7 +12,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt
index e2ef876d6842..828995f7d79c 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php
index a42c62959eef..2120fab667fe 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php
@@ -36,7 +36,6 @@ public function shouldBeTrueDataProvider()
 
     public function shouldBeFalseDataProvider()
     {
-
         throw new Exception("Can't create the data");
         return array(
             array(true),
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt
index 6e4c46b63971..e95506c4e5b3 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt
index 1ba868adbf5e..ba1cf855509f 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php
index 43ddcb422226..394a63803f67 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php
@@ -4,8 +4,8 @@ class Issue581Test extends PHPUnit_Framework_TestCase
     public function testExportingObjectsDoesNotBreakWindowsLineFeeds()
     {
         $this->assertEquals(
-            (object)array(1,2,"Test\r\n",4,5,6,7,8),
-            (object)array(1,2,"Test\r\n",4,1,6,7,8)
+            (object)array(1, 2, "Test\r\n", 4, 5, 6, 7, 8),
+            (object)array(1, 2, "Test\r\n", 4, 1, 6, 7, 8)
         );
     }
 }
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt
index 7005b41f4eb6..53f4934b362a 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 E
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt
index eadcd1166b3b..75996615d261 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .F
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt
index 3a3cef001eae..73ba4149bc53 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt
index 5a622053b88f..1e0ffbdade27 100644
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt
+++ b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...............................................................  63 / 150 ( 42%)
 ............................................................... 126 / 150 ( 84%)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt
index 42ff953a6b97..8d6c07a3265e 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt
new file mode 100644
index 000000000000..0beb8f2e9938
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt
@@ -0,0 +1,19 @@
+--TEST--
+phpunit --colors=always BankAccountTest ../_files/BankAccountTest.php
+--FILE--
+<?php
+$_SERVER['argv'][1] = '--no-configuration';
+$_SERVER['argv'][2] = '--colors=always';
+$_SERVER['argv'][3] = __DIR__.'/../_files/BankAccountTest.php';
+
+require __DIR__ . '/../bootstrap.php';
+PHPUnit_TextUI_Command::main();
+?>
+--EXPECTF--
+PHPUnit %s by Sebastian Bergmann and contributors.
+
+...
+
+Time: %s, Memory: %sMb
+
+%s[30;42mOK (3 tests, 3 assertions)%s[0m
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt
index f27530bb66d6..f01bd7995c06 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt
index fcbd3a4705af..31ed8a45ab5d 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Configuration read from %sconfiguration.custom-printer.xml
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt
index fc5f9f481b8e..75a26449ff89 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Configuration read from %sconfiguration.custom-printer.xml
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt
index 8fc4c347d16f..c6cfe86a0cb1 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 
 Starting test 'DataProviderDebugTest::testProvider with data set #0 (null, true, 1, 1.0)'.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt
index 5154f4226070..e1c4571d5b36 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..F.<?xml version="1.0" encoding="UTF-8"?>
 <testsuites>
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt
index 9854e2f16a5f..a14b4664a691 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..F.<?xml version="1.0" encoding="UTF-8"?>
 <testsuites>
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt
index b3544c2fcc47..75973feaa941 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 DataProvider
  [ ] Add
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/debug.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/debug.phpt
index 7be7b39fc919..194961aa02b7 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/debug.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/debug.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 
 Starting test 'BankAccountTest::testBalanceIsInitiallyZero'.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt
index 210cdfb595bc..c52156cfda21 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/default.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/default.phpt
index 73da9152cc52..a5ccc3868d63 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/default.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/default.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt
index 08817b86bcf1..eac3eb725c58 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...FSS
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt
index d95baccbbe9d..5e60f18e16f6 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...FSS
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt
index 45c2d60506d4..bd88351a5291 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt
index 5fe5f3990449..d05b79d8f223 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt
index 7981df0ec884..37d2e639ce50 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt
index 4b7ba743f879..6c5d3b1c9076 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt
index 6538c47bb95b..3de7055a5c99 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 F
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt
index 6a078c353fc0..db585bf05309 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 EE
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt
index 01189e16b65e..eee3776f7dc6 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt
index ad3022e810a9..4be34009f519 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt
index 686cfd3bb7a4..7df4f1013ebb 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 FFFFFFFFFFFFF
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/failure.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/failure.phpt
index 453f841dccdf..23415e94ac32 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/failure.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/failure.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 FFFFFFFFFFFFF
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt
index 0a28dc85c3c4..b6a4d3c4189c 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 E
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/fatal.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/fatal.phpt
index c1bb7bf2a1d0..e265ea73907a 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/fatal.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/fatal.phpt
@@ -10,7 +10,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 
 Fatal error: Call to undefined function non_existing_function() in %s
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt
index 63af89e82d32..3cf41194245c 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt
index e75e87ae868b..c5e2e60d734c 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt
index b76bfadef5a8..f3cf5616ba4b 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt
index f80e9b1115ad..f19eb120356c 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt
index 364378c34141..9db7c7e4e1c8 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt
index 8279e81a6833..16b72888e1af 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt
index 3937ada7eec9..cefb0875d737 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt
index 8317b45884ab..c96a89f2441a 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt
index a753566bb43f..192637a41e1f 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt
index a868011b7264..0a546aef22c2 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt
index ec2a8fa19e75..16f0332777ad 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt
index 496ed2311339..919fb82c0aa3 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt
index f1467b9ec804..846475a89cb2 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt
index 759e120800ec..ee8f6297a201 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt
index 136e056902f7..1987e2c51715 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt
index 5db30b1da9a4..b4482c5acb17 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ..
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt
index 521a58ef0869..3bed821a94f5 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt
index bbf955f18a92..a823881e4672 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt
index 9183bf439937..cb61922d9c41 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt
index 0f4aedb403d6..bf1a974c2003 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt
index 643c8dab0a1f..400906564383 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt
index ec3e0a0036ea..c5cb65042a62 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt
index 853a87a553c0..8ead7b9bb7d7 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt
index fc79220b4f83..4e68d65649dd 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/group.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/group.phpt
index 56f488f635e8..f0c0735b67fa 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/group.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/group.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/help.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/help.phpt
index 9290205e2a93..4c1d945625ab 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/help.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/help.phpt
@@ -8,7 +8,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Usage: phpunit [options] UnitTest [UnitTest.php]
        phpunit [options] <directory>
@@ -45,16 +45,18 @@ Test Execution Options:
 
   --report-useless-tests    Be strict about tests that do not test anything.
   --strict-coverage         Be strict about unintentionally covered code.
+  --strict-global-state     Be strict about changes to global state
   --disallow-test-output    Be strict about output during tests.
   --enforce-time-limit      Enforce time limit based on test size.
   --disallow-todo-tests     Disallow @todo-annotated tests.
-  --strict                  Run tests in strict mode (enables all of the above).
 
   --process-isolation       Run each test in a separate PHP process.
   --no-globals-backup       Do not backup and restore $GLOBALS for each test.
   --static-backup           Backup and restore static attributes for each test.
 
-  --colors                  Use colors in output.
+  --colors=<flag>           Use colors in output ("never", "auto" or "always").
+  --columns <n>             Number of columns to use for progress output.
+  --columns max             Use maximum number of columns for progress output.
   --stderr                  Write to STDERR instead of STDOUT.
   --stop-on-error           Stop execution upon first error.
   --stop-on-failure         Stop execution upon first error or failure.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/help2.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/help2.phpt
index 1615e2937208..71348628aeb7 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/help2.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/help2.phpt
@@ -9,7 +9,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Usage: phpunit [options] UnitTest [UnitTest.php]
        phpunit [options] <directory>
@@ -46,16 +46,18 @@ Test Execution Options:
 
   --report-useless-tests    Be strict about tests that do not test anything.
   --strict-coverage         Be strict about unintentionally covered code.
+  --strict-global-state     Be strict about changes to global state
   --disallow-test-output    Be strict about output during tests.
   --enforce-time-limit      Enforce time limit based on test size.
   --disallow-todo-tests     Disallow @todo-annotated tests.
-  --strict                  Run tests in strict mode (enables all of the above).
 
   --process-isolation       Run each test in a separate PHP process.
   --no-globals-backup       Do not backup and restore $GLOBALS for each test.
   --static-backup           Backup and restore static attributes for each test.
 
-  --colors                  Use colors in output.
+  --colors=<flag>           Use colors in output ("never", "auto" or "always").
+  --columns <n>             Number of columns to use for progress output.
+  --columns max             Use maximum number of columns for progress output.
   --stderr                  Write to STDERR instead of STDOUT.
   --stop-on-error           Stop execution upon first error.
   --stop-on-failure         Stop execution upon first error or failure.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt
index 824da279d465..ee002df53f4c 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt
@@ -13,7 +13,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt
index f95d779390f0..85f29065637d 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 Available test group(s):
  - Sebastian Bergmann <sebastian@phpunit.de>
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-no-pretty-print.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-no-pretty-print.phpt
index c00af0227917..abdbb2f76a8a 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-no-pretty-print.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-no-pretty-print.phpt
@@ -18,7 +18,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 {"event":"suiteStart","suite":"BankAccountTest","tests":3}{"event":"testStart","suite":"BankAccountTest","test":"BankAccountTest::testBalanceIsInitiallyZero"}.{"event":"test","suite":"BankAccountTest","test":"BankAccountTest::testBalanceIsInitiallyZero","status":"pass","time":%f,"trace":[],"message":"","output":""}{"event":"testStart","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative"}.{"event":"test","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative","status":"pass","time":%f,"trace":[],"message":"","output":""}{"event":"testStart","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative2"}.{"event":"test","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative2","status":"pass","time":%f,"trace":[],"message":"","output":""}
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-post-66021.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-post-66021.phpt
index e04f2c79ba5b..e9ab24da91f1 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-post-66021.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-post-66021.phpt
@@ -20,7 +20,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 {
     "event": "suiteStart",
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-pre-66021.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-pre-66021.phpt
index e1d1173fd9ca..190c215393ed 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-pre-66021.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-pre-66021.phpt
@@ -20,7 +20,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 {
     "event": "suiteStart",
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-tap.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-tap.phpt
index 986dbfe7983a..3babdb81da7a 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-tap.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/log-tap.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 TAP version 13
 .ok 1 - BankAccountTest::testBalanceIsInitiallyZero
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-xml.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-xml.phpt
index cce87bc70616..81bcc281549f 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-xml.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/log-xml.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...<?xml version="1.0" encoding="UTF-8"?>
 <testsuites>
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt
index b4879104a854..778314434f8a 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/repeat.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/repeat.phpt
index a8dd7e83b49f..a262f63da66c 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/repeat.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/repeat.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .........
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/strict-incomplete.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt
similarity index 69%
rename from core/vendor/phpunit/phpunit/tests/TextUI/strict-incomplete.phpt
rename to core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt
index de99cdd49ac4..9bc4c2dcd681 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/strict-incomplete.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt
@@ -1,9 +1,9 @@
 --TEST--
-phpunit --strict IncompleteTest ../_files/IncompleteTest.php
+phpunit --report-useless-tests IncompleteTest ../_files/IncompleteTest.php
 --FILE--
 <?php
 $_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--strict';
+$_SERVER['argv'][2] = '--report-useless-tests';
 $_SERVER['argv'][3] = 'IncompleteTest';
 $_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/IncompleteTest.php';
 
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 I
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/strict-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt
similarity index 68%
rename from core/vendor/phpunit/phpunit/tests/TextUI/strict-isolation.phpt
rename to core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt
index 6a6a7cc4bfd7..9401b269fdd6 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/strict-isolation.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt
@@ -1,9 +1,9 @@
 --TEST--
-phpunit --strict --process-isolation IncompleteTest ../_files/IncompleteTest.php
+phpunit --report-useless-tests --process-isolation IncompleteTest ../_files/IncompleteTest.php
 --FILE--
 <?php
 $_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--strict';
+$_SERVER['argv'][2] = '--report-useless-tests';
 $_SERVER['argv'][3] = '--process-isolation';
 $_SERVER['argv'][4] = 'NothingTest';
 $_SERVER['argv'][5] = dirname(dirname(__FILE__)) . '/_files/NothingTest.php';
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 R
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/strict.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt
similarity index 69%
rename from core/vendor/phpunit/phpunit/tests/TextUI/strict.phpt
rename to core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt
index d5f2feb5fdf2..9eb22dfc7fc9 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/strict.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt
@@ -1,9 +1,9 @@
 --TEST--
-phpunit --strict NothingTest ../_files/NothingTest.php
+phpunit --report-useless-tests NothingTest ../_files/NothingTest.php
 --FILE--
 <?php
 $_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--strict';
+$_SERVER['argv'][2] = '--report-useless-tests';
 $_SERVER['argv'][3] = 'NothingTest';
 $_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/NothingTest.php';
 
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 R
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt
index 0f81cfd7db50..cf5d577f9531 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 .....
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt
index db205a2d8b80..85f13be55188 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 ...
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt
index f2b3f9327389..85eaf87fc9f7 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 <html><body><h2 id="BankAccountTest">BankAccount</h2><ul>...<li>Balance is initially zero</li><li>Balance cannot become negative</li></ul></body></html>
 
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt
index 06f34a6b3119..2c09d4e391c9 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt
@@ -12,7 +12,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 BankAccount
 ... [x] Balance is initially zero
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/testdox.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/testdox.phpt
index 57e32ff44125..69fb23a8738a 100644
--- a/core/vendor/phpunit/phpunit/tests/TextUI/testdox.phpt
+++ b/core/vendor/phpunit/phpunit/tests/TextUI/testdox.phpt
@@ -11,7 +11,7 @@ require __DIR__ . '/../bootstrap.php';
 PHPUnit_TextUI_Command::main();
 ?>
 --EXPECTF--
-PHPUnit %s by Sebastian Bergmann.
+PHPUnit %s by Sebastian Bergmann and contributors.
 
 BankAccount
  [x] Balance is initially zero
diff --git a/core/vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php b/core/vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php
index 0d4a242302e9..b0ec59365ad7 100644
--- a/core/vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php
@@ -38,6 +38,54 @@ public function testExceptionIsThrownForNotExistingConfigurationFile()
         PHPUnit_Util_Configuration::getInstance('not_existing_file.xml');
     }
 
+    /**
+     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
+     */
+    public function testShouldReadColorsWhenTrueInConfigurationfile()
+    {
+        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.true.xml';
+        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
+        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
+
+        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_AUTO, $configurationValues['colors']);
+    }
+
+    /**
+     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
+     */
+    public function testShouldReadColorsWhenFalseInConfigurationfile()
+    {
+        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.false.xml';
+        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
+        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
+
+        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_NEVER, $configurationValues['colors']);
+    }
+
+    /**
+     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
+     */
+    public function testShouldReadColorsWhenEmptyInConfigurationfile()
+    {
+        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.empty.xml';
+        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
+        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
+
+        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_NEVER, $configurationValues['colors']);
+    }
+
+    /**
+     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
+     */
+    public function testShouldReadColorsWhenInvalidInConfigurationfile()
+    {
+        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.invalid.xml';
+        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
+        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
+
+        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_NEVER, $configurationValues['colors']);
+    }
+
     /**
      * @covers PHPUnit_Util_Configuration::getFilterConfiguration
      */
@@ -305,9 +353,11 @@ public function testPHPUnitConfigurationIsReadCorrectly()
             array(
             'backupGlobals' => true,
             'backupStaticAttributes' => false,
+            'disallowChangesToGlobalState' => false,
             'bootstrap' => '/path/to/bootstrap.php',
             'cacheTokens' => false,
-            'colors' => false,
+            'columns' => 80,
+            'colors' => 'never',
             'stderr' => false,
             'convertErrorsToExceptions' => true,
             'convertNoticesToExceptions' => true,
diff --git a/core/vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php b/core/vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php
index 712ef4790327..9c1b3896d2c7 100644
--- a/core/vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php
@@ -38,8 +38,6 @@ public function testIncludedFilesAsStringSkipsVfsProtocols()
         $this->assertEquals(
             "require_once '" . $dir . "/ConfigurationTest.php';\n" .
             "require_once '" . $dir . "/GlobalStateTest.php';\n" .
-            "require_once 'file://" . $dir . "/XMLTest.php';\n"
-        , PHPUnit_Util_GlobalState::processIncludedFilesAsString($files));
+            "require_once 'file://" . $dir . "/XMLTest.php';\n", PHPUnit_Util_GlobalState::processIncludedFilesAsString($files));
     }
-
-}
\ No newline at end of file
+}
diff --git a/core/vendor/phpunit/phpunit/tests/Util/TestTest.php b/core/vendor/phpunit/phpunit/tests/Util/TestTest.php
index 3b5ca16defcb..3047acd62fa3 100644
--- a/core/vendor/phpunit/phpunit/tests/Util/TestTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Util/TestTest.php
@@ -372,7 +372,7 @@ public function testGetLinesToBeCovered4()
      * @covers PHPUnit_Util_Test::getLinesToBeCovered
      * @covers PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
      */
-    public function testGetLinesToBeCoveredSkipsNonExistantMethods()
+    public function testGetLinesToBeCoveredSkipsNonExistentMethods()
     {
         $this->assertSame(
             array(),
diff --git a/core/vendor/phpunit/phpunit/tests/Util/XMLTest.php b/core/vendor/phpunit/phpunit/tests/Util/XMLTest.php
index 4aa4ae496a8b..b3c73d8f0225 100644
--- a/core/vendor/phpunit/phpunit/tests/Util/XMLTest.php
+++ b/core/vendor/phpunit/phpunit/tests/Util/XMLTest.php
@@ -102,7 +102,7 @@ public function testConvertAssertSelect()
                                                                        'title' => 'xerox'),
                                                  'child'      => array('tag' => 'span',
                                                                        'adjacent-sibling' => array('tag' => 'h1'))));
-         $this->assertEquals($tag, $converted);
+        $this->assertEquals($tag, $converted);
     }
 
     public function testConvertAssertSelectElt()
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php b/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php
index 2dd4c446681c..c1815037223c 100644
--- a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php
+++ b/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php
@@ -4,5 +4,4 @@
 
 class InheritanceA extends InheritanceB
 {
-
 }
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php b/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php
index b7d4a501d63a..24447e2c3f9b 100644
--- a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php
+++ b/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php
@@ -4,6 +4,5 @@ class InheritanceB extends PHPUnit_Framework_TestCase
 {
     public function testSomething()
     {
-
     }
 }
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NonStatic.php b/core/vendor/phpunit/phpunit/tests/_files/NonStatic.php
index 23d7ef7dc94c..48bad9af35bb 100644
--- a/core/vendor/phpunit/phpunit/tests/_files/NonStatic.php
+++ b/core/vendor/phpunit/phpunit/tests/_files/NonStatic.php
@@ -3,6 +3,6 @@ class NonStatic
 {
     public function suite()
     {
-        return null;
+        return;
     }
 }
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml
new file mode 100644
index 000000000000..5f9e05565437
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml
@@ -0,0 +1 @@
+<phpunit colors=""></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml
new file mode 100644
index 000000000000..dcd4aa47e0cb
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml
@@ -0,0 +1 @@
+<phpunit colors="false"></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml
new file mode 100644
index 000000000000..c5bd6990e4d7
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml
@@ -0,0 +1 @@
+<phpunit colors="Something else"></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml
new file mode 100644
index 000000000000..1efe413250d0
--- /dev/null
+++ b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml
@@ -0,0 +1 @@
+<phpunit colors="true"></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.xml
index 13f5ee912b13..e83bfd3a59a4 100644
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration.xml
+++ b/core/vendor/phpunit/phpunit/tests/_files/configuration.xml
@@ -4,6 +4,7 @@
          backupStaticAttributes="false"
          bootstrap="/path/to/bootstrap.php"
          cacheTokens="false"
+         columns="80"
          colors="false"
          stderr="false"
          convertErrorsToExceptions="true"
@@ -22,6 +23,7 @@
          beStrictAboutTestSize="false"
          beStrictAboutTodoAnnotatedTests="false"
          checkForUnintentionallyCoveredCode="false"
+         beStrictAboutChangesToGlobalState="false"
          verbose="false">
   <testsuites>
     <testsuite name="My Test Suite">
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml
index 902706c34151..43076297d5f6 100644
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml
+++ b/core/vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml
@@ -4,6 +4,7 @@
          backupStaticAttributes="false"
          bootstrap="/path/to/bootstrap.php"
          cacheTokens="false"
+         columns="80"
          colors="false"
          stderr="false"
          convertErrorsToExceptions="true"
@@ -17,7 +18,12 @@
          timeoutForSmallTests="1"
          timeoutForMediumTests="10"
          timeoutForLargeTests="60"
-         strict="false"
+         beStrictAboutTestsThatDoNotTestAnything="false"
+         beStrictAboutOutputDuringTests="false"
+         beStrictAboutTestSize="false"
+         beStrictAboutTodoAnnotatedTests="false"
+         checkForUnintentionallyCoveredCode="false"
+         beStrictAboutChangesToGlobalState="false"
          verbose="false">
          <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
              href="configuration.xml"
diff --git a/core/vendor/sebastian/comparator/.travis.yml b/core/vendor/sebastian/comparator/.travis.yml
index e536e651f3dd..7a2b57764259 100644
--- a/core/vendor/sebastian/comparator/.travis.yml
+++ b/core/vendor/sebastian/comparator/.travis.yml
@@ -1,8 +1,7 @@
 language: php
 
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
+install:
+  - travis_retry composer install --no-interaction --prefer-source
 
 script: ./vendor/bin/phpunit --configuration ./build/travis-ci.xml
 
@@ -22,4 +21,3 @@ notifications:
     on_success: always
     on_failure: always
     on_start: false
-
diff --git a/core/vendor/sebastian/comparator/LICENSE b/core/vendor/sebastian/comparator/LICENSE
index 0b41d32a0275..334b637a48cd 100644
--- a/core/vendor/sebastian/comparator/LICENSE
+++ b/core/vendor/sebastian/comparator/LICENSE
@@ -1,6 +1,6 @@
 Comparator
 
-Copyright (c) 2002-2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/sebastian/comparator/composer.json b/core/vendor/sebastian/comparator/composer.json
index 6bfd2d8cd501..6e133e475019 100644
--- a/core/vendor/sebastian/comparator/composer.json
+++ b/core/vendor/sebastian/comparator/composer.json
@@ -24,11 +24,11 @@
     ],
     "require": {
         "php": ">=5.3.3",
-        "sebastian/diff": "~1.1",
-        "sebastian/exporter": "~1.0"
+        "sebastian/diff": "~1.2",
+        "sebastian/exporter": "~1.2"
     },
     "require-dev": {
-        "phpunit/phpunit": "~4.1"
+        "phpunit/phpunit": "~4.4"
     },
     "autoload": {
         "classmap": [
@@ -37,7 +37,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.0.x-dev"
+            "dev-master": "1.1.x-dev"
         }
     }
 }
diff --git a/core/vendor/sebastian/comparator/src/ArrayComparator.php b/core/vendor/sebastian/comparator/src/ArrayComparator.php
index 9c048e95c49a..17a3c8525b19 100644
--- a/core/vendor/sebastian/comparator/src/ArrayComparator.php
+++ b/core/vendor/sebastian/comparator/src/ArrayComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/Comparator.php b/core/vendor/sebastian/comparator/src/Comparator.php
index 4d2716a5396a..75e8b0133d2f 100644
--- a/core/vendor/sebastian/comparator/src/Comparator.php
+++ b/core/vendor/sebastian/comparator/src/Comparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -51,7 +18,7 @@
  * @package    Comparator
  * @subpackage Framework
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/ComparisonFailure.php b/core/vendor/sebastian/comparator/src/ComparisonFailure.php
index e1e053d5c1c5..a75815dc8701 100644
--- a/core/vendor/sebastian/comparator/src/ComparisonFailure.php
+++ b/core/vendor/sebastian/comparator/src/ComparisonFailure.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Comparator package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Comparator
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -52,7 +18,7 @@
  * @package    Comparator
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/DOMNodeComparator.php b/core/vendor/sebastian/comparator/src/DOMNodeComparator.php
index f69bc8fbc768..c76d1c77d5ba 100644
--- a/core/vendor/sebastian/comparator/src/DOMNodeComparator.php
+++ b/core/vendor/sebastian/comparator/src/DOMNodeComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -51,7 +18,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/DateTimeComparator.php b/core/vendor/sebastian/comparator/src/DateTimeComparator.php
index ed2e2ba5bf93..65a7744ff755 100644
--- a/core/vendor/sebastian/comparator/src/DateTimeComparator.php
+++ b/core/vendor/sebastian/comparator/src/DateTimeComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/DoubleComparator.php b/core/vendor/sebastian/comparator/src/DoubleComparator.php
index 9e06ab79ea6e..76dd3a23f6a8 100644
--- a/core/vendor/sebastian/comparator/src/DoubleComparator.php
+++ b/core/vendor/sebastian/comparator/src/DoubleComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/ExceptionComparator.php b/core/vendor/sebastian/comparator/src/ExceptionComparator.php
index e45e5660967c..9da557b24fac 100644
--- a/core/vendor/sebastian/comparator/src/ExceptionComparator.php
+++ b/core/vendor/sebastian/comparator/src/ExceptionComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/Factory.php b/core/vendor/sebastian/comparator/src/Factory.php
index 054ff421e33c..d841ef21edf9 100644
--- a/core/vendor/sebastian/comparator/src/Factory.php
+++ b/core/vendor/sebastian/comparator/src/Factory.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
@@ -59,6 +26,11 @@ class Factory
      */
     private $comparators = array();
 
+    /**
+     * @var Factory
+     */
+    private static $instance;
+
     /**
      * Constructs a new factory.
      */
@@ -78,6 +50,18 @@ public function __construct()
         $this->register(new DateTimeComparator);
     }
 
+    /**
+     * @return Factory
+     */
+    public static function getInstance()
+    {
+        if (self::$instance === null) {
+            self::$instance = new Factory;
+        }
+
+        return self::$instance;
+    }
+
     /**
      * Returns the correct comparator for comparing two values.
      *
diff --git a/core/vendor/sebastian/comparator/src/MockObjectComparator.php b/core/vendor/sebastian/comparator/src/MockObjectComparator.php
index d9275edc3683..ecd275ee3826 100644
--- a/core/vendor/sebastian/comparator/src/MockObjectComparator.php
+++ b/core/vendor/sebastian/comparator/src/MockObjectComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/NumericComparator.php b/core/vendor/sebastian/comparator/src/NumericComparator.php
index 51b8de9c1c2b..a3453a9b656a 100644
--- a/core/vendor/sebastian/comparator/src/NumericComparator.php
+++ b/core/vendor/sebastian/comparator/src/NumericComparator.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Comparator package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @author     Alexander <iam.asm89@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -50,7 +16,7 @@
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
  * @author     Alexander <iam.asm89@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/ObjectComparator.php b/core/vendor/sebastian/comparator/src/ObjectComparator.php
index 3da5231626b0..44375d93e83f 100644
--- a/core/vendor/sebastian/comparator/src/ObjectComparator.php
+++ b/core/vendor/sebastian/comparator/src/ObjectComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/ResourceComparator.php b/core/vendor/sebastian/comparator/src/ResourceComparator.php
index 38578a11392f..043a4ce9576e 100644
--- a/core/vendor/sebastian/comparator/src/ResourceComparator.php
+++ b/core/vendor/sebastian/comparator/src/ResourceComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/ScalarComparator.php b/core/vendor/sebastian/comparator/src/ScalarComparator.php
index 26f13fc38920..7de108e139c7 100644
--- a/core/vendor/sebastian/comparator/src/ScalarComparator.php
+++ b/core/vendor/sebastian/comparator/src/ScalarComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/SplObjectStorageComparator.php b/core/vendor/sebastian/comparator/src/SplObjectStorageComparator.php
index 2ff0828e91e7..5de7dac57d22 100644
--- a/core/vendor/sebastian/comparator/src/SplObjectStorageComparator.php
+++ b/core/vendor/sebastian/comparator/src/SplObjectStorageComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/src/TypeComparator.php b/core/vendor/sebastian/comparator/src/TypeComparator.php
index 3c4e87023c60..27a9581a3407 100644
--- a/core/vendor/sebastian/comparator/src/TypeComparator.php
+++ b/core/vendor/sebastian/comparator/src/TypeComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/ArrayComparatorTest.php b/core/vendor/sebastian/comparator/tests/ArrayComparatorTest.php
index e977ca90a245..1874e71e8dd7 100644
--- a/core/vendor/sebastian/comparator/tests/ArrayComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/ArrayComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php b/core/vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php
index da4e1339af78..7bad48ca05d7 100644
--- a/core/vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -51,7 +18,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/DateTimeComparatorTest.php b/core/vendor/sebastian/comparator/tests/DateTimeComparatorTest.php
index b03a5393ed4d..22672ab7bf3b 100644
--- a/core/vendor/sebastian/comparator/tests/DateTimeComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/DateTimeComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -51,7 +18,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/DoubleComparatorTest.php b/core/vendor/sebastian/comparator/tests/DoubleComparatorTest.php
index 205ac3824de0..8c47101dfcc6 100644
--- a/core/vendor/sebastian/comparator/tests/DoubleComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/DoubleComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/ExceptionComparatorTest.php b/core/vendor/sebastian/comparator/tests/ExceptionComparatorTest.php
index f5750da4b3da..7150285e3b33 100644
--- a/core/vendor/sebastian/comparator/tests/ExceptionComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/ExceptionComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -51,7 +18,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/FactoryTest.php b/core/vendor/sebastian/comparator/tests/FactoryTest.php
index 4ae4c72f13ec..0964067ecd30 100644
--- a/core/vendor/sebastian/comparator/tests/FactoryTest.php
+++ b/core/vendor/sebastian/comparator/tests/FactoryTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/MockObjectComparatorTest.php b/core/vendor/sebastian/comparator/tests/MockObjectComparatorTest.php
index fa696b960353..01e0352396c3 100644
--- a/core/vendor/sebastian/comparator/tests/MockObjectComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/MockObjectComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/NumericComparatorTest.php b/core/vendor/sebastian/comparator/tests/NumericComparatorTest.php
index 6c119d3222a7..cf121d4b0dc1 100644
--- a/core/vendor/sebastian/comparator/tests/NumericComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/NumericComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
@@ -67,7 +34,7 @@ public function acceptsSucceedsProvider()
           array(5, 10),
           array(8, '0'),
           array('10', 0),
-          array(0xf4c3b00c, 42),
+          array(0x74c3b00c, 42),
           array(0755, 0777)
         );
     }
diff --git a/core/vendor/sebastian/comparator/tests/ObjectComparatorTest.php b/core/vendor/sebastian/comparator/tests/ObjectComparatorTest.php
index 39a582dc51d7..b11bbe058168 100644
--- a/core/vendor/sebastian/comparator/tests/ObjectComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/ObjectComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -50,7 +17,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/ResourceComparatorTest.php b/core/vendor/sebastian/comparator/tests/ResourceComparatorTest.php
index 9e7b148c23b6..9aea3ee6a349 100644
--- a/core/vendor/sebastian/comparator/tests/ResourceComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/ResourceComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/ScalarComparatorTest.php b/core/vendor/sebastian/comparator/tests/ScalarComparatorTest.php
index 3cea113066d3..a37e1c92da9a 100644
--- a/core/vendor/sebastian/comparator/tests/ScalarComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/ScalarComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php b/core/vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php
index 00b2d66ab3d6..40be43d138d3 100644
--- a/core/vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -51,7 +18,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/TypeComparatorTest.php b/core/vendor/sebastian/comparator/tests/TypeComparatorTest.php
index 94f0d0b3b52a..57ff39ede917 100644
--- a/core/vendor/sebastian/comparator/tests/TypeComparatorTest.php
+++ b/core/vendor/sebastian/comparator/tests/TypeComparatorTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -50,7 +17,7 @@
  *
  * @package    Comparator
  * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/_files/Author.php b/core/vendor/sebastian/comparator/tests/_files/Author.php
index a39c582e7e03..d516955dd5aa 100644
--- a/core/vendor/sebastian/comparator/tests/_files/Author.php
+++ b/core/vendor/sebastian/comparator/tests/_files/Author.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/_files/Book.php b/core/vendor/sebastian/comparator/tests/_files/Book.php
index 20de0b568549..91b857103195 100644
--- a/core/vendor/sebastian/comparator/tests/_files/Book.php
+++ b/core/vendor/sebastian/comparator/tests/_files/Book.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/_files/ClassWithToString.php b/core/vendor/sebastian/comparator/tests/_files/ClassWithToString.php
index 38ece4e65cc9..e8e03bc7fe68 100644
--- a/core/vendor/sebastian/comparator/tests/_files/ClassWithToString.php
+++ b/core/vendor/sebastian/comparator/tests/_files/ClassWithToString.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
+/*
+ * This file is part of the Comparator package.
  *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
diff --git a/core/vendor/sebastian/comparator/tests/_files/SampleClass.php b/core/vendor/sebastian/comparator/tests/_files/SampleClass.php
index 8c1a245d704c..de6476f22696 100644
--- a/core/vendor/sebastian/comparator/tests/_files/SampleClass.php
+++ b/core/vendor/sebastian/comparator/tests/_files/SampleClass.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/_files/Struct.php b/core/vendor/sebastian/comparator/tests/_files/Struct.php
index 96ffe449cb5a..05615af4e4dc 100644
--- a/core/vendor/sebastian/comparator/tests/_files/Struct.php
+++ b/core/vendor/sebastian/comparator/tests/_files/Struct.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Comparator package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
@@ -48,7 +15,7 @@
  *
  * @package    Comparator
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/comparator
  */
diff --git a/core/vendor/sebastian/comparator/tests/_files/TestClass.php b/core/vendor/sebastian/comparator/tests/_files/TestClass.php
index a0f711d2434e..e4c9b78ca6d4 100644
--- a/core/vendor/sebastian/comparator/tests/_files/TestClass.php
+++ b/core/vendor/sebastian/comparator/tests/_files/TestClass.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
+/*
+ * This file is part of the Comparator package.
  *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
diff --git a/core/vendor/sebastian/comparator/tests/_files/TestClassComparator.php b/core/vendor/sebastian/comparator/tests/_files/TestClassComparator.php
index fbfc92a40e8e..52aac3fdf3a1 100644
--- a/core/vendor/sebastian/comparator/tests/_files/TestClassComparator.php
+++ b/core/vendor/sebastian/comparator/tests/_files/TestClassComparator.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Comparator
+/*
+ * This file is part of the Comparator package.
  *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Comparator;
diff --git a/core/vendor/sebastian/diff/.travis.yml b/core/vendor/sebastian/diff/.travis.yml
index 4309f78c6113..c5ea677ff4b7 100644
--- a/core/vendor/sebastian/diff/.travis.yml
+++ b/core/vendor/sebastian/diff/.travis.yml
@@ -1,8 +1,7 @@
 language: php
 
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
+install:
+  - travis_retry composer install --no-interaction --prefer-source
 
 php:
   - 5.3.3
diff --git a/core/vendor/sebastian/diff/LICENSE b/core/vendor/sebastian/diff/LICENSE
index 2f61c4ff715f..0941c065ec0d 100644
--- a/core/vendor/sebastian/diff/LICENSE
+++ b/core/vendor/sebastian/diff/LICENSE
@@ -1,6 +1,6 @@
 Diff
 
-Copyright (c) 2002-2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/sebastian/diff/composer.json b/core/vendor/sebastian/diff/composer.json
index c6dbdfc367c2..3c04952d3525 100644
--- a/core/vendor/sebastian/diff/composer.json
+++ b/core/vendor/sebastian/diff/composer.json
@@ -27,7 +27,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.2-dev"
+            "dev-master": "1.3-dev"
         }
     }
 }
diff --git a/core/vendor/sebastian/diff/src/Chunk.php b/core/vendor/sebastian/diff/src/Chunk.php
index 91ab7388feda..79d13fc865a8 100644
--- a/core/vendor/sebastian/diff/src/Chunk.php
+++ b/core/vendor/sebastian/diff/src/Chunk.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Diff package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff;
@@ -48,7 +14,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
diff --git a/core/vendor/sebastian/diff/src/Diff.php b/core/vendor/sebastian/diff/src/Diff.php
index 3b5db8fdb385..45aaae6ff275 100644
--- a/core/vendor/sebastian/diff/src/Diff.php
+++ b/core/vendor/sebastian/diff/src/Diff.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Diff package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff;
@@ -48,7 +14,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
diff --git a/core/vendor/sebastian/diff/src/Differ.php b/core/vendor/sebastian/diff/src/Differ.php
index e7e5204d5328..76630ed2205a 100644
--- a/core/vendor/sebastian/diff/src/Differ.php
+++ b/core/vendor/sebastian/diff/src/Differ.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the Diff package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff;
@@ -54,7 +20,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
@@ -83,6 +49,14 @@ public function __construct($header = "--- Original\n+++ New\n")
      */
     public function diff($from, $to, LongestCommonSubsequence $lcs = null)
     {
+        if (!is_array($from) && !is_string($from)) {
+            $from = (string) $from;
+        }
+
+        if (!is_array($to) && !is_string($to)) {
+            $to = (string) $to;
+        }
+
         $buffer = $this->header;
         $diff   = $this->diffToArray($from, $to, $lcs);
 
diff --git a/core/vendor/sebastian/diff/src/LCS/LongestCommonSubsequence.php b/core/vendor/sebastian/diff/src/LCS/LongestCommonSubsequence.php
index ed356fd4c384..803647454129 100644
--- a/core/vendor/sebastian/diff/src/LCS/LongestCommonSubsequence.php
+++ b/core/vendor/sebastian/diff/src/LCS/LongestCommonSubsequence.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Diff package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff\LCS;
@@ -50,7 +16,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
diff --git a/core/vendor/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php b/core/vendor/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php
index 3abca36016e3..6213607a3293 100644
--- a/core/vendor/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php
+++ b/core/vendor/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Diff package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff\LCS;
@@ -50,7 +16,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Denes Lados <lados.denes@gmail.com>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
diff --git a/core/vendor/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php b/core/vendor/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php
index a6c0e855a1ff..b569586dd5bc 100644
--- a/core/vendor/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php
+++ b/core/vendor/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
+/*
+ * This file is part of the Diff package.
  *
- *   * 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff\LCS;
@@ -50,7 +16,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
@@ -66,24 +32,26 @@ class TimeEfficientImplementation implements LongestCommonSubsequence
     public function calculate(array $from, array $to)
     {
         $common     = array();
-        $matrix     = array();
         $fromLength = count($from);
         $toLength   = count($to);
+        $width      = $fromLength + 1;
+        $matrix     = new \SplFixedArray($width * ($toLength + 1));
 
         for ($i = 0; $i <= $fromLength; ++$i) {
-            $matrix[$i][0] = 0;
+            $matrix[$i] = 0;
         }
 
         for ($j = 0; $j <= $toLength; ++$j) {
-            $matrix[0][$j] = 0;
+            $matrix[$j * $width] = 0;
         }
 
         for ($i = 1; $i <= $fromLength; ++$i) {
             for ($j = 1; $j <= $toLength; ++$j) {
-                $matrix[$i][$j] = max(
-                    $matrix[$i-1][$j],
-                    $matrix[$i][$j-1],
-                    $from[$i-1] === $to[$j-1] ? $matrix[$i-1][$j-1] + 1 : 0
+                $o = ($j * $width) + $i;
+                $matrix[$o] = max(
+                    $matrix[$o - 1],
+                    $matrix[$o - $width],
+                    $from[$i - 1] === $to[$j - 1] ? $matrix[$o - $width - 1] + 1 : 0
                 );
             }
         }
@@ -93,16 +61,19 @@ public function calculate(array $from, array $to)
 
         while ($i > 0 && $j > 0) {
             if ($from[$i-1] === $to[$j-1]) {
-                array_unshift($common, $from[$i-1]);
+                $common[] = $from[$i-1];
                 --$i;
                 --$j;
-            } elseif ($matrix[$i][$j-1] > $matrix[$i-1][$j]) {
-                --$j;
             } else {
-                --$i;
+                $o = ($j * $width) + $i;
+                if ($matrix[$o - $width] > $matrix[$o - 1]) {
+                    --$j;
+                } else {
+                    --$i;
+                }
             }
         }
 
-        return $common;
+        return array_reverse($common);
     }
 }
diff --git a/core/vendor/sebastian/diff/src/Line.php b/core/vendor/sebastian/diff/src/Line.php
index 10455d2b4225..28c66aa2a44e 100644
--- a/core/vendor/sebastian/diff/src/Line.php
+++ b/core/vendor/sebastian/diff/src/Line.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Diff package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff;
@@ -48,7 +14,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
diff --git a/core/vendor/sebastian/diff/src/Parser.php b/core/vendor/sebastian/diff/src/Parser.php
index fc8abdc96dd0..79e2413ebe10 100644
--- a/core/vendor/sebastian/diff/src/Parser.php
+++ b/core/vendor/sebastian/diff/src/Parser.php
@@ -1,45 +1,11 @@
 <?php
-/**
- * Diff
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Diff package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Diff;
@@ -50,7 +16,7 @@
  * @package    Diff
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
  * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/diff
  */
@@ -80,6 +46,9 @@ public function parse($string)
                 $diff = new Diff($fromMatch['file'], $toMatch['file']);
                 ++$i;
             } else {
+                if (preg_match('/^(?:diff --git |index [\da-f\.]+|[+-]{3} [ab])/', $lines[$i])) {
+                    continue;
+                }
                 $collected[] = $lines[$i];
             }
         }
@@ -100,45 +69,34 @@ private function parseFileDiff(Diff $diff, array $lines)
     {
         $chunks = array();
 
-        while (count($lines)) {
-            while (!preg_match('(^@@\\s+-(?P<start>\\d+)(?:,\\s*(?P<startrange>\\d+))?\\s+\\+(?P<end>\\d+)(?:,\\s*(?P<endrange>\\d+))?\\s+@@)', $last = array_shift($lines), $match)) {
-                if ($last === null) {
-                    break 2;
-                }
+        foreach ($lines as $line) {
+            if (preg_match('/^@@\s+-(?P<start>\d+)(?:,\s*(?P<startrange>\d+))?\s+\+(?P<end>\d+)(?:,\s*(?P<endrange>\d+))?\s+@@/', $line, $match)) {
+                $chunk = new Chunk(
+                    $match['start'],
+                    isset($match['startrange']) ? max(1, $match['startrange']) : 1,
+                    $match['end'],
+                    isset($match['endrange']) ? max(1, $match['endrange']) : 1
+                );
+
+                $chunks[] = $chunk;
+                $diffLines = array();
+                continue;
             }
 
-            $chunk = new Chunk(
-                $match['start'],
-                isset($match['startrange']) ? max(1, $match['startrange']) : 1,
-                $match['end'],
-                isset($match['endrange']) ? max(1, $match['endrange']) : 1
-            );
-
-            $diffLines = array();
-            $last      = null;
-
-            while (count($lines) &&
-                  (preg_match('(^(?P<type>[+ -])?(?P<line>.*))', $last = array_shift($lines), $match) ||
-                  (strpos($last, '\\ No newline at end of file') === 0))) {
-                if (count($match)) {
-                    $type = Line::UNCHANGED;
+            if (preg_match('/^(?P<type>[+ -])?(?P<line>.*)/', $line, $match)) {
+                $type = Line::UNCHANGED;
 
-                    if ($match['type'] == '+') {
-                        $type = Line::ADDED;
-                    } elseif ($match['type'] == '-') {
-                        $type = Line::REMOVED;
-                    }
-
-                    $diffLines[] = new Line($type, $match['line']);
+                if ($match['type'] == '+') {
+                    $type = Line::ADDED;
+                } elseif ($match['type'] == '-') {
+                    $type = Line::REMOVED;
                 }
-            }
 
-            $chunk->setLines($diffLines);
+                $diffLines[] = new Line($type, $match['line']);
 
-            $chunks[] = $chunk;
-
-            if ($last !== null) {
-                array_unshift($lines, $last);
+                if (isset($chunk)) {
+                    $chunk->setLines($diffLines);
+                }
             }
         }
 
diff --git a/core/vendor/sebastian/diff/tests/DifferTest.php b/core/vendor/sebastian/diff/tests/DifferTest.php
index 317d54005868d6929ea034717cf9ee3a5261ceae..a786325bc1b8beae1133a7e459df7563585fa218 100644
GIT binary patch
literal 11371
zcmeHNZExC05YAWpD^@5{NPq-GAgRgqk|tEGl$IzV_X(+5>?K$Qo3odsxhVhrW_E33
zgN<<tSL^OvskrNTdFEwzW_Nq``*bu_jt&%ZKzbw7B|~$}2>ec|!-+j4e8k9=IUK@(
z{+&LsL!d<BlD<#w*nqm+q!#(WoQDauEOO@hW9J}vW|{oZVDCMikG3P^4QJyq(e3H8
zV?K;Hp_W0$rp_!EG+RU4nNV)pR)tK*jKbKX$({t?_2<jZ*Sij?7clvVa`Hr7Vwf&>
z%)yK^gFKmh1k_-HYtI~=fg(eoK2j8mPM8aZusL)ec^{2zE6NNM-h8^b2jt&AIzazq
zJKw+cn9DB#OIv&o?2a(^uP^WVU)aQUo;$;#shiB=pC@3$1YU$isoXtt!V-BEeN0_f
z1cNyUh_D}=S%$j;ukxZ0cy!wW^4rdr?jM~i@*AnQL&FzWS7J~N4|cDSt_BW4{-Xnk
zIX(yE{E<2y25;y{{7xP7k#a_M4e%p#JjSVGbEachhBHgYs1ld)`)O%kFiCVMco!p9
zeJ`0ovjri?h@d3={<;hVGL%jTbsYK({Ore6DDps&bNLzb!g?UPL&u&ZeByTS!JwSp
zIQFAyFh@%E{}qtv_9Js#gal7QB1qtxhSv1#3q+WS9}{UsDtNLyzt09RcjoTpkQhSa
zEt@*b^;54qL{OL1`oL}>XPCo`dlx(tQFE=k(S$8Y?*`7TNJqjCw-X`=Dast)`Ey3c
zZYj(d4zLWg=bDlTj*wXqagSh%0@~kCNe4gPn@<N0v+bv|;U7(d9w6RG7KFoy6KO;7
z-)P|ft?R(bg0jh#U_nt%)`A68|MAser8iQOVg2=BLC<n7{8KB!0+6-C?^WqF>T{~s
zE@v*cC!ZLFqABX<y~~W{{sn72G!5a-rL=c>f7k1NA)h)ISDo8Es9jPUbPis>6RDQL
zM{F&M5#IB2a(>>os<dyF2YstpiO_mIm#nI#J-SyRdxJe$pix$|Xij4~hTij(xn1b>
zo!*FAqJOxsj62ah38QZiX^h#js;@AkTCI{U^!cVm#{j-uCSTc8-|`JoVXVGv&~md-
zQY)k$XHo&1(*ky;(T)!T5*}YF5P~Pt@gYl4;>G86y1g6fK+B_Ppx$Mu@klAe`B>7G
zM6jTO`W?!?Qg~4cg<Zk!Cy=CV<2W>NvoVLn@+hkB1*MdODFrk!Q3&LNDk%bJ3tk(&
z2v7LNw|ptL9mZ#lCHvu0B=H1abO`e;VR-&Yq^QfrLrwEGCHv8gMpAsFBuM58>>H3=
zY*yxJAgLh3m)TKA1T4~mq{!F;Ujp!iVHD^C#5tG6AU&YZV9_AnBz-$J(Ye>x3X(pj
z&tMa3iG)Oi31meEHx(y3m^*$gqo^@w$Yd3;MJy0zp|r^8=IjdcX+5(-e#m52tW_Xv
zD^`U-Zqq7M6TvTIwJoc%=ingZh)mH+Fl>vK83xOoi6NG3)(K^?kpq#D@p;8a>xJf<
z{GYFb#gyhJzMGTT7nhQ6S`^bj3<L^&sRt7<Hd%4ffKX^`%ldM6>&?bEhrF#!qyqtO
zlwqxo_lcOlk?fKP-?p}=gF!5VL@aS`L4*;2>y?=_C<r1M3a(KRrC!{&0!26kuq68>
z0nK(i18`t1lHS4Jh5ecDi45!2+?DeMYiU;z-mk!FCHE1q7cuGB{EHdipgDzo!`azc
zr+ckXP1RmZt=8^p^%JeQVryK~8rqAiH5yuRX9d{~9t9TLt_ITVv2n<MaQs(8O=07<
z#{_5m0aG)DNgvIu?{2Y85u0blX`&UENL|#L!i*K71>KIz;jXLLHZ>LCAJ>wRgvf8H
z^}vv)fhMo;l;nXUcV9sRU?;gXAP&SIqxe({#-_!DbB+V&B!~DKh>Kc1EyPH+!{J;Y
z0NzRlE{Nfl3GSmr5`gwPJgTY|+pp-@l}Yy&M8fac5CIx|1fqKG5H)g!=+%$g#-~~H
z4bx1mWtnF!B+fL?PP5H3b)B{J7o_$76Ky!`$1Fy2=F6#{gNX*ISyt6L{E?83b2j%)
zt@-N_fs?A?xV7>J=_DVJu++jM3ft+ghvXH1AJMzqA%bF(hkir^O@s|=t>{QLUTf8p
zHxyee(ChcK*^8~<Sih+~*-}&ch8A)jvb;34VMO_8YQu<fQfr~o!e&G+kol;!VJGFF
z)-EjBIViQT4TpLr9tDms@G3NV4_PP_yn8u#D~Piz?-Zg?uc^n-I#g@Nq;{$`RjpP(
zY_-(W*6B(89VyouwHln&z*V$&0+GPbM21GqXMii~s#<A~vRXM7xAA2RB6KKyi+FuX
z{2MYhD=G+TRZa!xYI@Khd&7u0zZZhR@T-?dFuL+hfIq1;L3XRsk|0(xkg_*v;w8fg
f7rK20|7X`bZYu2tuj1qh&Z7zi{7c?DzbbzN(hb7J

delta 1856
zcmb_dL2lbd6a~8I!U4J|&`mZUS;dBIIcZmkftn&m(i9Y_&QO-Mq{xv(MC1r0Wx<Pr
zXUHLXfTGvw0SfdIeV>vd1@5w3kb{{&@4x^4<IF#gf8E{Q{k&OiF1lA&7j#8lwpifH
zL)UJe%WS!->1}dJ?{9D4UBAD5_fzNd-BokL0nU0&Z9qk(sZ9A~Ql94}Wzwvw%WS@_
zGh0wxq_nLJWd&7sTPCKRnP){@KGVXMdDWp^R<FpG?bmK=M#*iOEwUtLj1I-6p^Yi?
ztgaiA(x$XeS&Biuifg<KfYxif%Zeo>wn#JHRWS^2%uW5_z>Qw;tH>^n#1fk#dRx_~
zsg6OIk>k02GC(~Da?t>SpTgEzVmgS)Dq5pr20A5gtNfZ7WJ%U>mYeb@)ql}J+B0#E
zbWm}+g?9C-c}eMiV1)LtT>LQU)F#{96m=^<m(oRdELKWt^0+o-7O$&Q8`}P1^$2lp
zfb&`dgGK{`QxtJ-STb$qaaCt=K|ND0^SCG=?J1<~4<tT9Cyg!k=CWl)dHhUs!~TL7
zESVz3EMQCKmfISxX@#pRN<kVfJ>o2|zVBUS7xj*P!d1Y1RBcSc-oxIEO<BTqrr7(h
zsv219SW`5VnsnHYrj8PX@mPfq(i0x_W)uwtx#4)G<X{-lF!Vj4G&zBX*&tG~H;F=}
zna>+XWAmGK%?V~C9>+>(O`#$=8v7D>NT8e`l0r8fl7Z__JQ)l+1P}_sh*5kwk`Y3q
zu+!##xs}2`jf8TCKyrH0m(i@v*_Tm(d<@b@PKU;hiljU79Yy1b8i!gC7wAdt`i&z;
z!n*+pBqs47f{66c@qJFp5T}~MX&@9=ab7U>1gJVaU+j~iUQa6FMqJln#4solN`k20
zAw3qZ<bik;4HR+ItaHHC;@1hHuu7gYat1=v+mk*FbdcyPeb6U&qQr>FLliyf=}1PC
zNYEe*y;gZG)Pr<|{>T`9$nEIUL<{KeIg!)m2Mn~+ADK&Uq9v;c;*n5lGLB>zT%zw&
zXrx+U9BlVm#lrxf)*_*rF)%CAHl#z-p@5QTeX!TfVQDlB<F;*X&O(tE9*WK?ra%mQ
zIS_#>m{iC}Q>n!z8Yn?<09fY2*{2Rt!#_yRUIn@R@XXUt91SMfC&zmLj7Q-wZ8T%R
z7g`={)Qad14?Q^kANQL$`4le=A1jC3h3?}mezTINKHpvcK=)scRytiYSZU~fjRUs8
z?~G?v*P9RB?ryicu^UXbH_44Hm)%29)$M8T`p0W`9rJBN5snzl(3cs155~j+Tzq0w
sJZHd5{QukeO=9zIW#-@SPo??cQ0n43TKw_%>sNn%``z!azWMFqUoONlFaQ7m

diff --git a/core/vendor/sebastian/diff/tests/LCS/TimeEfficientImplementationTest.php b/core/vendor/sebastian/diff/tests/LCS/TimeEfficientImplementationTest.php
new file mode 100644
index 000000000000..babc407636e3
--- /dev/null
+++ b/core/vendor/sebastian/diff/tests/LCS/TimeEfficientImplementationTest.php
@@ -0,0 +1,175 @@
+<?php
+/*
+ * This file is part of the Diff package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace SebastianBergmann\Diff\LCS;
+
+use PHPUnit_Framework_TestCase;
+
+/**
+ * Some of these tests are volontary stressfull, in order to give some approximative benchmark hints.
+ */
+class TimeEfficientImplementationTest extends PHPUnit_Framework_TestCase
+{
+    private $implementation;
+    private $memory_limit;
+    private $stress_sizes = array(1, 2, 3, 100, 500, 1000, 2000);
+
+    protected function setUp()
+    {
+        $this->memory_limit = ini_get('memory_limit');
+        ini_set('memory_limit', '256M');
+
+        $this->implementation = new TimeEfficientImplementation;
+    }
+
+    protected function tearDown()
+    {
+        ini_set('memory_limit', $this->memory_limit);
+    }
+
+    public function testBothEmpty()
+    {
+        $from   = array();
+        $to     = array();
+        $common = $this->implementation->calculate($from, $to);
+
+        $this->assertEquals(array(), $common);
+    }
+
+    public function testIsStrictComparison()
+    {
+        $from = array(
+            false, 0, 0.0, '', null, array(),
+            true, 1, 1.0, 'foo', array('foo', 'bar'), array('foo' => 'bar')
+        );
+        $to = $from;
+        $common = $this->implementation->calculate($from, $to);
+
+        $this->assertEquals($from, $common);
+
+        $to = array(
+            false, false, false, false, false, false,
+            true, true, true, true, true, true
+        );
+        $expected = array(
+            false,
+            true,
+        );
+        $common = $this->implementation->calculate($from, $to);
+
+        $this->assertEquals($expected, $common);
+    }
+
+    public function testEqualSequences()
+    {
+        foreach ($this->stress_sizes as $size) {
+            $range  = range(1, $size);
+            $from   = $range;
+            $to     = $range;
+            $common = $this->implementation->calculate($from, $to);
+
+            $this->assertEquals($range, $common);
+        }
+    }
+
+    public function testDistinctSequences()
+    {
+        $from  = array('A');
+        $to    = array('B');
+        $common = $this->implementation->calculate($from, $to);
+        $this->assertEquals(array(), $common);
+
+        $from  = array('A', 'B', 'C');
+        $to    = array('D', 'E', 'F');
+        $common = $this->implementation->calculate($from, $to);
+        $this->assertEquals(array(), $common);
+
+        foreach ($this->stress_sizes as $size) {
+            $from  = range(1, $size);
+            $to    = range($size + 1, $size * 2);
+            $common = $this->implementation->calculate($from, $to);
+            $this->assertEquals(array(), $common);
+        }
+    }
+
+    public function testCommonSubsequence()
+    {
+        $from     = array('A',      'C',      'E', 'F', 'G'     );
+        $to       = array('A', 'B',      'D', 'E',           'H');
+        $expected = array('A',                'E'               );
+        $common   = $this->implementation->calculate($from, $to);
+        $this->assertEquals($expected, $common);
+
+        $from     = array('A',      'C',      'E', 'F', 'G'     );
+        $to       = array(     'B', 'C', 'D', 'E', 'F',      'H');
+        $expected = array('C',                'E', 'F'          );
+        $common   = $this->implementation->calculate($from, $to);
+        $this->assertEquals($expected, $common);
+
+        foreach ($this->stress_sizes as $size) {
+            $from     = $size < 2 ? array(1) : range(1, $size + 1, 2);
+            $to       = $size < 3 ? array(1) : range(1, $size + 1, 3);
+            $expected = $size < 6 ? array(1) : range(1, $size + 1, 6);
+            $common   = $this->implementation->calculate($from, $to);
+
+            $this->assertEquals($expected, $common);
+        }
+    }
+
+    public function testSingleElementSubsequenceAtStart()
+    {
+        foreach ($this->stress_sizes as $size) {
+            $from   = range(1, $size);
+            $to     = array_slice($from, 0, 1);
+            $common = $this->implementation->calculate($from, $to);
+
+            $this->assertEquals($to, $common);
+        }
+    }
+
+    public function testSingleElementSubsequenceAtMiddle()
+    {
+        foreach ($this->stress_sizes as $size) {
+            $from   = range(1, $size);
+            $to     = array_slice($from, (int) $size / 2, 1);
+            $common = $this->implementation->calculate($from, $to);
+
+            $this->assertEquals($to, $common);
+        }
+    }
+
+    public function testSingleElementSubsequenceAtEnd()
+    {
+        foreach ($this->stress_sizes as $size) {
+            $from   = range(1, $size);
+            $to     = array_slice($from, $size - 1, 1);
+            $common = $this->implementation->calculate($from, $to);
+
+            $this->assertEquals($to, $common);
+        }
+    }
+
+    public function testReversedSequences()
+    {
+        $from     = array('A', 'B');
+        $to       = array('B', 'A');
+        $expected = array('A');
+        $common   = $this->implementation->calculate($from, $to);
+        $this->assertEquals($expected, $common);
+
+        foreach ($this->stress_sizes as $size) {
+            $from   = range(1, $size);
+            $to     = array_reverse($from);
+            $common = $this->implementation->calculate($from, $to);
+
+            $this->assertEquals(array(1), $common);
+        }
+    }
+}
diff --git a/core/vendor/sebastian/diff/tests/ParserTest.php b/core/vendor/sebastian/diff/tests/ParserTest.php
new file mode 100644
index 000000000000..3a7b97204f61
--- /dev/null
+++ b/core/vendor/sebastian/diff/tests/ParserTest.php
@@ -0,0 +1,62 @@
+<?php
+/*
+ * This file is part of the Diff package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace SebastianBergmann\Diff;
+
+use PHPUnit_Framework_TestCase;
+
+class ParserTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * @var Parser
+     */
+    private $parser;
+
+    protected function setUp()
+    {
+        $this->parser = new Parser;
+    }
+
+    public function testParse()
+    {
+        $content = file_get_contents(__DIR__ . '/fixtures/patch.txt');
+
+        $diffs = $this->parser->parse($content);
+
+        $this->assertCount(1, $diffs);
+
+        $chunks = $diffs[0]->getChunks();
+        $this->assertCount(1, $chunks);
+
+        $this->assertEquals(20, $chunks[0]->getStart());
+
+        $this->assertCount(5, $chunks[0]->getLines());
+    }
+
+    public function testParseWithMultipleChunks()
+    {
+        $content = file_get_contents(__DIR__ . '/fixtures/patch2.txt');
+
+        $diffs = $this->parser->parse($content);
+
+        $this->assertCount(1, $diffs);
+
+        $chunks = $diffs[0]->getChunks();
+        $this->assertCount(3, $chunks);
+
+        $this->assertEquals(20, $chunks[0]->getStart());
+        $this->assertEquals(320, $chunks[1]->getStart());
+        $this->assertEquals(600, $chunks[2]->getStart());
+
+        $this->assertCount(5, $chunks[0]->getLines());
+        $this->assertCount(5, $chunks[1]->getLines());
+        $this->assertCount(5, $chunks[2]->getLines());
+    }
+}
diff --git a/core/vendor/sebastian/diff/tests/fixtures/patch.txt b/core/vendor/sebastian/diff/tests/fixtures/patch.txt
new file mode 100644
index 000000000000..144b61d01543
--- /dev/null
+++ b/core/vendor/sebastian/diff/tests/fixtures/patch.txt
@@ -0,0 +1,9 @@
+diff --git a/Foo.php b/Foo.php
+index abcdefg..abcdefh 100644
+--- a/Foo.php
++++ b/Foo.php
+@@ -20,4 +20,5 @@ class Foo
+     const ONE = 1;
+     const TWO = 2;
++    const THREE = 3;
+     const FOUR = 4;
diff --git a/core/vendor/sebastian/diff/tests/fixtures/patch2.txt b/core/vendor/sebastian/diff/tests/fixtures/patch2.txt
new file mode 100644
index 000000000000..41fbc9597a48
--- /dev/null
+++ b/core/vendor/sebastian/diff/tests/fixtures/patch2.txt
@@ -0,0 +1,21 @@
+diff --git a/Foo.php b/Foo.php
+index abcdefg..abcdefh 100644
+--- a/Foo.php
++++ b/Foo.php
+@@ -20,4 +20,5 @@ class Foo
+     const ONE = 1;
+     const TWO = 2;
++    const THREE = 3;
+     const FOUR = 4;
+
+@@ -320,4 +320,5 @@ class Foo
+     const A = 'A';
+     const B = 'B';
++    const C = 'C';
+     const D = 'D';
+
+@@ -600,4 +600,5 @@ class Foo
+     public function doSomething() {
+
++        return 'foo';
+     }
diff --git a/core/vendor/sebastian/environment/LICENSE b/core/vendor/sebastian/environment/LICENSE
index f2eec040989b..08539af44db5 100644
--- a/core/vendor/sebastian/environment/LICENSE
+++ b/core/vendor/sebastian/environment/LICENSE
@@ -1,6 +1,6 @@
 Environment
 
-Copyright (c) 2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2014-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/sebastian/environment/composer.json b/core/vendor/sebastian/environment/composer.json
index 15d81887b736..fd3ec7dc3bce 100644
--- a/core/vendor/sebastian/environment/composer.json
+++ b/core/vendor/sebastian/environment/composer.json
@@ -14,7 +14,7 @@
         "php": ">=5.3.3"
     },
     "require-dev": {
-        "phpunit/phpunit": "~4.3"
+        "phpunit/phpunit": "~4.4"
     },
     "autoload": {
         "classmap": [
@@ -23,7 +23,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.2.x-dev"
+            "dev-master": "1.3.x-dev"
         }
     }
 }
diff --git a/core/vendor/sebastian/environment/src/Console.php b/core/vendor/sebastian/environment/src/Console.php
index 3c7b7f9ebfb1..287bce1e7ecc 100644
--- a/core/vendor/sebastian/environment/src/Console.php
+++ b/core/vendor/sebastian/environment/src/Console.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Environment
- *
- * Copyright (c) 2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Environment package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Environment
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/environment
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Environment;
@@ -52,6 +19,10 @@
  */
 class Console
 {
+    const STDIN  = 0;
+    const STDOUT = 1;
+    const STDERR = 2;
+
     /**
      * Returns true if STDOUT supports colorization.
      *
@@ -66,7 +37,11 @@ public function hasColorSupport()
             return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
         }
 
-        return function_exists('posix_isatty') && @posix_isatty(STDOUT);
+        if (!defined('STDOUT')) {
+            return false;
+        }
+
+        return $this->isInteractive(STDOUT);
     }
 
     /**
@@ -82,6 +57,10 @@ public function getNumberOfColumns()
             return 79;
         }
 
+        if (!$this->isInteractive(self::STDIN)) {
+            return 80;
+        }
+
         if (preg_match('#\d+ (\d+)#', shell_exec('stty size'), $match) === 1) {
             return (int) $match[1];
         }
@@ -92,4 +71,16 @@ public function getNumberOfColumns()
 
         return 80;
     }
+
+    /**
+     * Returns if the file descriptor is an interactive terminal or not.
+     *
+     * @param  int|resource $fileDescriptor
+     *
+     * @return boolean
+     */
+    public function isInteractive($fileDescriptor = self::STDOUT)
+    {
+        return function_exists('posix_isatty') && @posix_isatty($fileDescriptor);
+    }
 }
diff --git a/core/vendor/sebastian/environment/src/Runtime.php b/core/vendor/sebastian/environment/src/Runtime.php
index b241ca0d7c97..74f6e2c810e6 100644
--- a/core/vendor/sebastian/environment/src/Runtime.php
+++ b/core/vendor/sebastian/environment/src/Runtime.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Environment
- *
- * Copyright (c) 2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
+/*
+ * This file is part of the Environment package.
  *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Environment
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/environment
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Environment;
@@ -48,7 +15,7 @@
  *
  * @package    Environment
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       http://www.github.com/sebastianbergmann/environment
  */
diff --git a/core/vendor/sebastian/environment/tests/ConsoleTest.php b/core/vendor/sebastian/environment/tests/ConsoleTest.php
index cb80a62c3549..6b40172b0cf1 100644
--- a/core/vendor/sebastian/environment/tests/ConsoleTest.php
+++ b/core/vendor/sebastian/environment/tests/ConsoleTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Environment
+/*
+ * This file is part of the Environment package.
  *
- * Copyright (c) 2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Environment
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/environment
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Environment;
@@ -57,8 +24,25 @@ protected function setUp()
         $this->console = new Console;
     }
 
+    /**
+     * @covers \SebastianBergmann\Environment\Console::isInteractive
+     */
+    public function testCanDetectIfStdoutIsInteractiveByDefault()
+    {
+        $this->assertInternalType('boolean', $this->console->isInteractive());
+    }
+
+    /**
+     * @covers \SebastianBergmann\Environment\Console::isInteractive
+     */
+    public function testCanDetectIfFileDescriptorIsInteractive()
+    {
+        $this->assertInternalType('boolean', $this->console->isInteractive(STDOUT));
+    }
+
     /**
      * @covers \SebastianBergmann\Environment\Console::hasColorSupport
+     * @uses   \SebastianBergmann\Environment\Console::isInteractive
      */
     public function testCanDetectColorSupport()
     {
@@ -66,7 +50,8 @@ public function testCanDetectColorSupport()
     }
 
     /**
-     * @covers \SebastianBergmann\Environment\Console::hasColorSupport
+     * @covers \SebastianBergmann\Environment\Console::getNumberOfColumns
+     * @uses   \SebastianBergmann\Environment\Console::isInteractive
      */
     public function testCanDetectNumberOfColumns()
     {
diff --git a/core/vendor/sebastian/environment/tests/RuntimeTest.php b/core/vendor/sebastian/environment/tests/RuntimeTest.php
index e86d6fa88cdc..8ea837305658 100644
--- a/core/vendor/sebastian/environment/tests/RuntimeTest.php
+++ b/core/vendor/sebastian/environment/tests/RuntimeTest.php
@@ -1,44 +1,11 @@
 <?php
-/**
- * Environment
+/*
+ * This file is part of the Environment package.
  *
- * Copyright (c) 2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Environment
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/environment
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Environment;
diff --git a/core/vendor/sebastian/exporter/LICENSE b/core/vendor/sebastian/exporter/LICENSE
index 008d9c0e08f5..55a13d471f89 100644
--- a/core/vendor/sebastian/exporter/LICENSE
+++ b/core/vendor/sebastian/exporter/LICENSE
@@ -1,6 +1,6 @@
 Exporter
 
-Copyright (c) 2002-2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/sebastian/exporter/composer.json b/core/vendor/sebastian/exporter/composer.json
index a418eb7cd6be..723596e14a26 100644
--- a/core/vendor/sebastian/exporter/composer.json
+++ b/core/vendor/sebastian/exporter/composer.json
@@ -27,10 +27,11 @@
         }
     ],
     "require": {
-        "php": ">=5.3.3"
+        "php": ">=5.3.3",
+        "sebastian/recursion-context": "~1.0"
     },
     "require-dev": {
-        "phpunit/phpunit": "~4.0"
+        "phpunit/phpunit": "~4.4"
     },
     "autoload": {
         "classmap": [
@@ -39,7 +40,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.0.x-dev"
+            "dev-master": "1.2.x-dev"
         }
     }
 }
diff --git a/core/vendor/sebastian/exporter/phpunit.xml.dist b/core/vendor/sebastian/exporter/phpunit.xml.dist
index 15fb7481a2a0..8d85af64710f 100644
--- a/core/vendor/sebastian/exporter/phpunit.xml.dist
+++ b/core/vendor/sebastian/exporter/phpunit.xml.dist
@@ -1,16 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <phpunit backupGlobals="false"
-         backupStaticAttributes="false"
          bootstrap="vendor/autoload.php"
-         strict="true"
+         beStrictAboutTestsThatDoNotTestAnything="true"
+         beStrictAboutOutputDuringTests="true"
+         beStrictAboutTodoAnnotatedTests="true"
+         checkForUnintentionallyCoveredCode="true"
+         forceCoversAnnotation="true"
          verbose="true">
  <testsuites>
-  <testsuite name="Exporter">
+  <testsuite name="exporter">
    <directory>tests</directory>
   </testsuite>
  </testsuites>
  <filter>
-  <whitelist addUncoveredFilesFromWhitelist="true">
+  <whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="true">
    <directory>src</directory>
   </whitelist>
  </filter>
diff --git a/core/vendor/sebastian/exporter/src/Context.php b/core/vendor/sebastian/exporter/src/Context.php
deleted file mode 100644
index 10b1a5fc9fdf..000000000000
--- a/core/vendor/sebastian/exporter/src/Context.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-/**
- * Exporter
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Adam Harvey <aharvey@php.net>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
- */
-
-namespace SebastianBergmann\Exporter;
-
-/**
- * A context containing previously rendered arrays and objects when recursively
- * exporting a value.
- *
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Adam Harvey <aharvey@php.net>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
- */
-class Context {
-    /**
-     * Previously seen arrays.
-     *
-     * @var array[] $arrays
-     */
-    protected $arrays = array();
-
-    /**
-     * Previously seen objects.
-     *
-     * @var SplObjectStorage $objects
-     */
-    protected $objects;
-
-    /** Initialises the context. */
-    public function __construct()
-    {
-        $this->arrays = array();
-        $this->objects = new \SplObjectStorage;
-    }
-
-    /**
-     * Adds a value to the export context.
-     *
-     * @param mixed $value The value to add.
-     * @return mixed The ID of the stored value, either as a string or integer.
-     * @throws SebastianBergmann\Exporter\Exception Thrown if $value is not an array or object.
-     */
-    public function add(&$value)
-    {
-        if (is_array($value)) {
-            return $this->addArray($value);
-        }
-
-        else if (is_object($value)) {
-            return $this->addObject($value);
-        }
-
-        throw new Exception(
-          'Only arrays and objects are supported'
-        );
-    }
-
-    /**
-     * Checks if the given value exists within the context.
-     *
-     * @param mixed $value The value to check.
-     * @return mixed The string or integer ID of the stored value if it has
-     *               already been seen, or boolean false if the value is not
-     *               stored.
-     * @throws SebastianBergmann\Exporter\Exception Thrown if $value is not an array or object.
-     */
-    public function contains(&$value)
-    {
-        if (is_array($value)) {
-            return $this->containsArray($value);
-        }
-
-        else if (is_object($value)) {
-            return $this->containsObject($value);
-        }
-
-        throw new Exception(
-          'Only arrays and objects are supported'
-        );
-    }
-
-    /**
-     * Stores an array within the context.
-     *
-     * @param array $value The value to store.
-     * @return integer The internal ID of the array.
-     */
-    protected function addArray(array &$value)
-    {
-        if (($key = $this->containsArray($value)) !== FALSE) {
-            return $key;
-        }
-
-        $this->arrays[] = &$value;
-
-        return count($this->arrays) - 1;
-    }
-
-    /**
-     * Stores an object within the context.
-     *
-     * @param object $value
-     * @return string The ID of the object.
-     */
-    protected function addObject($value)
-    {
-        if (!$this->objects->contains($value)) {
-            $this->objects->attach($value);
-        }
-
-        return spl_object_hash($value);
-    }
-
-    /**
-     * Checks if the given array exists within the context.
-     *
-     * @param array $value The array to check.
-     * @return mixed The integer ID of the array if it exists, or boolean false
-     *               otherwise.
-     */
-    protected function containsArray(array &$value)
-    {
-        $keys = array_keys($this->arrays, $value, TRUE);
-        $gen = '_Exporter_Key_'.hash('sha512', microtime(TRUE));
-
-        foreach ($keys as $key) {
-            $this->arrays[$key][$gen] = $gen;
-
-            if (isset($value[$gen]) && $value[$gen] === $gen) {
-                unset($this->arrays[$key][$gen]);
-                return $key;
-            }
-
-            unset($this->arrays[$key][$gen]);
-        }
-
-        return FALSE;
-    }
-
-    /**
-     * Checks if the given object exists within the context.
-     *
-     * @param object $value The object to check.
-     * @return mixed The string ID of the object if it exists, or boolean false
-     *               otherwise.
-     */
-    protected function containsObject($value)
-    {
-        if ($this->objects->contains($value)) {
-            return spl_object_hash($value);
-        }
-
-        return FALSE;
-    }
-}
diff --git a/core/vendor/sebastian/exporter/src/Exception.php b/core/vendor/sebastian/exporter/src/Exception.php
deleted file mode 100644
index c198a38cc726..000000000000
--- a/core/vendor/sebastian/exporter/src/Exception.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Exporter
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     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 THE
- * COPYRIGHT OWNER 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.
- *
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
- */
-
-namespace SebastianBergmann\Exporter;
-
-/**
- * Exception for Exporter runtime errors.
- *
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
- */
-class Exception extends \RuntimeException
-{
-}
diff --git a/core/vendor/sebastian/exporter/src/Exporter.php b/core/vendor/sebastian/exporter/src/Exporter.php
index b661f9eea2e9..47208f3d58f1 100644
--- a/core/vendor/sebastian/exporter/src/Exporter.php
+++ b/core/vendor/sebastian/exporter/src/Exporter.php
@@ -1,48 +1,17 @@
 <?php
-/**
- * Exporter
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Exporter package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Exporter;
 
+use SebastianBergmann\RecursionContext\Context;
+
 /**
  * A nifty utility for visualizing PHP variables.
  *
@@ -56,7 +25,7 @@
  *
  * @package    Exporter
  * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link       https://github.com/sebastianbergmann/exporter
  */
@@ -85,110 +54,41 @@ public function export($value, $indentation = 0)
     }
 
     /**
-     * Recursive implementation of export
-     *
-     * @param  mixed $value The value to export
-     * @param  integer $indentation The indentation level of the 2nd+ line
-     * @param  SebastianBergmann\Exporter\Context $processed Contains all objects and arrays that have previously been rendered
+     * @param  mixed   $data
+     * @param  Context $context
      * @return string
-     * @see    SebastianBergmann\Exporter\Exporter::export
      */
-    protected function recursiveExport(&$value, $indentation, $processed = NULL)
+    public function shortenedRecursiveExport(&$data, Context $context = null)
     {
-        if ($value === NULL) {
-            return 'null';
-        }
-
-        if ($value === TRUE) {
-            return 'true';
-        }
+        $result = array();
+        $exporter = new Exporter();
 
-        if ($value === FALSE) {
-            return 'false';
+        if (!$context) {
+            $context = new Context;
         }
 
-        if (is_float($value) && floatval(intval($value)) === $value) {
-            return "$value.0";
-        }
+        $context->add($data);
 
-        if (is_resource($value)) {
-            return sprintf(
-              'resource(%d) of type (%s)',
-              $value,
-              get_resource_type($value)
-            );
-        }
-
-        if (is_string($value)) {
-            // Match for most non printable chars somewhat taking multibyte chars into account
-            if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) {
-                return 'Binary String: 0x' . bin2hex($value);
-            }
-
-            return "'" .
-                   str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) .
-                   "'";
-        }
-
-        $whitespace = str_repeat(' ', 4 * $indentation);
-
-        if (!$processed) {
-            $processed = new Context;
-        }
-
-        if (is_array($value)) {
-            if (($key = $processed->contains($value)) !== FALSE) {
-                return 'Array &' . $key;
-            }
-
-            $key = $processed->add($value);
-            $values = '';
-
-            if (count($value) > 0) {
-                foreach ($value as $k => $v) {
-                    $values .= sprintf(
-                      '%s    %s => %s' . "\n",
-                      $whitespace,
-                      $this->recursiveExport($k, $indentation),
-                      $this->recursiveExport($value[$k], $indentation + 1, $processed)
-                    );
+        foreach ($data as $key => $value) {
+            if (is_array($value)) {
+                if ($context->contains($data[$key]) !== false) {
+                    $result[] = '*RECURSION*';
                 }
 
-                $values = "\n" . $values . $whitespace;
-            }
-
-            return sprintf('Array &%s (%s)', $key, $values);
-        }
-
-        if (is_object($value)) {
-            $class = get_class($value);
-
-            if ($hash = $processed->contains($value)) {
-                return sprintf('%s Object &%s', $class, $hash);
-            }
-
-            $hash = $processed->add($value);
-            $values = '';
-
-            $array = $this->toArray($value);
-
-            if (count($array) > 0) {
-                foreach ($array as $k => $v) {
-                    $values .= sprintf(
-                      '%s    %s => %s' . "\n",
-                      $whitespace,
-                      $this->recursiveExport($k, $indentation),
-                      $this->recursiveExport($v, $indentation + 1, $processed)
+                else {
+                    $result[] = sprintf(
+                        'array(%s)',
+                        $this->shortenedRecursiveExport($data[$key], $context)
                     );
                 }
-
-                $values = "\n" . $values . $whitespace;
             }
 
-            return sprintf('%s Object &%s (%s)', $class, $hash, $values);
+            else {
+                $result[] = $exporter->shortenedExport($value);
+            }
         }
 
-        return var_export($value, TRUE);
+        return join(', ', $result);
     }
 
     /**
@@ -219,16 +119,16 @@ public function shortenedExport($value)
 
         if (is_object($value)) {
             return sprintf(
-              '%s Object (%s)',
-              get_class($value),
-              count($this->toArray($value)) > 0 ? '...' : ''
+                '%s Object (%s)',
+                get_class($value),
+                count($this->toArray($value)) > 0 ? '...' : ''
             );
         }
 
         if (is_array($value)) {
             return sprintf(
-              'Array (%s)',
-              count($value) > 0 ? '...' : ''
+                'Array (%s)',
+                count($value) > 0 ? '...' : ''
             );
         }
 
@@ -252,11 +152,9 @@ public function toArray($value)
 
         foreach ((array)$value as $key => $val) {
             // properties are transformed to keys in the following way:
-
             // private   $property => "\0Classname\0property"
             // protected $property => "\0*\0property"
             // public    $property => "property"
-
             if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) {
                 $key = $matches[1];
             }
@@ -276,13 +174,15 @@ public function toArray($value)
             // However, the fast method does work in HHVM, and exposes the
             // internal implementation. Hide it again.
             if (property_exists('\SplObjectStorage', '__storage')) {
-              unset($array['__storage']);
-            } else if (property_exists('\SplObjectStorage', 'storage')) {
-              unset($array['storage']);
+                unset($array['__storage']);
+            } elseif (property_exists('\SplObjectStorage', 'storage')) {
+                unset($array['storage']);
             }
+
             if (property_exists('\SplObjectStorage', '__key')) {
-              unset($array['__key']);
+                unset($array['__key']);
             }
+
             foreach ($value as $key => $val) {
                 $array[spl_object_hash($val)] = array(
                     'obj' => $val,
@@ -293,4 +193,110 @@ public function toArray($value)
 
         return $array;
     }
+
+    /**
+     * Recursive implementation of export
+     *
+     * @param  mixed $value The value to export
+     * @param  integer $indentation The indentation level of the 2nd+ line
+     * @param  \SebastianBergmann\RecursionContext\Context $processed Previously processed objects
+     * @return string
+     * @see    SebastianBergmann\Exporter\Exporter::export
+     */
+    protected function recursiveExport(&$value, $indentation, $processed = null)
+    {
+        if ($value === null) {
+            return 'null';
+        }
+
+        if ($value === true) {
+            return 'true';
+        }
+
+        if ($value === false) {
+            return 'false';
+        }
+
+        if (is_float($value) && floatval(intval($value)) === $value) {
+            return "$value.0";
+        }
+
+        if (is_resource($value)) {
+            return sprintf(
+                'resource(%d) of type (%s)',
+                $value,
+                get_resource_type($value)
+            );
+        }
+
+        if (is_string($value)) {
+            // Match for most non printable chars somewhat taking multibyte chars into account
+            if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) {
+                return 'Binary String: 0x' . bin2hex($value);
+            }
+
+            return "'" .
+            str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) .
+            "'";
+        }
+
+        $whitespace = str_repeat(' ', 4 * $indentation);
+
+        if (!$processed) {
+            $processed = new Context;
+        }
+
+        if (is_array($value)) {
+            if (($key = $processed->contains($value)) !== false) {
+                return 'Array &' . $key;
+            }
+
+            $key    = $processed->add($value);
+            $values = '';
+
+            if (count($value) > 0) {
+                foreach ($value as $k => $v) {
+                    $values .= sprintf(
+                        '%s    %s => %s' . "\n",
+                        $whitespace,
+                        $this->recursiveExport($k, $indentation),
+                        $this->recursiveExport($value[$k], $indentation + 1, $processed)
+                    );
+                }
+
+                $values = "\n" . $values . $whitespace;
+            }
+
+            return sprintf('Array &%s (%s)', $key, $values);
+        }
+
+        if (is_object($value)) {
+            $class = get_class($value);
+
+            if ($hash = $processed->contains($value)) {
+                return sprintf('%s Object &%s', $class, $hash);
+            }
+
+            $hash   = $processed->add($value);
+            $values = '';
+            $array  = $this->toArray($value);
+
+            if (count($array) > 0) {
+                foreach ($array as $k => $v) {
+                    $values .= sprintf(
+                        '%s    %s => %s' . "\n",
+                        $whitespace,
+                        $this->recursiveExport($k, $indentation),
+                        $this->recursiveExport($v, $indentation + 1, $processed)
+                    );
+                }
+
+                $values = "\n" . $values . $whitespace;
+            }
+
+            return sprintf('%s Object &%s (%s)', $class, $hash, $values);
+        }
+
+        return var_export($value, true);
+    }
 }
diff --git a/core/vendor/sebastian/exporter/tests/ExporterTest.php b/core/vendor/sebastian/exporter/tests/ExporterTest.php
index 85d262470077..6b590bfb3563 100644
--- a/core/vendor/sebastian/exporter/tests/ExporterTest.php
+++ b/core/vendor/sebastian/exporter/tests/ExporterTest.php
@@ -1,59 +1,23 @@
 <?php
-/**
- * Exporter
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Exporter package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann\Exporter;
 
 /**
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
+ * @covers SebastianBergmann\Exporter\Exporter
  */
 class ExporterTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var Exporter
+     */
     private $exporter;
 
     protected function setUp()
@@ -70,9 +34,9 @@ public function exportProvider()
 
         $obj = new \stdClass;
         //@codingStandardsIgnoreStart
-        $obj->null = NULL;
+        $obj->null = null;
         //@codingStandardsIgnoreEnd
-        $obj->boolean = TRUE;
+        $obj->boolean = true;
         $obj->integer = 1;
         $obj->double = 1.2;
         $obj->string = '1';
@@ -87,15 +51,16 @@ public function exportProvider()
         $storage->foo = $obj2;
 
         return array(
-            array(NULL, 'null'),
-            array(TRUE, 'true'),
+            array(null, 'null'),
+            array(true, 'true'),
+            array(false, 'false'),
             array(1, '1'),
             array(1.0, '1.0'),
             array(1.2, '1.2'),
             array(fopen('php://memory', 'r'), 'resource(%d) of type (stream)'),
             array('1', "'1'"),
             array(array(array(1,2,3), array(3,4,5)),
-<<<EOF
+        <<<EOF
 Array &0 (
     0 => Array &1 (
         0 => 1
@@ -112,7 +77,7 @@ public function exportProvider()
             ),
             // \n\r and \r is converted to \n
             array("this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext",
-<<<EOF
+            <<<EOF
 'this
 is
 a
@@ -128,7 +93,7 @@ public function exportProvider()
             ),
             array(new \stdClass, 'stdClass Object &%x ()'),
             array($obj,
-<<<EOF
+            <<<EOF
 stdClass Object &%x (
     'null' => null
     'boolean' => true
@@ -159,7 +124,7 @@ public function exportProvider()
             ),
             array(array(), 'Array &%d ()'),
             array($storage,
-<<<EOF
+            <<<EOF
 SplObjectStorage Object &%x (
     'foo' => stdClass Object &%x (
         'foo' => 'bar'
@@ -172,7 +137,7 @@ public function exportProvider()
 EOF
             ),
             array($obj3,
-<<<EOF
+            <<<EOF
 stdClass Object &%x (
     0 => 1
     1 => 2
@@ -210,7 +175,8 @@ public function exportProvider()
     public function testExport($value, $expected)
     {
         $this->assertStringMatchesFormat(
-          $expected, $this->trimnl($this->exporter->export($value))
+            $expected,
+            $this->trimNewline($this->exporter->export($value))
         );
     }
 
@@ -225,8 +191,8 @@ public function testExport2()
 
         $array = array(
             0 => 0,
-            'null' => NULL,
-            'boolean' => TRUE,
+            'null' => null,
+            'boolean' => true,
             'integer' => 1,
             'double' => 1.2,
             'string' => '1',
@@ -293,7 +259,8 @@ public function testExport2()
 EOF;
 
         $this->assertStringMatchesFormat(
-            $expected, $this->trimnl($this->exporter->export($array))
+            $expected,
+            $this->trimNewline($this->exporter->export($array))
         );
     }
 
@@ -307,8 +274,8 @@ public function shortenedExportProvider()
         );
 
         return array(
-            array(NULL, 'null'),
-            array(TRUE, 'true'),
+            array(null, 'null'),
+            array(true, 'true'),
             array(1, '1'),
             array(1.0, '1.0'),
             array(1.2, '1.2'),
@@ -328,8 +295,8 @@ public function shortenedExportProvider()
     public function testShortenedExport($value, $expected)
     {
         $this->assertSame(
-          $expected,
-          $this->trimnl($this->exporter->shortenedExport($value))
+            $expected,
+            $this->trimNewline($this->exporter->shortenedExport($value))
         );
     }
 
@@ -349,11 +316,17 @@ public function provideNonBinaryMultibyteStrings()
     public function testNonBinaryStringExport($value, $expectedLength)
     {
         $this->assertRegExp(
-          "~'.{{$expectedLength}}'\$~s", $this->exporter->export($value)
+            "~'.{{$expectedLength}}'\$~s",
+            $this->exporter->export($value)
         );
     }
 
-    protected function trimnl($string)
+    public function testNonObjectCanBeReturnedAsArray()
+    {
+        $this->assertEquals(array(true), $this->exporter->toArray(true));
+    }
+
+    private function trimNewline($string)
     {
         return preg_replace('/[ ]*\n/', "\n", $string);
     }
diff --git a/core/vendor/sebastian/recursion-context/.gitignore b/core/vendor/sebastian/recursion-context/.gitignore
new file mode 100644
index 000000000000..3beb10f9211e
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/.gitignore
@@ -0,0 +1,9 @@
+.idea
+phpunit.xml
+composer.lock
+composer.phar
+vendor/
+cache.properties
+build/LICENSE
+build/README.md
+build/*.tgz
diff --git a/core/vendor/sebastian/recursion-context/.travis.yml b/core/vendor/sebastian/recursion-context/.travis.yml
new file mode 100644
index 000000000000..f239e93430ac
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/.travis.yml
@@ -0,0 +1,22 @@
+language: php
+
+php:
+  - 5.3.3
+  - 5.3
+  - 5.4
+  - 5.5
+  - 5.6
+  - hhvm
+  - hhvm-nightly
+
+sudo: false
+
+before_script:
+  - composer self-update
+  - composer install --no-interaction --prefer-source --dev
+
+script: ./vendor/bin/phpunit
+
+notifications:
+  email: false
+  irc: "irc.freenode.org#phpunit"
diff --git a/core/vendor/sebastian/recursion-context/LICENSE b/core/vendor/sebastian/recursion-context/LICENSE
new file mode 100644
index 000000000000..f8c30c27c0c5
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/LICENSE
@@ -0,0 +1,33 @@
+Recursion Context
+
+Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ * 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.
+
+ * Neither the name of Sebastian Bergmann nor the names of his
+   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 THE
+COPYRIGHT OWNER 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.
diff --git a/core/vendor/sebastian/recursion-context/README.md b/core/vendor/sebastian/recursion-context/README.md
new file mode 100644
index 000000000000..bd43985cbff1
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/README.md
@@ -0,0 +1,13 @@
+# Recursion Context
+
+...
+
+## Installation
+
+To add Recursion Context as a local, per-project dependency to your project, simply add a dependency on `sebastian/recursion-context` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Recursion Context 1.0:
+
+    {
+        "require": {
+            "sebastian/recursion-context": "~1.0"
+        }
+    }
diff --git a/core/vendor/sebastian/recursion-context/build.xml b/core/vendor/sebastian/recursion-context/build.xml
new file mode 100644
index 000000000000..b4fd19351089
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/build.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="recursion-context">
+ <target name="clean" description="Cleanup build artifacts">
+  <delete dir="${basedir}/vendor"/>
+  <delete file="${basedir}/composer.lock"/>
+ </target>
+
+ <target name="composer" depends="clean" description="Install dependencies with Composer">
+  <tstamp>
+   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
+  </tstamp>
+  <delete>
+   <fileset dir="${basedir}">
+    <include name="composer.phar" />
+    <date datetime="${thirty.days.ago}" when="before"/>
+   </fileset>
+  </delete>
+
+  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
+
+  <exec executable="php">
+   <arg value="composer.phar"/>
+   <arg value="install"/>
+  </exec>
+ </target>
+</project>
+
diff --git a/core/vendor/sebastian/recursion-context/composer.json b/core/vendor/sebastian/recursion-context/composer.json
new file mode 100644
index 000000000000..fed033d21ba4
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/composer.json
@@ -0,0 +1,36 @@
+{
+    "name": "sebastian/recursion-context",
+    "description": "Provides functionality to recursively process PHP variables",
+    "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+    "license": "BSD-3-Clause",
+    "authors": [
+        {
+            "name": "Sebastian Bergmann",
+            "email": "sebastian@phpunit.de"
+        },
+        {
+            "name": "Jeff Welch",
+            "email": "whatthejeff@gmail.com"
+        },
+        {
+            "name": "Adam Harvey",
+            "email": "aharvey@php.net"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.3"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "~4.4"
+    },
+    "autoload": {
+        "classmap": [
+            "src/"
+        ]
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.0.x-dev"
+        }
+    }
+}
diff --git a/core/vendor/sebastian/recursion-context/phpunit.xml.dist b/core/vendor/sebastian/recursion-context/phpunit.xml.dist
new file mode 100644
index 000000000000..757e3e60d830
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/phpunit.xml.dist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="false"
+         bootstrap="vendor/autoload.php"
+         beStrictAboutTestsThatDoNotTestAnything="true"
+         beStrictAboutOutputDuringTests="true"
+         beStrictAboutTodoAnnotatedTests="true"
+         checkForUnintentionallyCoveredCode="true"
+         forceCoversAnnotation="true"
+         verbose="true">
+<testsuites>
+  <testsuite name="recursion-context">
+   <directory>tests</directory>
+  </testsuite>
+ </testsuites>
+ <filter>
+  <whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="true">
+   <directory>src</directory>
+  </whitelist>
+ </filter>
+</phpunit>
diff --git a/core/vendor/sebastian/recursion-context/src/Context.php b/core/vendor/sebastian/recursion-context/src/Context.php
new file mode 100644
index 000000000000..b431e07b3b2c
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/src/Context.php
@@ -0,0 +1,158 @@
+<?php
+/*
+ * This file is part of the Recursion Context package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace SebastianBergmann\RecursionContext;
+
+/**
+ * A context containing previously processed arrays and objects
+ * when recursively processing a value.
+ *
+ * @author     Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Adam Harvey <aharvey@php.net>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
+ * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
+ * @link       https://github.com/sebastianbergmann/recursion-context
+ */
+final class Context
+{
+    /**
+     * @var array[]
+     */
+    private $arrays;
+
+    /**
+     * @var \SplObjectStorage
+     */
+    private $objects;
+
+    /**
+     * Initialises the context
+     */
+    public function __construct()
+    {
+        $this->arrays  = array();
+        $this->objects = new \SplObjectStorage;
+    }
+
+    /**
+     * Adds a value to the context.
+     *
+     * @param  array|object $value      The value to add.
+     * @return integer|string           The ID of the stored value, either as
+     *                                  a string or integer.
+     * @throws InvalidArgumentException Thrown if $value is not an array or
+     *                                  object
+     */
+    public function add(&$value)
+    {
+        if (is_array($value)) {
+            return $this->addArray($value);
+        }
+
+        else if (is_object($value)) {
+            return $this->addObject($value);
+        }
+
+        throw new InvalidArgumentException(
+            'Only arrays and objects are supported'
+        );
+    }
+
+    /**
+     * Checks if the given value exists within the context.
+     *
+     * @param  array|object $value  The value to check.
+     * @return integer|string|false The string or integer ID of the stored
+     *                              value if it has already been seen, or
+     *                              false if the value is not stored.
+     * @throws InvalidArgumentException Thrown if $value is not an array or
+     *                                  object
+     */
+    public function contains(&$value)
+    {
+        if (is_array($value)) {
+            return $this->containsArray($value);
+        }
+
+        else if (is_object($value)) {
+            return $this->containsObject($value);
+        }
+
+        throw new InvalidArgumentException(
+            'Only arrays and objects are supported'
+        );
+    }
+
+    /**
+     * @param  array $array
+     * @return bool|int
+     */
+    private function addArray(array &$array)
+    {
+        $key = $this->containsArray($array);
+
+        if ($key !== false) {
+            return $key;
+        }
+
+        $this->arrays[] = &$array;
+
+        return count($this->arrays) - 1;
+    }
+
+    /**
+     * @param  object $object
+     * @return string
+     */
+    private function addObject($object)
+    {
+        if (!$this->objects->contains($object)) {
+            $this->objects->attach($object);
+        }
+
+        return spl_object_hash($object);
+    }
+
+    /**
+     * @param  array $array
+     * @return integer|false
+     */
+    private function containsArray(array &$array)
+    {
+        $keys = array_keys($this->arrays, $array, true);
+        $hash = '_Key_' . hash('sha512', microtime(true));
+
+        foreach ($keys as $key) {
+            $this->arrays[$key][$hash] = $hash;
+
+            if (isset($array[$hash]) && $array[$hash] === $hash) {
+                unset($this->arrays[$key][$hash]);
+                return $key;
+            }
+
+            unset($this->arrays[$key][$hash]);
+        }
+
+        return false;
+    }
+
+    /**
+     * @param  object $value
+     * @return string|false
+     */
+    private function containsObject($value)
+    {
+        if ($this->objects->contains($value)) {
+            return spl_object_hash($value);
+        }
+
+        return false;
+    }
+}
diff --git a/core/vendor/sebastian/recursion-context/src/Exception.php b/core/vendor/sebastian/recursion-context/src/Exception.php
new file mode 100644
index 000000000000..0986cc29cabf
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/src/Exception.php
@@ -0,0 +1,22 @@
+<?php
+/*
+ * This file is part of the Recursion Context package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace SebastianBergmann\RecursionContext;
+
+/**
+ * @author     Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Adam Harvey <aharvey@php.net>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
+ * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
+ * @link       https://github.com/sebastianbergmann/recursion-context
+ */
+interface Exception
+{
+}
diff --git a/core/vendor/sebastian/recursion-context/src/InvalidArgumentException.php b/core/vendor/sebastian/recursion-context/src/InvalidArgumentException.php
new file mode 100644
index 000000000000..6c1f46bf308d
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/src/InvalidArgumentException.php
@@ -0,0 +1,22 @@
+<?php
+/*
+ * This file is part of the Recursion Context package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace SebastianBergmann\RecursionContext;
+
+/**
+ * @author     Sebastian Bergmann <sebastian@phpunit.de>
+ * @author     Adam Harvey <aharvey@php.net>
+ * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
+ * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
+ * @link       https://github.com/sebastianbergmann/recursion-context
+ */
+final class InvalidArgumentException extends \InvalidArgumentException implements Exception
+{
+}
diff --git a/core/vendor/sebastian/recursion-context/tests/ContextTest.php b/core/vendor/sebastian/recursion-context/tests/ContextTest.php
new file mode 100644
index 000000000000..8e8cc56fa7dc
--- /dev/null
+++ b/core/vendor/sebastian/recursion-context/tests/ContextTest.php
@@ -0,0 +1,144 @@
+<?php
+/*
+ * This file is part of the Recursion Context package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace SebastianBergmann\RecursionContext;
+
+use PHPUnit_Framework_TestCase;
+
+/**
+ * @covers SebastianBergmann\RecursionContext\Context
+ */
+class ContextTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \SebastianBergmann\RecursionContext\Context
+     */
+    private $context;
+
+    protected function setUp()
+    {
+        $this->context = new Context();
+    }
+
+    public function failsProvider()
+    {
+        return array(
+            array(true),
+            array(false),
+            array(null),
+            array('string'),
+            array(1),
+            array(1.5),
+            array(fopen('php://memory', 'r'))
+        );
+    }
+
+    public function valuesProvider()
+    {
+        $obj2 = new \stdClass();
+        $obj2->foo = 'bar';
+
+        $obj3 = (object) array(1,2,"Test\r\n",4,5,6,7,8);
+
+        $obj = new \stdClass();
+        //@codingStandardsIgnoreStart
+        $obj->null = null;
+        //@codingStandardsIgnoreEnd
+        $obj->boolean = true;
+        $obj->integer = 1;
+        $obj->double = 1.2;
+        $obj->string = '1';
+        $obj->text = "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext";
+        $obj->object = $obj2;
+        $obj->objectagain = $obj2;
+        $obj->array = array('foo' => 'bar');
+        $obj->array2 = array(1,2,3,4,5,6);
+        $obj->array3 = array($obj, $obj2, $obj3);
+        $obj->self = $obj;
+
+        $storage = new \SplObjectStorage();
+        $storage->attach($obj2);
+        $storage->foo = $obj2;
+
+        return array(
+            array($obj, spl_object_hash($obj)),
+            array($obj2, spl_object_hash($obj2)),
+            array($obj3, spl_object_hash($obj3)),
+            array($storage, spl_object_hash($storage)),
+            array($obj->array, 0),
+            array($obj->array2, 0),
+            array($obj->array3, 0)
+        );
+    }
+
+    /**
+     * @covers       SebastianBergmann\RecursionContext\Context::add
+     * @uses         SebastianBergmann\RecursionContext\InvalidArgumentException
+     * @dataProvider failsProvider
+     */
+    public function testAddFails($value)
+    {
+        $this->setExpectedException(
+          'SebastianBergmann\\RecursionContext\\Exception',
+          'Only arrays and objects are supported'
+        );
+        $this->context->add($value);
+    }
+
+    /**
+     * @covers       SebastianBergmann\RecursionContext\Context::contains
+     * @uses         SebastianBergmann\RecursionContext\InvalidArgumentException
+     * @dataProvider failsProvider
+     */
+    public function testContainsFails($value)
+    {
+        $this->setExpectedException(
+          'SebastianBergmann\\RecursionContext\\Exception',
+          'Only arrays and objects are supported'
+        );
+        $this->context->contains($value);
+    }
+
+    /**
+     * @covers       SebastianBergmann\RecursionContext\Context::add
+     * @dataProvider valuesProvider
+     */
+    public function testAdd($value, $key)
+    {
+        $this->assertEquals($key, $this->context->add($value));
+
+        // Test we get the same key on subsequent adds
+        $this->assertEquals($key, $this->context->add($value));
+    }
+
+    /**
+     * @covers       SebastianBergmann\RecursionContext\Context::contains
+     * @uses         SebastianBergmann\RecursionContext\Context::add
+     * @depends      testAdd
+     * @dataProvider valuesProvider
+     */
+    public function testContainsFound($value, $key)
+    {
+        $this->context->add($value);
+        $this->assertEquals($key, $this->context->contains($value));
+
+        // Test we get the same key on subsequent calls
+        $this->assertEquals($key, $this->context->contains($value));
+    }
+
+    /**
+     * @covers       SebastianBergmann\RecursionContext\Context::contains
+     * @dataProvider valuesProvider
+     */
+    public function testContainsNotFound($value)
+    {
+        $this->assertFalse($this->context->contains($value));
+    }
+}
diff --git a/core/vendor/sebastian/version/LICENSE b/core/vendor/sebastian/version/LICENSE
index 4f3c283e6d60..5b79c41f6392 100644
--- a/core/vendor/sebastian/version/LICENSE
+++ b/core/vendor/sebastian/version/LICENSE
@@ -1,6 +1,6 @@
 Version
 
-Copyright (c) 2013-2014, Sebastian Bergmann <sebastian@phpunit.de>.
+Copyright (c) 2013-2015, Sebastian Bergmann <sebastian@phpunit.de>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/core/vendor/sebastian/version/README.md b/core/vendor/sebastian/version/README.md
index 3c72678bda25..be6b687b0f6e 100644
--- a/core/vendor/sebastian/version/README.md
+++ b/core/vendor/sebastian/version/README.md
@@ -4,17 +4,8 @@
 
 ## Installation
 
-### Composer
-
 Simply add a dependency on `sebastian/version` to your project's `composer.json` file if you use [Composer](http://getcomposer.org/) to manage the dependencies of your project.
 
-### PEAR Installer
-
-The following two commands (which you may have to run as `root`) are all that is required to install Version using the PEAR Installer:
-
-    pear config-set auto_discover 1
-    pear install pear.phpunit.de/Version
-
 ## Usage
 
 The constructor of the `SebastianBergmann\Version` class expects two parameters:
diff --git a/core/vendor/sebastian/version/src/Version.php b/core/vendor/sebastian/version/src/Version.php
index 3aa589a77022..0d93741c2ce5 100644
--- a/core/vendor/sebastian/version/src/Version.php
+++ b/core/vendor/sebastian/version/src/Version.php
@@ -1,43 +1,11 @@
 <?php
-/**
- * Copyright (c) 2013-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * 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.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
+/*
+ * This file is part of the Version package.
  *
- * 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 THE
- * COPYRIGHT OWNER 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.
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
- * @package   Version
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2013-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link      http://github.com/sebastianbergmann/version
- * @since     File available since Release 1.0.0
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
  */
 
 namespace SebastianBergmann;
@@ -45,7 +13,7 @@
 /**
  * @package   Version
  * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright 2013-2014 Sebastian Bergmann <sebastian@phpunit.de>
+ * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
  * @link      http://github.com/sebastianbergmann/version
  * @since     Class available since Release 1.0.0
@@ -86,7 +54,7 @@ public function getVersion()
                 } else {
                     $git = explode('-', $git);
 
-                    $this->version = $this->release . '-' . $git[2];
+                    $this->version = $this->release . '-' . end($git);
                 }
             }
         }
@@ -106,6 +74,7 @@ private function getGitInformation($path)
 
         $dir = getcwd();
         chdir($path);
+        $returnCode = 1;
         $result = @exec('git describe --tags 2>&1', $output, $returnCode);
         chdir($dir);
 
diff --git a/core/vendor/sebastian/version/src/autoload.php b/core/vendor/sebastian/version/src/autoload.php
index 93a266992f0f..20157ea6cb2f 100644
--- a/core/vendor/sebastian/version/src/autoload.php
+++ b/core/vendor/sebastian/version/src/autoload.php
@@ -1,4 +1,13 @@
 <?php
+/*
+ * This file is part of the Version package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
 // @codingStandardsIgnoreFile
 // @codeCoverageIgnoreStart
 // this is an autogenerated file - do not edit
@@ -16,4 +25,4 @@ function($class) {
         }
     }
 );
-// @codeCoverageIgnoreEnd
\ No newline at end of file
+// @codeCoverageIgnoreEnd
-- 
GitLab