summaryrefslogtreecommitdiffstats
path: root/apps/files_external/3rdparty/aws-sdk-php/Guzzle
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_external/3rdparty/aws-sdk-php/Guzzle')
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/AbstractBatchDecorator.php66
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Batch.php92
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchBuilder.php199
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureDivisor.php39
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureTransfer.php40
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchCommandTransfer.php75
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchDivisorInterface.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchInterface.php32
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchRequestTransfer.php65
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchSizeDivisor.php47
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchTransferInterface.php16
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Exception/BatchTransferException.php90
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/ExceptionBufferingBatch.php50
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/FlushingBatch.php60
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/HistoryBatch.php39
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/NotifyingBatch.php38
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/composer.json31
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/AbstractCacheAdapter.php21
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterFactory.php117
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterInterface.php55
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/ClosureCacheAdapter.php57
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/DoctrineCacheAdapter.php41
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/NullCacheAdapter.php31
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf1CacheAdapter.php44
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf2CacheAdapter.php41
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/AbstractHasDispatcher.php49
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Collection.php403
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Event.php52
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/BadMethodCallException.php5
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/ExceptionCollection.php108
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/GuzzleException.php8
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/InvalidArgumentException.php5
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/RuntimeException.php5
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/UnexpectedValueException.php5
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/FromConfigInterface.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/HasDispatcherInterface.php54
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/ToArrayInterface.php16
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Version.php29
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/composer.json20
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/AbstractEntityBodyDecorator.php221
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/CachingEntityBody.php229
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Client.php524
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ClientInterface.php223
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlHandle.php464
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMulti.php423
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiInterface.php58
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiProxy.php150
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlVersion.php66
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/RequestMediator.php147
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBody.php201
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBodyInterface.php73
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/BadResponseException.php69
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ClientErrorResponseException.php8
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CouldNotRewindStreamException.php7
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CurlException.php101
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/HttpException.php10
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/MultiTransferException.php145
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/RequestException.php39
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ServerErrorResponseException.php8
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/TooManyRedirectsException.php5
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/IoEmittingEntityBody.php83
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/AbstractMessage.php220
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequest.php247
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequestInterface.php137
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header.php182
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/CacheControl.php121
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderCollection.php108
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactory.php26
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactoryInterface.php19
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderInterface.php83
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/Link.php93
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/MessageInterface.php102
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFile.php124
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFileInterface.php83
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Request.php638
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactory.php359
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactoryInterface.php105
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestInterface.php318
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Response.php968
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Mimetypes.php962
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/CommaAggregator.php20
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/DuplicateAggregator.php22
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/PhpAggregator.php27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php22
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryString.php297
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ReadLimitEntityBody.php106
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/RedirectPlugin.php250
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Resources/cacert.pem3866
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/StaticClient.php157
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Url.php554
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/composer.json32
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/Inflector.php38
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/InflectorInterface.php27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/MemoizingInflector.php70
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/PreComputedInflector.php59
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/composer.json26
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/AppendIterator.php19
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/ChunkedIterator.php56
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/FilterIterator.php36
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MapIterator.php34
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MethodProxyIterator.php27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/README.md25
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/AbstractLogAdapter.php16
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ArrayLogAdapter.php34
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ClosureLogAdapter.php23
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/LogAdapterInterface.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MessageFormatter.php179
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MonologLogAdapter.php34
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/PsrLogAdapter.php36
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf1LogAdapter.php24
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf2LogAdapter.php21
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/composer.json29
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParser.php131
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParserInterface.php33
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/AbstractMessageParser.php58
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParser.php110
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParserInterface.php27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/PeclHttpMessageParser.php48
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/ParserRegistry.php75
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/PeclUriTemplate.php26
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplate.php254
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplateInterface.php21
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParser.php48
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParserInterface.php19
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/composer.json19
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/AsyncPlugin.php84
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php91
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php40
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffLogger.php76
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffPlugin.php126
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CallbackBackoffStrategy.php47
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php34
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php28
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php25
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/HttpBackoffStrategy.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php36
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php25
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php36
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/composer.json28
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php11
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CachePlugin.php353
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheStorageInterface.php43
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CallbackCanCacheStrategy.php53
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php46
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheStorage.php251
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php32
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultRevalidation.php174
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DenyRevalidation.php19
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/RevalidationInterface.php32
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/SkipRevalidation.php19
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/composer.json28
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Cookie.php538
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php237
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php85
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/FileCookieJar.php65
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookiePlugin.php70
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php7
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php46
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php22
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php72
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php7
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/HistoryPlugin.php163
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/LogPlugin.php161
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/composer.json28
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php57
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php88
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/MockPlugin.php245
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/OauthPlugin.php306
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/composer.json27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/composer.json44
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/AbstractConfigLoader.php177
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilder.php189
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderInterface.php40
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderLoader.php89
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/CachingConfigLoader.php46
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Client.php297
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ClientInterface.php68
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/AbstractCommand.php390
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ClosureCommand.php41
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CommandInterface.php128
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CreateResponseClassEvent.php32
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultRequestSerializer.php169
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultResponseParser.php55
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/AliasFactory.php39
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/CompositeFactory.php154
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ConcreteClassFactory.php47
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/FactoryInterface.php21
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/MapFactory.php27
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php71
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php69
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php58
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php44
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php63
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php24
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php31
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/ResponseBodyVisitor.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php252
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php26
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/BodyVisitor.php23
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php50
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php93
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php23
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php46
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/StatusCodeVisitor.php23
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php151
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php138
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationCommand.php89
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationResponseParser.php195
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/RequestSerializerInterface.php21
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseClassInterface.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseParserInterface.php18
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ConfigLoaderInterface.php22
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Operation.php547
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/OperationInterface.php159
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Parameter.php925
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaFormatter.php156
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaValidator.php291
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescription.php271
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionInterface.php106
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionLoader.php64
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ValidatorInterface.php28
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandException.php7
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandTransferException.php119
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/DescriptionBuilderException.php7
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/InconsistentClientTransferException.php38
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ResponseClassException.php9
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceBuilderException.php7
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceNotFoundException.php5
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ValidationException.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php37
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php67
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/MapResourceIteratorFactory.php34
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/Model.php64
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIterator.php254
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php111
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorClassFactory.php60
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php30
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorInterface.php61
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/composer.json29
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/PhpStreamRequestFactory.php276
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/Stream.php289
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamInterface.php218
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamRequestFactoryInterface.php24
-rw-r--r--apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/composer.json30
257 files changed, 0 insertions, 29685 deletions
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/AbstractBatchDecorator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/AbstractBatchDecorator.php
deleted file mode 100644
index 0625d71c302..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/AbstractBatchDecorator.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-/**
- * Abstract decorator used when decorating a BatchInterface
- */
-abstract class AbstractBatchDecorator implements BatchInterface
-{
- /** @var BatchInterface Decorated batch object */
- protected $decoratedBatch;
-
- /**
- * @param BatchInterface $decoratedBatch BatchInterface that is being decorated
- */
- public function __construct(BatchInterface $decoratedBatch)
- {
- $this->decoratedBatch = $decoratedBatch;
- }
-
- /**
- * Allow decorators to implement custom methods
- *
- * @param string $method Missing method name
- * @param array $args Method arguments
- *
- * @return mixed
- * @codeCoverageIgnore
- */
- public function __call($method, array $args)
- {
- return call_user_func_array(array($this->decoratedBatch, $method), $args);
- }
-
- public function add($item)
- {
- $this->decoratedBatch->add($item);
-
- return $this;
- }
-
- public function flush()
- {
- return $this->decoratedBatch->flush();
- }
-
- public function isEmpty()
- {
- return $this->decoratedBatch->isEmpty();
- }
-
- /**
- * Trace the decorators associated with the batch
- *
- * @return array
- */
- public function getDecorators()
- {
- $found = array($this);
- if (method_exists($this->decoratedBatch, 'getDecorators')) {
- $found = array_merge($found, $this->decoratedBatch->getDecorators());
- }
-
- return $found;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Batch.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Batch.php
deleted file mode 100644
index 4d41c54f887..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Batch.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Batch\Exception\BatchTransferException;
-
-/**
- * Default batch implementation used to convert queued items into smaller chunks of batches using a
- * {@see BatchDivisorIterface} and transfers each batch using a {@see BatchTransferInterface}.
- *
- * Any exception encountered during a flush operation will throw a {@see BatchTransferException} object containing the
- * batch that failed. After an exception is encountered, you can flush the batch again to attempt to finish transferring
- * any previously created batches or queued items.
- */
-class Batch implements BatchInterface
-{
- /** @var \SplQueue Queue of items in the queue */
- protected $queue;
-
- /** @var array Divided batches to be transferred */
- protected $dividedBatches;
-
- /** @var BatchTransferInterface */
- protected $transferStrategy;
-
- /** @var BatchDivisorInterface */
- protected $divisionStrategy;
-
- /**
- * @param BatchTransferInterface $transferStrategy Strategy used to transfer items
- * @param BatchDivisorInterface $divisionStrategy Divisor used to create batches
- */
- public function __construct(BatchTransferInterface $transferStrategy, BatchDivisorInterface $divisionStrategy)
- {
- $this->transferStrategy = $transferStrategy;
- $this->divisionStrategy = $divisionStrategy;
- $this->queue = new \SplQueue();
- $this->queue->setIteratorMode(\SplQueue::IT_MODE_DELETE);
- $this->dividedBatches = array();
- }
-
- public function add($item)
- {
- $this->queue->enqueue($item);
-
- return $this;
- }
-
- public function flush()
- {
- $this->createBatches();
-
- $items = array();
- foreach ($this->dividedBatches as $batchIndex => $dividedBatch) {
- while ($dividedBatch->valid()) {
- $batch = $dividedBatch->current();
- $dividedBatch->next();
- try {
- $this->transferStrategy->transfer($batch);
- $items = array_merge($items, $batch);
- } catch (\Exception $e) {
- throw new BatchTransferException($batch, $items, $e, $this->transferStrategy, $this->divisionStrategy);
- }
- }
- // Keep the divided batch down to a minimum in case of a later exception
- unset($this->dividedBatches[$batchIndex]);
- }
-
- return $items;
- }
-
- public function isEmpty()
- {
- return count($this->queue) == 0 && count($this->dividedBatches) == 0;
- }
-
- /**
- * Create batches for any queued items
- */
- protected function createBatches()
- {
- if (count($this->queue)) {
- if ($batches = $this->divisionStrategy->createBatches($this->queue)) {
- // Convert arrays into iterators
- if (is_array($batches)) {
- $batches = new \ArrayIterator($batches);
- }
- $this->dividedBatches[] = $batches;
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchBuilder.php
deleted file mode 100644
index ea99b4dd090..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchBuilder.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\RuntimeException;
-
-/**
- * Builder used to create custom batch objects
- */
-class BatchBuilder
-{
- /** @var bool Whether or not the batch should automatically flush*/
- protected $autoFlush = false;
-
- /** @var bool Whether or not to maintain a batch history */
- protected $history = false;
-
- /** @var bool Whether or not to buffer exceptions encountered in transfer */
- protected $exceptionBuffering = false;
-
- /** @var mixed Callable to invoke each time a flush completes */
- protected $afterFlush;
-
- /** @var BatchTransferInterface Object used to transfer items in the queue */
- protected $transferStrategy;
-
- /** @var BatchDivisorInterface Object used to divide the queue into batches */
- protected $divisorStrategy;
-
- /** @var array of Mapped transfer strategies by handle name */
- protected static $mapping = array(
- 'request' => 'Guzzle\Batch\BatchRequestTransfer',
- 'command' => 'Guzzle\Batch\BatchCommandTransfer'
- );
-
- /**
- * Create a new instance of the BatchBuilder
- *
- * @return BatchBuilder
- */
- public static function factory()
- {
- return new self();
- }
-
- /**
- * Automatically flush the batch when the size of the queue reaches a certain threshold. Adds {@see FlushingBatch}.
- *
- * @param $threshold Number of items to allow in the queue before a flush
- *
- * @return BatchBuilder
- */
- public function autoFlushAt($threshold)
- {
- $this->autoFlush = $threshold;
-
- return $this;
- }
-
- /**
- * Maintain a history of all items that have been transferred using the batch. Adds {@see HistoryBatch}.
- *
- * @return BatchBuilder
- */
- public function keepHistory()
- {
- $this->history = true;
-
- return $this;
- }
-
- /**
- * Buffer exceptions thrown during transfer so that you can transfer as much as possible, and after a transfer
- * completes, inspect each exception that was thrown. Enables the {@see ExceptionBufferingBatch} decorator.
- *
- * @return BatchBuilder
- */
- public function bufferExceptions()
- {
- $this->exceptionBuffering = true;
-
- return $this;
- }
-
- /**
- * Notify a callable each time a batch flush completes. Enables the {@see NotifyingBatch} decorator.
- *
- * @param mixed $callable Callable function to notify
- *
- * @return BatchBuilder
- * @throws InvalidArgumentException if the argument is not callable
- */
- public function notify($callable)
- {
- $this->afterFlush = $callable;
-
- return $this;
- }
-
- /**
- * Configures the batch to transfer batches of requests. Associates a {@see \Guzzle\Http\BatchRequestTransfer}
- * object as both the transfer and divisor strategy.
- *
- * @param int $batchSize Batch size for each batch of requests
- *
- * @return BatchBuilder
- */
- public function transferRequests($batchSize = 50)
- {
- $className = self::$mapping['request'];
- $this->transferStrategy = new $className($batchSize);
- $this->divisorStrategy = $this->transferStrategy;
-
- return $this;
- }
-
- /**
- * Configures the batch to transfer batches commands. Associates as
- * {@see \Guzzle\Service\Command\BatchCommandTransfer} as both the transfer and divisor strategy.
- *
- * @param int $batchSize Batch size for each batch of commands
- *
- * @return BatchBuilder
- */
- public function transferCommands($batchSize = 50)
- {
- $className = self::$mapping['command'];
- $this->transferStrategy = new $className($batchSize);
- $this->divisorStrategy = $this->transferStrategy;
-
- return $this;
- }
-
- /**
- * Specify the strategy used to divide the queue into an array of batches
- *
- * @param BatchDivisorInterface $divisorStrategy Strategy used to divide a batch queue into batches
- *
- * @return BatchBuilder
- */
- public function createBatchesWith(BatchDivisorInterface $divisorStrategy)
- {
- $this->divisorStrategy = $divisorStrategy;
-
- return $this;
- }
-
- /**
- * Specify the strategy used to transport the items when flush is called
- *
- * @param BatchTransferInterface $transferStrategy How items are transferred
- *
- * @return BatchBuilder
- */
- public function transferWith(BatchTransferInterface $transferStrategy)
- {
- $this->transferStrategy = $transferStrategy;
-
- return $this;
- }
-
- /**
- * Create and return the instantiated batch
- *
- * @return BatchInterface
- * @throws RuntimeException if no transfer strategy has been specified
- */
- public function build()
- {
- if (!$this->transferStrategy) {
- throw new RuntimeException('No transfer strategy has been specified');
- }
-
- if (!$this->divisorStrategy) {
- throw new RuntimeException('No divisor strategy has been specified');
- }
-
- $batch = new Batch($this->transferStrategy, $this->divisorStrategy);
-
- if ($this->exceptionBuffering) {
- $batch = new ExceptionBufferingBatch($batch);
- }
-
- if ($this->afterFlush) {
- $batch = new NotifyingBatch($batch, $this->afterFlush);
- }
-
- if ($this->autoFlush) {
- $batch = new FlushingBatch($batch, $this->autoFlush);
- }
-
- if ($this->history) {
- $batch = new HistoryBatch($batch);
- }
-
- return $batch;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureDivisor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureDivisor.php
deleted file mode 100644
index e0a2d9568c7..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureDivisor.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * Divides batches using a callable
- */
-class BatchClosureDivisor implements BatchDivisorInterface
-{
- /** @var callable Method used to divide the batches */
- protected $callable;
-
- /** @var mixed $context Context passed to the callable */
- protected $context;
-
- /**
- * @param callable $callable Method used to divide the batches. The method must accept an \SplQueue and return an
- * array of arrays containing the divided items.
- * @param mixed $context Optional context to pass to the batch divisor
- *
- * @throws InvalidArgumentException if the callable is not callable
- */
- public function __construct($callable, $context = null)
- {
- if (!is_callable($callable)) {
- throw new InvalidArgumentException('Must pass a callable');
- }
-
- $this->callable = $callable;
- $this->context = $context;
- }
-
- public function createBatches(\SplQueue $queue)
- {
- return call_user_func($this->callable, $queue, $this->context);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureTransfer.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureTransfer.php
deleted file mode 100644
index 9cbf1aba40b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchClosureTransfer.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * Batch transfer strategy where transfer logic can be defined via a Closure.
- * This class is to be used with {@see Guzzle\Batch\BatchInterface}
- */
-class BatchClosureTransfer implements BatchTransferInterface
-{
- /** @var callable A closure that performs the transfer */
- protected $callable;
-
- /** @var mixed $context Context passed to the callable */
- protected $context;
-
- /**
- * @param mixed $callable Callable that performs the transfer. This function should accept two arguments:
- * (array $batch, mixed $context).
- * @param mixed $context Optional context to pass to the batch divisor
- *
- * @throws InvalidArgumentException
- */
- public function __construct($callable, $context = null)
- {
- if (!is_callable($callable)) {
- throw new InvalidArgumentException('Argument must be callable');
- }
-
- $this->callable = $callable;
- $this->context = $context;
- }
-
- public function transfer(array $batch)
- {
- return empty($batch) ? null : call_user_func($this->callable, $batch, $this->context);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchCommandTransfer.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchCommandTransfer.php
deleted file mode 100644
index d55ac7d1f32..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchCommandTransfer.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Batch\BatchTransferInterface;
-use Guzzle\Batch\BatchDivisorInterface;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Exception\InconsistentClientTransferException;
-
-/**
- * Efficiently transfers multiple commands in parallel per client
- * This class is to be used with {@see Guzzle\Batch\BatchInterface}
- */
-class BatchCommandTransfer implements BatchTransferInterface, BatchDivisorInterface
-{
- /** @var int Size of each command batch */
- protected $batchSize;
-
- /**
- * @param int $batchSize Size of each batch
- */
- public function __construct($batchSize = 50)
- {
- $this->batchSize = $batchSize;
- }
-
- /**
- * Creates batches by grouping commands by their associated client
- * {@inheritdoc}
- */
- public function createBatches(\SplQueue $queue)
- {
- $groups = new \SplObjectStorage();
- foreach ($queue as $item) {
- if (!$item instanceof CommandInterface) {
- throw new InvalidArgumentException('All items must implement Guzzle\Service\Command\CommandInterface');
- }
- $client = $item->getClient();
- if (!$groups->contains($client)) {
- $groups->attach($client, new \ArrayObject(array($item)));
- } else {
- $groups[$client]->append($item);
- }
- }
-
- $batches = array();
- foreach ($groups as $batch) {
- $batches = array_merge($batches, array_chunk($groups[$batch]->getArrayCopy(), $this->batchSize));
- }
-
- return $batches;
- }
-
- public function transfer(array $batch)
- {
- if (empty($batch)) {
- return;
- }
-
- // Get the client of the first found command
- $client = reset($batch)->getClient();
-
- // Keep a list of all commands with invalid clients
- $invalid = array_filter($batch, function ($command) use ($client) {
- return $command->getClient() !== $client;
- });
-
- if (!empty($invalid)) {
- throw new InconsistentClientTransferException($invalid);
- }
-
- $client->execute($batch);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchDivisorInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchDivisorInterface.php
deleted file mode 100644
index 0214f05f4a0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchDivisorInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-/**
- * Interface used for dividing a queue of items into an array of batches
- */
-interface BatchDivisorInterface
-{
- /**
- * Divide a queue of items into an array batches
- *
- * @param \SplQueue $queue Queue of items to divide into batches. Items are removed as they are iterated.
- *
- * @return array|\Traversable Returns an array or Traversable object that contains arrays of items to transfer
- */
- public function createBatches(\SplQueue $queue);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchInterface.php
deleted file mode 100644
index 28ea65c800a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-/**
- * Interface for efficiently transferring items in a queue using batches
- */
-interface BatchInterface
-{
- /**
- * Add an item to the queue
- *
- * @param mixed $item Item to add
- *
- * @return self
- */
- public function add($item);
-
- /**
- * Flush the batch and transfer the items
- *
- * @return array Returns an array flushed items
- */
- public function flush();
-
- /**
- * Check if the batch is empty and has further items to transfer
- *
- * @return bool
- */
- public function isEmpty();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchRequestTransfer.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchRequestTransfer.php
deleted file mode 100644
index 4d8489c7057..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchRequestTransfer.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Batch\BatchTransferInterface;
-use Guzzle\Batch\BatchDivisorInterface;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * Batch transfer strategy used to efficiently transfer a batch of requests.
- * This class is to be used with {@see Guzzle\Batch\BatchInterface}
- */
-class BatchRequestTransfer implements BatchTransferInterface, BatchDivisorInterface
-{
- /** @var int Size of each command batch */
- protected $batchSize;
-
- /**
- * Constructor used to specify how large each batch should be
- *
- * @param int $batchSize Size of each batch
- */
- public function __construct($batchSize = 50)
- {
- $this->batchSize = $batchSize;
- }
-
- /**
- * Creates batches of requests by grouping requests by their associated curl multi object.
- * {@inheritdoc}
- */
- public function createBatches(\SplQueue $queue)
- {
- // Create batches by client objects
- $groups = new \SplObjectStorage();
- foreach ($queue as $item) {
- if (!$item instanceof RequestInterface) {
- throw new InvalidArgumentException('All items must implement Guzzle\Http\Message\RequestInterface');
- }
- $client = $item->getClient();
- if (!$groups->contains($client)) {
- $groups->attach($client, array($item));
- } else {
- $current = $groups[$client];
- $current[] = $item;
- $groups[$client] = $current;
- }
- }
-
- $batches = array();
- foreach ($groups as $batch) {
- $batches = array_merge($batches, array_chunk($groups[$batch], $this->batchSize));
- }
-
- return $batches;
- }
-
- public function transfer(array $batch)
- {
- if ($batch) {
- reset($batch)->getClient()->send($batch);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchSizeDivisor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchSizeDivisor.php
deleted file mode 100644
index 67f90a5818e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchSizeDivisor.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-/**
- * Divides batches into smaller batches under a certain size
- */
-class BatchSizeDivisor implements BatchDivisorInterface
-{
- /** @var int Size of each batch */
- protected $size;
-
- /** @param int $size Size of each batch */
- public function __construct($size)
- {
- $this->size = $size;
- }
-
- /**
- * Set the size of each batch
- *
- * @param int $size Size of each batch
- *
- * @return BatchSizeDivisor
- */
- public function setSize($size)
- {
- $this->size = $size;
-
- return $this;
- }
-
- /**
- * Get the size of each batch
- *
- * @return int
- */
- public function getSize()
- {
- return $this->size;
- }
-
- public function createBatches(\SplQueue $queue)
- {
- return array_chunk(iterator_to_array($queue, false), $this->size);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchTransferInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchTransferInterface.php
deleted file mode 100644
index 2e0b60dad40..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/BatchTransferInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-/**
- * Interface used for transferring batches of items
- */
-interface BatchTransferInterface
-{
- /**
- * Transfer an array of items
- *
- * @param array $batch Array of items to transfer
- */
- public function transfer(array $batch);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Exception/BatchTransferException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Exception/BatchTransferException.php
deleted file mode 100644
index 2e1f8175be5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/Exception/BatchTransferException.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-namespace Guzzle\Batch\Exception;
-
-use Guzzle\Common\Exception\GuzzleException;
-use Guzzle\Batch\BatchTransferInterface as TransferStrategy;
-use Guzzle\Batch\BatchDivisorInterface as DivisorStrategy;
-
-/**
- * Exception thrown during a batch transfer
- */
-class BatchTransferException extends \Exception implements GuzzleException
-{
- /** @var array The batch being sent when the exception occurred */
- protected $batch;
-
- /** @var TransferStrategy The transfer strategy in use when the exception occurred */
- protected $transferStrategy;
-
- /** @var DivisorStrategy The divisor strategy in use when the exception occurred */
- protected $divisorStrategy;
-
- /** @var array Items transferred at the point in which the exception was encountered */
- protected $transferredItems;
-
- /**
- * @param array $batch The batch being sent when the exception occurred
- * @param array $transferredItems Items transferred at the point in which the exception was encountered
- * @param \Exception $exception Exception encountered
- * @param TransferStrategy $transferStrategy The transfer strategy in use when the exception occurred
- * @param DivisorStrategy $divisorStrategy The divisor strategy in use when the exception occurred
- */
- public function __construct(
- array $batch,
- array $transferredItems,
- \Exception $exception,
- TransferStrategy $transferStrategy = null,
- DivisorStrategy $divisorStrategy = null
- ) {
- $this->batch = $batch;
- $this->transferredItems = $transferredItems;
- $this->transferStrategy = $transferStrategy;
- $this->divisorStrategy = $divisorStrategy;
- parent::__construct(
- 'Exception encountered while transferring batch: ' . $exception->getMessage(),
- $exception->getCode(),
- $exception
- );
- }
-
- /**
- * Get the batch that we being sent when the exception occurred
- *
- * @return array
- */
- public function getBatch()
- {
- return $this->batch;
- }
-
- /**
- * Get the items transferred at the point in which the exception was encountered
- *
- * @return array
- */
- public function getTransferredItems()
- {
- return $this->transferredItems;
- }
-
- /**
- * Get the transfer strategy
- *
- * @return TransferStrategy
- */
- public function getTransferStrategy()
- {
- return $this->transferStrategy;
- }
-
- /**
- * Get the divisor strategy
- *
- * @return DivisorStrategy
- */
- public function getDivisorStrategy()
- {
- return $this->divisorStrategy;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/ExceptionBufferingBatch.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/ExceptionBufferingBatch.php
deleted file mode 100644
index d7a8928857e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/ExceptionBufferingBatch.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Batch\Exception\BatchTransferException;
-
-/**
- * BatchInterface decorator used to buffer exceptions encountered during a transfer. The exceptions can then later be
- * processed after a batch flush has completed.
- */
-class ExceptionBufferingBatch extends AbstractBatchDecorator
-{
- /** @var array Array of BatchTransferException exceptions */
- protected $exceptions = array();
-
- public function flush()
- {
- $items = array();
-
- while (!$this->decoratedBatch->isEmpty()) {
- try {
- $transferredItems = $this->decoratedBatch->flush();
- } catch (BatchTransferException $e) {
- $this->exceptions[] = $e;
- $transferredItems = $e->getTransferredItems();
- }
- $items = array_merge($items, $transferredItems);
- }
-
- return $items;
- }
-
- /**
- * Get the buffered exceptions
- *
- * @return array Array of BatchTransferException objects
- */
- public function getExceptions()
- {
- return $this->exceptions;
- }
-
- /**
- * Clear the buffered exceptions
- */
- public function clearExceptions()
- {
- $this->exceptions = array();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/FlushingBatch.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/FlushingBatch.php
deleted file mode 100644
index 367b6842716..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/FlushingBatch.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-/**
- * BatchInterface decorator used to add automatic flushing of the queue when the size of the queue reaches a threshold.
- */
-class FlushingBatch extends AbstractBatchDecorator
-{
- /** @var int The threshold for which to automatically flush */
- protected $threshold;
-
- /** @var int Current number of items known to be in the queue */
- protected $currentTotal = 0;
-
- /**
- * @param BatchInterface $decoratedBatch BatchInterface that is being decorated
- * @param int $threshold Flush when the number in queue matches the threshold
- */
- public function __construct(BatchInterface $decoratedBatch, $threshold)
- {
- $this->threshold = $threshold;
- parent::__construct($decoratedBatch);
- }
-
- /**
- * Set the auto-flush threshold
- *
- * @param int $threshold The auto-flush threshold
- *
- * @return FlushingBatch
- */
- public function setThreshold($threshold)
- {
- $this->threshold = $threshold;
-
- return $this;
- }
-
- /**
- * Get the auto-flush threshold
- *
- * @return int
- */
- public function getThreshold()
- {
- return $this->threshold;
- }
-
- public function add($item)
- {
- $this->decoratedBatch->add($item);
- if (++$this->currentTotal >= $this->threshold) {
- $this->currentTotal = 0;
- $this->decoratedBatch->flush();
- }
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/HistoryBatch.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/HistoryBatch.php
deleted file mode 100644
index e345fdc349c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/HistoryBatch.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-/**
- * BatchInterface decorator used to keep a history of items that were added to the batch. You must clear the history
- * manually to remove items from the history.
- */
-class HistoryBatch extends AbstractBatchDecorator
-{
- /** @var array Items in the history */
- protected $history = array();
-
- public function add($item)
- {
- $this->history[] = $item;
- $this->decoratedBatch->add($item);
-
- return $this;
- }
-
- /**
- * Get the batch history
- *
- * @return array
- */
- public function getHistory()
- {
- return $this->history;
- }
-
- /**
- * Clear the batch history
- */
- public function clearHistory()
- {
- $this->history = array();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/NotifyingBatch.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/NotifyingBatch.php
deleted file mode 100644
index 96d04daa82f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/NotifyingBatch.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Guzzle\Batch;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * BatchInterface decorator used to call a method each time flush is called
- */
-class NotifyingBatch extends AbstractBatchDecorator
-{
- /** @var mixed Callable to call */
- protected $callable;
-
- /**
- * @param BatchInterface $decoratedBatch Batch object to decorate
- * @param mixed $callable Callable to call
- *
- * @throws InvalidArgumentException
- */
- public function __construct(BatchInterface $decoratedBatch, $callable)
- {
- if (!is_callable($callable)) {
- throw new InvalidArgumentException('The passed argument is not callable');
- }
-
- $this->callable = $callable;
- parent::__construct($decoratedBatch);
- }
-
- public function flush()
- {
- $items = $this->decoratedBatch->flush();
- call_user_func($this->callable, $items);
-
- return $items;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/composer.json
deleted file mode 100644
index 12404d381e9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Batch/composer.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "guzzle/batch",
- "description": "Guzzle batch component for batching requests, commands, or custom transfers",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["batch", "HTTP", "REST", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/common": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Batch": "" }
- },
- "suggest": {
- "guzzle/http": "self.version",
- "guzzle/service": "self.version"
- },
- "target-dir": "Guzzle/Batch",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/AbstractCacheAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/AbstractCacheAdapter.php
deleted file mode 100644
index a5c527167b8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/AbstractCacheAdapter.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-/**
- * Abstract cache adapter
- */
-abstract class AbstractCacheAdapter implements CacheAdapterInterface
-{
- protected $cache;
-
- /**
- * Get the object owned by the adapter
- *
- * @return mixed
- */
- public function getCacheObject()
- {
- return $this->cache;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterFactory.php
deleted file mode 100644
index 94e623463b4..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterFactory.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-use Doctrine\Common\Cache\Cache;
-use Guzzle\Common\Version;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Common\FromConfigInterface;
-use Zend\Cache\Storage\StorageInterface;
-
-/**
- * Generates cache adapters from any number of known cache implementations
- */
-class CacheAdapterFactory implements FromConfigInterface
-{
- /**
- * Create a Guzzle cache adapter based on an array of options
- *
- * @param mixed $cache Cache value
- *
- * @return CacheAdapterInterface
- * @throws InvalidArgumentException
- */
- public static function fromCache($cache)
- {
- if (!is_object($cache)) {
- throw new InvalidArgumentException('Cache must be one of the known cache objects');
- }
-
- if ($cache instanceof CacheAdapterInterface) {
- return $cache;
- } elseif ($cache instanceof Cache) {
- return new DoctrineCacheAdapter($cache);
- } elseif ($cache instanceof StorageInterface) {
- return new Zf2CacheAdapter($cache);
- } else {
- throw new InvalidArgumentException('Unknown cache type: ' . get_class($cache));
- }
- }
-
- /**
- * Create a Guzzle cache adapter based on an array of options
- *
- * @param array $config Array of configuration options
- *
- * @return CacheAdapterInterface
- * @throws InvalidArgumentException
- * @deprecated This will be removed in a future version
- * @codeCoverageIgnore
- */
- public static function factory($config = array())
- {
- Version::warn(__METHOD__ . ' is deprecated');
- if (!is_array($config)) {
- throw new InvalidArgumentException('$config must be an array');
- }
-
- if (!isset($config['cache.adapter']) && !isset($config['cache.provider'])) {
- $config['cache.adapter'] = 'Guzzle\Cache\NullCacheAdapter';
- $config['cache.provider'] = null;
- } else {
- // Validate that the options are valid
- foreach (array('cache.adapter', 'cache.provider') as $required) {
- if (!isset($config[$required])) {
- throw new InvalidArgumentException("{$required} is a required CacheAdapterFactory option");
- }
- if (is_string($config[$required])) {
- // Convert dot notation to namespaces
- $config[$required] = str_replace('.', '\\', $config[$required]);
- if (!class_exists($config[$required])) {
- throw new InvalidArgumentException("{$config[$required]} is not a valid class for {$required}");
- }
- }
- }
- // Instantiate the cache provider
- if (is_string($config['cache.provider'])) {
- $args = isset($config['cache.provider.args']) ? $config['cache.provider.args'] : null;
- $config['cache.provider'] = self::createObject($config['cache.provider'], $args);
- }
- }
-
- // Instantiate the cache adapter using the provider and options
- if (is_string($config['cache.adapter'])) {
- $args = isset($config['cache.adapter.args']) ? $config['cache.adapter.args'] : array();
- array_unshift($args, $config['cache.provider']);
- $config['cache.adapter'] = self::createObject($config['cache.adapter'], $args);
- }
-
- return $config['cache.adapter'];
- }
-
- /**
- * Create a class using an array of constructor arguments
- *
- * @param string $className Class name
- * @param array $args Arguments for the class constructor
- *
- * @return mixed
- * @throws RuntimeException
- * @deprecated
- * @codeCoverageIgnore
- */
- private static function createObject($className, array $args = null)
- {
- try {
- if (!$args) {
- return new $className;
- } else {
- $c = new \ReflectionClass($className);
- return $c->newInstanceArgs($args);
- }
- } catch (\Exception $e) {
- throw new RuntimeException($e->getMessage(), $e->getCode(), $e);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterInterface.php
deleted file mode 100644
index 970c9e22837..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/CacheAdapterInterface.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-/**
- * Interface for cache adapters.
- *
- * Cache adapters allow Guzzle to utilize various frameworks for caching HTTP responses.
- *
- * @link http://www.doctrine-project.org/ Inspired by Doctrine 2
- */
-interface CacheAdapterInterface
-{
- /**
- * Test if an entry exists in the cache.
- *
- * @param string $id cache id The cache id of the entry to check for.
- * @param array $options Array of cache adapter options
- *
- * @return bool Returns TRUE if a cache entry exists for the given cache id, FALSE otherwise.
- */
- public function contains($id, array $options = null);
-
- /**
- * Deletes a cache entry.
- *
- * @param string $id cache id
- * @param array $options Array of cache adapter options
- *
- * @return bool TRUE on success, FALSE on failure
- */
- public function delete($id, array $options = null);
-
- /**
- * Fetches an entry from the cache.
- *
- * @param string $id cache id The id of the cache entry to fetch.
- * @param array $options Array of cache adapter options
- *
- * @return string The cached data or FALSE, if no cache entry exists for the given id.
- */
- public function fetch($id, array $options = null);
-
- /**
- * Puts data into the cache.
- *
- * @param string $id The cache id
- * @param string $data The cache entry/data
- * @param int|bool $lifeTime The lifetime. If != false, sets a specific lifetime for this cache entry
- * @param array $options Array of cache adapter options
- *
- * @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.
- */
- public function save($id, $data, $lifeTime = false, array $options = null);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/ClosureCacheAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/ClosureCacheAdapter.php
deleted file mode 100644
index c7a3df436b6..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/ClosureCacheAdapter.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-/**
- * Cache adapter that defers to closures for implementation
- */
-class ClosureCacheAdapter implements CacheAdapterInterface
-{
- /**
- * @var array Mapping of method names to callables
- */
- protected $callables;
-
- /**
- * The callables array is an array mapping the actions of the cache adapter to callables.
- * - contains: Callable that accepts an $id and $options argument
- * - delete: Callable that accepts an $id and $options argument
- * - fetch: Callable that accepts an $id and $options argument
- * - save: Callable that accepts an $id, $data, $lifeTime, and $options argument
- *
- * @param array $callables array of action names to callable
- *
- * @throws \InvalidArgumentException if the callable is not callable
- */
- public function __construct(array $callables)
- {
- // Validate each key to ensure it exists and is callable
- foreach (array('contains', 'delete', 'fetch', 'save') as $key) {
- if (!array_key_exists($key, $callables) || !is_callable($callables[$key])) {
- throw new \InvalidArgumentException("callables must contain a callable {$key} key");
- }
- }
-
- $this->callables = $callables;
- }
-
- public function contains($id, array $options = null)
- {
- return call_user_func($this->callables['contains'], $id, $options);
- }
-
- public function delete($id, array $options = null)
- {
- return call_user_func($this->callables['delete'], $id, $options);
- }
-
- public function fetch($id, array $options = null)
- {
- return call_user_func($this->callables['fetch'], $id, $options);
- }
-
- public function save($id, $data, $lifeTime = false, array $options = null)
- {
- return call_user_func($this->callables['save'], $id, $data, $lifeTime, $options);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/DoctrineCacheAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/DoctrineCacheAdapter.php
deleted file mode 100644
index 321dd6baf03..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/DoctrineCacheAdapter.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-use Doctrine\Common\Cache\Cache;
-
-/**
- * Doctrine 2 cache adapter
- *
- * @link http://www.doctrine-project.org/
- */
-class DoctrineCacheAdapter extends AbstractCacheAdapter
-{
- /**
- * @param Cache $cache Doctrine cache object
- */
- public function __construct(Cache $cache)
- {
- $this->cache = $cache;
- }
-
- public function contains($id, array $options = null)
- {
- return $this->cache->contains($id);
- }
-
- public function delete($id, array $options = null)
- {
- return $this->cache->delete($id);
- }
-
- public function fetch($id, array $options = null)
- {
- return $this->cache->fetch($id);
- }
-
- public function save($id, $data, $lifeTime = false, array $options = null)
- {
- return $this->cache->save($id, $data, $lifeTime);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/NullCacheAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/NullCacheAdapter.php
deleted file mode 100644
index 68bd4af97c5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/NullCacheAdapter.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-/**
- * Null cache adapter
- */
-class NullCacheAdapter extends AbstractCacheAdapter
-{
- public function __construct() {}
-
- public function contains($id, array $options = null)
- {
- return false;
- }
-
- public function delete($id, array $options = null)
- {
- return true;
- }
-
- public function fetch($id, array $options = null)
- {
- return false;
- }
-
- public function save($id, $data, $lifeTime = false, array $options = null)
- {
- return true;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf1CacheAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf1CacheAdapter.php
deleted file mode 100644
index 48f8e2430c8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf1CacheAdapter.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-use Guzzle\Common\Version;
-
-/**
- * Zend Framework 1 cache adapter
- *
- * @link http://framework.zend.com/manual/en/zend.cache.html
- * @deprecated
- * @codeCoverageIgnore
- */
-class Zf1CacheAdapter extends AbstractCacheAdapter
-{
- /**
- * @param \Zend_Cache_Backend $cache Cache object to wrap
- */
- public function __construct(\Zend_Cache_Backend $cache)
- {
- Version::warn(__CLASS__ . ' is deprecated. Upgrade to ZF2 or use PsrCacheAdapter');
- $this->cache = $cache;
- }
-
- public function contains($id, array $options = null)
- {
- return $this->cache->test($id);
- }
-
- public function delete($id, array $options = null)
- {
- return $this->cache->remove($id);
- }
-
- public function fetch($id, array $options = null)
- {
- return $this->cache->load($id);
- }
-
- public function save($id, $data, $lifeTime = false, array $options = null)
- {
- return $this->cache->save($data, $id, array(), $lifeTime);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf2CacheAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf2CacheAdapter.php
deleted file mode 100644
index 1fc18a55530..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/Zf2CacheAdapter.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace Guzzle\Cache;
-
-use Zend\Cache\Storage\StorageInterface;
-
-/**
- * Zend Framework 2 cache adapter
- *
- * @link http://packages.zendframework.com/docs/latest/manual/en/zend.cache.html
- */
-class Zf2CacheAdapter extends AbstractCacheAdapter
-{
- /**
- * @param StorageInterface $cache Zend Framework 2 cache adapter
- */
- public function __construct(StorageInterface $cache)
- {
- $this->cache = $cache;
- }
-
- public function contains($id, array $options = null)
- {
- return $this->cache->hasItem($id);
- }
-
- public function delete($id, array $options = null)
- {
- return $this->cache->removeItem($id);
- }
-
- public function fetch($id, array $options = null)
- {
- return $this->cache->getItem($id);
- }
-
- public function save($id, $data, $lifeTime = false, array $options = null)
- {
- return $this->cache->setItem($id, $data);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/composer.json
deleted file mode 100644
index a5d999bd6d2..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Cache/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/cache",
- "description": "Guzzle cache adapter component",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["cache", "adapter", "zf", "doctrine", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/common": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Cache": "" }
- },
- "target-dir": "Guzzle/Cache",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/AbstractHasDispatcher.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/AbstractHasDispatcher.php
deleted file mode 100644
index d1e842b1cf5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/AbstractHasDispatcher.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-namespace Guzzle\Common;
-
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Class that holds an event dispatcher
- */
-class AbstractHasDispatcher implements HasDispatcherInterface
-{
- /** @var EventDispatcherInterface */
- protected $eventDispatcher;
-
- public static function getAllEvents()
- {
- return array();
- }
-
- public function setEventDispatcher(EventDispatcherInterface $eventDispatcher)
- {
- $this->eventDispatcher = $eventDispatcher;
-
- return $this;
- }
-
- public function getEventDispatcher()
- {
- if (!$this->eventDispatcher) {
- $this->eventDispatcher = new EventDispatcher();
- }
-
- return $this->eventDispatcher;
- }
-
- public function dispatch($eventName, array $context = array())
- {
- return $this->getEventDispatcher()->dispatch($eventName, new Event($context));
- }
-
- public function addSubscriber(EventSubscriberInterface $subscriber)
- {
- $this->getEventDispatcher()->addSubscriber($subscriber);
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Collection.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Collection.php
deleted file mode 100644
index 5cb1535d07a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Collection.php
+++ /dev/null
@@ -1,403 +0,0 @@
-<?php
-
-namespace Guzzle\Common;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\RuntimeException;
-
-/**
- * Key value pair collection object
- */
-class Collection implements \ArrayAccess, \IteratorAggregate, \Countable, ToArrayInterface
-{
- /** @var array Data associated with the object. */
- protected $data;
-
- /**
- * @param array $data Associative array of data to set
- */
- public function __construct(array $data = array())
- {
- $this->data = $data;
- }
-
- /**
- * Create a new collection from an array, validate the keys, and add default values where missing
- *
- * @param array $config Configuration values to apply.
- * @param array $defaults Default parameters
- * @param array $required Required parameter names
- *
- * @return self
- * @throws InvalidArgumentException if a parameter is missing
- */
- public static function fromConfig(array $config = array(), array $defaults = array(), array $required = array())
- {
- $data = $config + $defaults;
-
- if ($missing = array_diff($required, array_keys($data))) {
- throw new InvalidArgumentException('Config is missing the following keys: ' . implode(', ', $missing));
- }
-
- return new self($data);
- }
-
- public function count()
- {
- return count($this->data);
- }
-
- public function getIterator()
- {
- return new \ArrayIterator($this->data);
- }
-
- public function toArray()
- {
- return $this->data;
- }
-
- /**
- * Removes all key value pairs
- *
- * @return Collection
- */
- public function clear()
- {
- $this->data = array();
-
- return $this;
- }
-
- /**
- * Get all or a subset of matching key value pairs
- *
- * @param array $keys Pass an array of keys to retrieve only a subset of key value pairs
- *
- * @return array Returns an array of all matching key value pairs
- */
- public function getAll(array $keys = null)
- {
- return $keys ? array_intersect_key($this->data, array_flip($keys)) : $this->data;
- }
-
- /**
- * Get a specific key value.
- *
- * @param string $key Key to retrieve.
- *
- * @return mixed|null Value of the key or NULL
- */
- public function get($key)
- {
- return isset($this->data[$key]) ? $this->data[$key] : null;
- }
-
- /**
- * Set a key value pair
- *
- * @param string $key Key to set
- * @param mixed $value Value to set
- *
- * @return Collection Returns a reference to the object
- */
- public function set($key, $value)
- {
- $this->data[$key] = $value;
-
- return $this;
- }
-
- /**
- * Add a value to a key. If a key of the same name has already been added, the key value will be converted into an
- * array and the new value will be pushed to the end of the array.
- *
- * @param string $key Key to add
- * @param mixed $value Value to add to the key
- *
- * @return Collection Returns a reference to the object.
- */
- public function add($key, $value)
- {
- if (!array_key_exists($key, $this->data)) {
- $this->data[$key] = $value;
- } elseif (is_array($this->data[$key])) {
- $this->data[$key][] = $value;
- } else {
- $this->data[$key] = array($this->data[$key], $value);
- }
-
- return $this;
- }
-
- /**
- * Remove a specific key value pair
- *
- * @param string $key A key to remove
- *
- * @return Collection
- */
- public function remove($key)
- {
- unset($this->data[$key]);
-
- return $this;
- }
-
- /**
- * Get all keys in the collection
- *
- * @return array
- */
- public function getKeys()
- {
- return array_keys($this->data);
- }
-
- /**
- * Returns whether or not the specified key is present.
- *
- * @param string $key The key for which to check the existence.
- *
- * @return bool
- */
- public function hasKey($key)
- {
- return array_key_exists($key, $this->data);
- }
-
- /**
- * Case insensitive search the keys in the collection
- *
- * @param string $key Key to search for
- *
- * @return bool|string Returns false if not found, otherwise returns the key
- */
- public function keySearch($key)
- {
- foreach (array_keys($this->data) as $k) {
- if (!strcasecmp($k, $key)) {
- return $k;
- }
- }
-
- return false;
- }
-
- /**
- * Checks if any keys contains a certain value
- *
- * @param string $value Value to search for
- *
- * @return mixed Returns the key if the value was found FALSE if the value was not found.
- */
- public function hasValue($value)
- {
- return array_search($value, $this->data);
- }
-
- /**
- * Replace the data of the object with the value of an array
- *
- * @param array $data Associative array of data
- *
- * @return Collection Returns a reference to the object
- */
- public function replace(array $data)
- {
- $this->data = $data;
-
- return $this;
- }
-
- /**
- * Add and merge in a Collection or array of key value pair data.
- *
- * @param Collection|array $data Associative array of key value pair data
- *
- * @return Collection Returns a reference to the object.
- */
- public function merge($data)
- {
- foreach ($data as $key => $value) {
- $this->add($key, $value);
- }
-
- return $this;
- }
-
- /**
- * Over write key value pairs in this collection with all of the data from an array or collection.
- *
- * @param array|\Traversable $data Values to override over this config
- *
- * @return self
- */
- public function overwriteWith($data)
- {
- if (is_array($data)) {
- $this->data = $data + $this->data;
- } elseif ($data instanceof Collection) {
- $this->data = $data->toArray() + $this->data;
- } else {
- foreach ($data as $key => $value) {
- $this->data[$key] = $value;
- }
- }
-
- return $this;
- }
-
- /**
- * Returns a Collection containing all the elements of the collection after applying the callback function to each
- * one. The Closure should accept three parameters: (string) $key, (string) $value, (array) $context and return a
- * modified value
- *
- * @param \Closure $closure Closure to apply
- * @param array $context Context to pass to the closure
- * @param bool $static Set to TRUE to use the same class as the return rather than returning a Collection
- *
- * @return Collection
- */
- public function map(\Closure $closure, array $context = array(), $static = true)
- {
- $collection = $static ? new static() : new self();
- foreach ($this as $key => $value) {
- $collection->add($key, $closure($key, $value, $context));
- }
-
- return $collection;
- }
-
- /**
- * Iterates over each key value pair in the collection passing them to the Closure. If the Closure function returns
- * true, the current value from input is returned into the result Collection. The Closure must accept three
- * parameters: (string) $key, (string) $value and return Boolean TRUE or FALSE for each value.
- *
- * @param \Closure $closure Closure evaluation function
- * @param bool $static Set to TRUE to use the same class as the return rather than returning a Collection
- *
- * @return Collection
- */
- public function filter(\Closure $closure, $static = true)
- {
- $collection = ($static) ? new static() : new self();
- foreach ($this->data as $key => $value) {
- if ($closure($key, $value)) {
- $collection->add($key, $value);
- }
- }
-
- return $collection;
- }
-
- public function offsetExists($offset)
- {
- return isset($this->data[$offset]);
- }
-
- public function offsetGet($offset)
- {
- return isset($this->data[$offset]) ? $this->data[$offset] : null;
- }
-
- public function offsetSet($offset, $value)
- {
- $this->data[$offset] = $value;
- }
-
- public function offsetUnset($offset)
- {
- unset($this->data[$offset]);
- }
-
- /**
- * Set a value into a nested array key. Keys will be created as needed to set the value.
- *
- * @param string $path Path to set
- * @param mixed $value Value to set at the key
- *
- * @return self
- * @throws RuntimeException when trying to setPath using a nested path that travels through a scalar value
- */
- public function setPath($path, $value)
- {
- $current =& $this->data;
- $queue = explode('/', $path);
- while (null !== ($key = array_shift($queue))) {
- if (!is_array($current)) {
- throw new RuntimeException("Trying to setPath {$path}, but {$key} is set and is not an array");
- } elseif (!$queue) {
- $current[$key] = $value;
- } elseif (isset($current[$key])) {
- $current =& $current[$key];
- } else {
- $current[$key] = array();
- $current =& $current[$key];
- }
- }
-
- return $this;
- }
-
- /**
- * Gets a value from the collection using an array path (e.g. foo/baz/bar would retrieve bar from two nested arrays)
- * Allows for wildcard searches which recursively combine matches up to the level at which the wildcard occurs. This
- * can be useful for accepting any key of a sub-array and combining matching keys from each diverging path.
- *
- * @param string $path Path to traverse and retrieve a value from
- * @param string $separator Character used to add depth to the search
- * @param mixed $data Optional data to descend into (used when wildcards are encountered)
- *
- * @return mixed|null
- */
- public function getPath($path, $separator = '/', $data = null)
- {
- if ($data === null) {
- $data =& $this->data;
- }
-
- $path = is_array($path) ? $path : explode($separator, $path);
- while (null !== ($part = array_shift($path))) {
- if (!is_array($data)) {
- return null;
- } elseif (isset($data[$part])) {
- $data =& $data[$part];
- } elseif ($part != '*') {
- return null;
- } else {
- // Perform a wildcard search by diverging and merging paths
- $result = array();
- foreach ($data as $value) {
- if (!$path) {
- $result = array_merge_recursive($result, (array) $value);
- } elseif (null !== ($test = $this->getPath($path, $separator, $value))) {
- $result = array_merge_recursive($result, (array) $test);
- }
- }
- return $result;
- }
- }
-
- return $data;
- }
-
- /**
- * Inject configuration settings into an input string
- *
- * @param string $input Input to inject
- *
- * @return string
- * @deprecated
- */
- public function inject($input)
- {
- Version::warn(__METHOD__ . ' is deprecated');
- $replace = array();
- foreach ($this->data as $key => $val) {
- $replace['{' . $key . '}'] = $val;
- }
-
- return strtr($input, $replace);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Event.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Event.php
deleted file mode 100644
index fad76a9b817..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Event.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace Guzzle\Common;
-
-use Symfony\Component\EventDispatcher\Event as SymfonyEvent;
-
-/**
- * Default event for Guzzle notifications
- */
-class Event extends SymfonyEvent implements ToArrayInterface, \ArrayAccess, \IteratorAggregate
-{
- /** @var array */
- private $context;
-
- /**
- * @param array $context Contextual information
- */
- public function __construct(array $context = array())
- {
- $this->context = $context;
- }
-
- public function getIterator()
- {
- return new \ArrayIterator($this->context);
- }
-
- public function offsetGet($offset)
- {
- return isset($this->context[$offset]) ? $this->context[$offset] : null;
- }
-
- public function offsetSet($offset, $value)
- {
- $this->context[$offset] = $value;
- }
-
- public function offsetExists($offset)
- {
- return isset($this->context[$offset]);
- }
-
- public function offsetUnset($offset)
- {
- unset($this->context[$offset]);
- }
-
- public function toArray()
- {
- return $this->context;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/BadMethodCallException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/BadMethodCallException.php
deleted file mode 100644
index 08d1c7256d7..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace Guzzle\Common\Exception;
-
-class BadMethodCallException extends \BadMethodCallException implements GuzzleException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/ExceptionCollection.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/ExceptionCollection.php
deleted file mode 100644
index 750e4839eea..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/ExceptionCollection.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-namespace Guzzle\Common\Exception;
-
-/**
- * Collection of exceptions
- */
-class ExceptionCollection extends \Exception implements GuzzleException, \IteratorAggregate, \Countable
-{
- /** @var array Array of Exceptions */
- protected $exceptions = array();
-
- /** @var string Succinct exception message not including sub-exceptions */
- private $shortMessage;
-
- public function __construct($message = '', $code = 0, \Exception $previous = null)
- {
- parent::__construct($message, $code, $previous);
- $this->shortMessage = $message;
- }
-
- /**
- * Set all of the exceptions
- *
- * @param array $exceptions Array of exceptions
- *
- * @return self
- */
- public function setExceptions(array $exceptions)
- {
- $this->exceptions = array();
- foreach ($exceptions as $exception) {
- $this->add($exception);
- }
-
- return $this;
- }
-
- /**
- * Add exceptions to the collection
- *
- * @param ExceptionCollection|\Exception $e Exception to add
- *
- * @return ExceptionCollection;
- */
- public function add($e)
- {
- $this->exceptions[] = $e;
- if ($this->message) {
- $this->message .= "\n";
- }
-
- $this->message .= $this->getExceptionMessage($e, 0);
-
- return $this;
- }
-
- /**
- * Get the total number of request exceptions
- *
- * @return int
- */
- public function count()
- {
- return count($this->exceptions);
- }
-
- /**
- * Allows array-like iteration over the request exceptions
- *
- * @return \ArrayIterator
- */
- public function getIterator()
- {
- return new \ArrayIterator($this->exceptions);
- }
-
- /**
- * Get the first exception in the collection
- *
- * @return \Exception
- */
- public function getFirst()
- {
- return $this->exceptions ? $this->exceptions[0] : null;
- }
-
- private function getExceptionMessage(\Exception $e, $depth = 0)
- {
- static $sp = ' ';
- $prefix = $depth ? str_repeat($sp, $depth) : '';
- $message = "{$prefix}(" . get_class($e) . ') ' . $e->getFile() . ' line ' . $e->getLine() . "\n";
-
- if ($e instanceof self) {
- if ($e->shortMessage) {
- $message .= "\n{$prefix}{$sp}" . str_replace("\n", "\n{$prefix}{$sp}", $e->shortMessage) . "\n";
- }
- foreach ($e as $ee) {
- $message .= "\n" . $this->getExceptionMessage($ee, $depth + 1);
- }
- } else {
- $message .= "\n{$prefix}{$sp}" . str_replace("\n", "\n{$prefix}{$sp}", $e->getMessage()) . "\n";
- $message .= "\n{$prefix}{$sp}" . str_replace("\n", "\n{$prefix}{$sp}", $e->getTraceAsString()) . "\n";
- }
-
- return str_replace(getcwd(), '.', $message);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/GuzzleException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/GuzzleException.php
deleted file mode 100644
index 458e6f2ea16..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/GuzzleException.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Guzzle\Common\Exception;
-
-/**
- * Guzzle exception
- */
-interface GuzzleException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/InvalidArgumentException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/InvalidArgumentException.php
deleted file mode 100644
index ae674be8790..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace Guzzle\Common\Exception;
-
-class InvalidArgumentException extends \InvalidArgumentException implements GuzzleException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/RuntimeException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/RuntimeException.php
deleted file mode 100644
index 9254094f3e3..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/RuntimeException.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace Guzzle\Common\Exception;
-
-class RuntimeException extends \RuntimeException implements GuzzleException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/UnexpectedValueException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/UnexpectedValueException.php
deleted file mode 100644
index 843c0179ebf..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Exception/UnexpectedValueException.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace Guzzle\Common\Exception;
-
-class UnexpectedValueException extends \UnexpectedValueException implements GuzzleException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/FromConfigInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/FromConfigInterface.php
deleted file mode 100644
index c8b1317c446..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/FromConfigInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Common;
-
-/**
- * Interfaces that adds a factory method which is used to instantiate a class from an array of configuration options.
- */
-interface FromConfigInterface
-{
- /**
- * Static factory method used to turn an array or collection of configuration data into an instantiated object.
- *
- * @param array|Collection $config Configuration data
- *
- * @return FromConfigInterface
- */
- public static function factory($config = array());
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/HasDispatcherInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/HasDispatcherInterface.php
deleted file mode 100644
index 806759806c8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/HasDispatcherInterface.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Guzzle\Common;
-
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Holds an event dispatcher
- */
-interface HasDispatcherInterface
-{
- /**
- * Get a list of all of the events emitted from the class
- *
- * @return array
- */
- public static function getAllEvents();
-
- /**
- * Set the EventDispatcher of the request
- *
- * @param EventDispatcherInterface $eventDispatcher
- *
- * @return self
- */
- public function setEventDispatcher(EventDispatcherInterface $eventDispatcher);
-
- /**
- * Get the EventDispatcher of the request
- *
- * @return EventDispatcherInterface
- */
- public function getEventDispatcher();
-
- /**
- * Helper to dispatch Guzzle events and set the event name on the event
- *
- * @param string $eventName Name of the event to dispatch
- * @param array $context Context of the event
- *
- * @return Event Returns the created event object
- */
- public function dispatch($eventName, array $context = array());
-
- /**
- * Add an event subscriber to the dispatcher
- *
- * @param EventSubscriberInterface $subscriber Event subscriber
- *
- * @return self
- */
- public function addSubscriber(EventSubscriberInterface $subscriber);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/ToArrayInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/ToArrayInterface.php
deleted file mode 100644
index 245328c1b3a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/ToArrayInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Guzzle\Common;
-
-/**
- * An object that can be represented as an array
- */
-interface ToArrayInterface
-{
- /**
- * Get the array representation of an object
- *
- * @return array
- */
- public function toArray();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Version.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Version.php
deleted file mode 100644
index d018c1e1253..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/Version.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace Guzzle\Common;
-
-/**
- * Guzzle version information
- */
-class Version
-{
- const VERSION = '3.9.2';
-
- /**
- * @var bool Set this value to true to enable warnings for deprecated functionality use. This should be on in your
- * unit tests, but probably not in production.
- */
- public static $emitWarnings = false;
-
- /**
- * Emit a deprecation warning
- *
- * @param string $message Warning message
- */
- public static function warn($message)
- {
- if (self::$emitWarnings) {
- trigger_error('Deprecation warning: ' . $message, E_USER_DEPRECATED);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/composer.json
deleted file mode 100644
index c02fa690102..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Common/composer.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "guzzle/common",
- "homepage": "http://guzzlephp.org/",
- "description": "Common libraries used by Guzzle",
- "keywords": ["common", "event", "exception", "collection"],
- "license": "MIT",
- "require": {
- "php": ">=5.3.2",
- "symfony/event-dispatcher": ">=2.1"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Common": "" }
- },
- "target-dir": "Guzzle/Common",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/AbstractEntityBodyDecorator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/AbstractEntityBodyDecorator.php
deleted file mode 100644
index 5005a887cf5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/AbstractEntityBodyDecorator.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Stream\Stream;
-
-/**
- * Abstract decorator used to wrap entity bodies
- */
-class AbstractEntityBodyDecorator implements EntityBodyInterface
-{
- /** @var EntityBodyInterface Decorated entity body */
- protected $body;
-
- /**
- * @param EntityBodyInterface $body Entity body to decorate
- */
- public function __construct(EntityBodyInterface $body)
- {
- $this->body = $body;
- }
-
- public function __toString()
- {
- return (string) $this->body;
- }
-
- /**
- * Allow decorators to implement custom methods
- *
- * @param string $method Missing method name
- * @param array $args Method arguments
- *
- * @return mixed
- */
- public function __call($method, array $args)
- {
- return call_user_func_array(array($this->body, $method), $args);
- }
-
- public function close()
- {
- return $this->body->close();
- }
-
- public function setRewindFunction($callable)
- {
- $this->body->setRewindFunction($callable);
-
- return $this;
- }
-
- public function rewind()
- {
- return $this->body->rewind();
- }
-
- public function compress($filter = 'zlib.deflate')
- {
- return $this->body->compress($filter);
- }
-
- public function uncompress($filter = 'zlib.inflate')
- {
- return $this->body->uncompress($filter);
- }
-
- public function getContentLength()
- {
- return $this->getSize();
- }
-
- public function getContentType()
- {
- return $this->body->getContentType();
- }
-
- public function getContentMd5($rawOutput = false, $base64Encode = false)
- {
- $hash = Stream::getHash($this, 'md5', $rawOutput);
-
- return $hash && $base64Encode ? base64_encode($hash) : $hash;
- }
-
- public function getContentEncoding()
- {
- return $this->body->getContentEncoding();
- }
-
- public function getMetaData($key = null)
- {
- return $this->body->getMetaData($key);
- }
-
- public function getStream()
- {
- return $this->body->getStream();
- }
-
- public function setStream($stream, $size = 0)
- {
- $this->body->setStream($stream, $size);
-
- return $this;
- }
-
- public function detachStream()
- {
- $this->body->detachStream();
-
- return $this;
- }
-
- public function getWrapper()
- {
- return $this->body->getWrapper();
- }
-
- public function getWrapperData()
- {
- return $this->body->getWrapperData();
- }
-
- public function getStreamType()
- {
- return $this->body->getStreamType();
- }
-
- public function getUri()
- {
- return $this->body->getUri();
- }
-
- public function getSize()
- {
- return $this->body->getSize();
- }
-
- public function isReadable()
- {
- return $this->body->isReadable();
- }
-
- public function isRepeatable()
- {
- return $this->isSeekable() && $this->isReadable();
- }
-
- public function isWritable()
- {
- return $this->body->isWritable();
- }
-
- public function isConsumed()
- {
- return $this->body->isConsumed();
- }
-
- /**
- * Alias of isConsumed()
- * {@inheritdoc}
- */
- public function feof()
- {
- return $this->isConsumed();
- }
-
- public function isLocal()
- {
- return $this->body->isLocal();
- }
-
- public function isSeekable()
- {
- return $this->body->isSeekable();
- }
-
- public function setSize($size)
- {
- $this->body->setSize($size);
-
- return $this;
- }
-
- public function seek($offset, $whence = SEEK_SET)
- {
- return $this->body->seek($offset, $whence);
- }
-
- public function read($length)
- {
- return $this->body->read($length);
- }
-
- public function write($string)
- {
- return $this->body->write($string);
- }
-
- public function readLine($maxLength = null)
- {
- return $this->body->readLine($maxLength);
- }
-
- public function ftell()
- {
- return $this->body->ftell();
- }
-
- public function getCustomData($key)
- {
- return $this->body->getCustomData($key);
- }
-
- public function setCustomData($key, $value)
- {
- $this->body->setCustomData($key, $value);
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/CachingEntityBody.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/CachingEntityBody.php
deleted file mode 100644
index c65c1365042..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/CachingEntityBody.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-/**
- * EntityBody decorator that can cache previously read bytes from a sequentially read tstream
- */
-class CachingEntityBody extends AbstractEntityBodyDecorator
-{
- /** @var EntityBody Remote stream used to actually pull data onto the buffer */
- protected $remoteStream;
-
- /** @var int The number of bytes to skip reading due to a write on the temporary buffer */
- protected $skipReadBytes = 0;
-
- /**
- * We will treat the buffer object as the body of the entity body
- * {@inheritdoc}
- */
- public function __construct(EntityBodyInterface $body)
- {
- $this->remoteStream = $body;
- $this->body = new EntityBody(fopen('php://temp', 'r+'));
- }
-
- /**
- * Will give the contents of the buffer followed by the exhausted remote stream.
- *
- * Warning: Loads the entire stream into memory
- *
- * @return string
- */
- public function __toString()
- {
- $pos = $this->ftell();
- $this->rewind();
-
- $str = '';
- while (!$this->isConsumed()) {
- $str .= $this->read(16384);
- }
-
- $this->seek($pos);
-
- return $str;
- }
-
- public function getSize()
- {
- return max($this->body->getSize(), $this->remoteStream->getSize());
- }
-
- /**
- * {@inheritdoc}
- * @throws RuntimeException When seeking with SEEK_END or when seeking past the total size of the buffer stream
- */
- public function seek($offset, $whence = SEEK_SET)
- {
- if ($whence == SEEK_SET) {
- $byte = $offset;
- } elseif ($whence == SEEK_CUR) {
- $byte = $offset + $this->ftell();
- } else {
- throw new RuntimeException(__CLASS__ . ' supports only SEEK_SET and SEEK_CUR seek operations');
- }
-
- // You cannot skip ahead past where you've read from the remote stream
- if ($byte > $this->body->getSize()) {
- throw new RuntimeException(
- "Cannot seek to byte {$byte} when the buffered stream only contains {$this->body->getSize()} bytes"
- );
- }
-
- return $this->body->seek($byte);
- }
-
- public function rewind()
- {
- return $this->seek(0);
- }
-
- /**
- * Does not support custom rewind functions
- *
- * @throws RuntimeException
- */
- public function setRewindFunction($callable)
- {
- throw new RuntimeException(__CLASS__ . ' does not support custom stream rewind functions');
- }
-
- public function read($length)
- {
- // Perform a regular read on any previously read data from the buffer
- $data = $this->body->read($length);
- $remaining = $length - strlen($data);
-
- // More data was requested so read from the remote stream
- if ($remaining) {
- // If data was written to the buffer in a position that would have been filled from the remote stream,
- // then we must skip bytes on the remote stream to emulate overwriting bytes from that position. This
- // mimics the behavior of other PHP stream wrappers.
- $remoteData = $this->remoteStream->read($remaining + $this->skipReadBytes);
-
- if ($this->skipReadBytes) {
- $len = strlen($remoteData);
- $remoteData = substr($remoteData, $this->skipReadBytes);
- $this->skipReadBytes = max(0, $this->skipReadBytes - $len);
- }
-
- $data .= $remoteData;
- $this->body->write($remoteData);
- }
-
- return $data;
- }
-
- public function write($string)
- {
- // When appending to the end of the currently read stream, you'll want to skip bytes from being read from
- // the remote stream to emulate other stream wrappers. Basically replacing bytes of data of a fixed length.
- $overflow = (strlen($string) + $this->ftell()) - $this->remoteStream->ftell();
- if ($overflow > 0) {
- $this->skipReadBytes += $overflow;
- }
-
- return $this->body->write($string);
- }
-
- /**
- * {@inheritdoc}
- * @link http://php.net/manual/en/function.fgets.php
- */
- public function readLine($maxLength = null)
- {
- $buffer = '';
- $size = 0;
- while (!$this->isConsumed()) {
- $byte = $this->read(1);
- $buffer .= $byte;
- // Break when a new line is found or the max length - 1 is reached
- if ($byte == PHP_EOL || ++$size == $maxLength - 1) {
- break;
- }
- }
-
- return $buffer;
- }
-
- public function isConsumed()
- {
- return $this->body->isConsumed() && $this->remoteStream->isConsumed();
- }
-
- /**
- * Close both the remote stream and buffer stream
- */
- public function close()
- {
- return $this->remoteStream->close() && $this->body->close();
- }
-
- public function setStream($stream, $size = 0)
- {
- $this->remoteStream->setStream($stream, $size);
- }
-
- public function getContentType()
- {
- return $this->remoteStream->getContentType();
- }
-
- public function getContentEncoding()
- {
- return $this->remoteStream->getContentEncoding();
- }
-
- public function getMetaData($key = null)
- {
- return $this->remoteStream->getMetaData($key);
- }
-
- public function getStream()
- {
- return $this->remoteStream->getStream();
- }
-
- public function getWrapper()
- {
- return $this->remoteStream->getWrapper();
- }
-
- public function getWrapperData()
- {
- return $this->remoteStream->getWrapperData();
- }
-
- public function getStreamType()
- {
- return $this->remoteStream->getStreamType();
- }
-
- public function getUri()
- {
- return $this->remoteStream->getUri();
- }
-
- /**
- * Always retrieve custom data from the remote stream
- * {@inheritdoc}
- */
- public function getCustomData($key)
- {
- return $this->remoteStream->getCustomData($key);
- }
-
- /**
- * Always set custom data on the remote stream
- * {@inheritdoc}
- */
- public function setCustomData($key, $value)
- {
- $this->remoteStream->setCustomData($key, $value);
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Client.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Client.php
deleted file mode 100644
index 3d7298dcdf2..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Client.php
+++ /dev/null
@@ -1,524 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\Collection;
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Common\Exception\ExceptionCollection;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Common\Version;
-use Guzzle\Parser\ParserRegistry;
-use Guzzle\Parser\UriTemplate\UriTemplateInterface;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\RequestFactory;
-use Guzzle\Http\Message\RequestFactoryInterface;
-use Guzzle\Http\Curl\CurlMultiInterface;
-use Guzzle\Http\Curl\CurlMultiProxy;
-use Guzzle\Http\Curl\CurlHandle;
-use Guzzle\Http\Curl\CurlVersion;
-
-/**
- * HTTP client
- */
-class Client extends AbstractHasDispatcher implements ClientInterface
-{
- /** @deprecated Use [request.options][params] */
- const REQUEST_PARAMS = 'request.params';
-
- const REQUEST_OPTIONS = 'request.options';
- const CURL_OPTIONS = 'curl.options';
- const SSL_CERT_AUTHORITY = 'ssl.certificate_authority';
- const DISABLE_REDIRECTS = RedirectPlugin::DISABLE;
- const DEFAULT_SELECT_TIMEOUT = 1.0;
- const MAX_HANDLES = 3;
-
- /** @var Collection Default HTTP headers to set on each request */
- protected $defaultHeaders;
-
- /** @var string The user agent string to set on each request */
- protected $userAgent;
-
- /** @var Collection Parameter object holding configuration data */
- private $config;
-
- /** @var Url Base URL of the client */
- private $baseUrl;
-
- /** @var CurlMultiInterface CurlMulti object used internally */
- private $curlMulti;
-
- /** @var UriTemplateInterface URI template owned by the client */
- private $uriTemplate;
-
- /** @var RequestFactoryInterface Request factory used by the client */
- protected $requestFactory;
-
- public static function getAllEvents()
- {
- return array(self::CREATE_REQUEST);
- }
-
- /**
- * @param string $baseUrl Base URL of the web service
- * @param array|Collection $config Configuration settings
- *
- * @throws RuntimeException if cURL is not installed
- */
- public function __construct($baseUrl = '', $config = null)
- {
- if (!extension_loaded('curl')) {
- // @codeCoverageIgnoreStart
- throw new RuntimeException('The PHP cURL extension must be installed to use Guzzle.');
- // @codeCoverageIgnoreEnd
- }
- $this->setConfig($config ?: new Collection());
- $this->initSsl();
- $this->setBaseUrl($baseUrl);
- $this->defaultHeaders = new Collection();
- $this->setRequestFactory(RequestFactory::getInstance());
- $this->userAgent = $this->getDefaultUserAgent();
- if (!$this->config[self::DISABLE_REDIRECTS]) {
- $this->addSubscriber(new RedirectPlugin());
- }
- }
-
- final public function setConfig($config)
- {
- if ($config instanceof Collection) {
- $this->config = $config;
- } elseif (is_array($config)) {
- $this->config = new Collection($config);
- } else {
- throw new InvalidArgumentException('Config must be an array or Collection');
- }
-
- return $this;
- }
-
- final public function getConfig($key = false)
- {
- return $key ? $this->config[$key] : $this->config;
- }
-
- /**
- * Set a default request option on the client that will be used as a default for each request
- *
- * @param string $keyOrPath request.options key (e.g. allow_redirects) or path to a nested key (e.g. headers/foo)
- * @param mixed $value Value to set
- *
- * @return $this
- */
- public function setDefaultOption($keyOrPath, $value)
- {
- $keyOrPath = self::REQUEST_OPTIONS . '/' . $keyOrPath;
- $this->config->setPath($keyOrPath, $value);
-
- return $this;
- }
-
- /**
- * Retrieve a default request option from the client
- *
- * @param string $keyOrPath request.options key (e.g. allow_redirects) or path to a nested key (e.g. headers/foo)
- *
- * @return mixed|null
- */
- public function getDefaultOption($keyOrPath)
- {
- $keyOrPath = self::REQUEST_OPTIONS . '/' . $keyOrPath;
-
- return $this->config->getPath($keyOrPath);
- }
-
- final public function setSslVerification($certificateAuthority = true, $verifyPeer = true, $verifyHost = 2)
- {
- $opts = $this->config[self::CURL_OPTIONS] ?: array();
-
- if ($certificateAuthority === true) {
- // use bundled CA bundle, set secure defaults
- $opts[CURLOPT_CAINFO] = __DIR__ . '/Resources/cacert.pem';
- $opts[CURLOPT_SSL_VERIFYPEER] = true;
- $opts[CURLOPT_SSL_VERIFYHOST] = 2;
- } elseif ($certificateAuthority === false) {
- unset($opts[CURLOPT_CAINFO]);
- $opts[CURLOPT_SSL_VERIFYPEER] = false;
- $opts[CURLOPT_SSL_VERIFYHOST] = 0;
- } elseif ($verifyPeer !== true && $verifyPeer !== false && $verifyPeer !== 1 && $verifyPeer !== 0) {
- throw new InvalidArgumentException('verifyPeer must be 1, 0 or boolean');
- } elseif ($verifyHost !== 0 && $verifyHost !== 1 && $verifyHost !== 2) {
- throw new InvalidArgumentException('verifyHost must be 0, 1 or 2');
- } else {
- $opts[CURLOPT_SSL_VERIFYPEER] = $verifyPeer;
- $opts[CURLOPT_SSL_VERIFYHOST] = $verifyHost;
- if (is_file($certificateAuthority)) {
- unset($opts[CURLOPT_CAPATH]);
- $opts[CURLOPT_CAINFO] = $certificateAuthority;
- } elseif (is_dir($certificateAuthority)) {
- unset($opts[CURLOPT_CAINFO]);
- $opts[CURLOPT_CAPATH] = $certificateAuthority;
- } else {
- throw new RuntimeException(
- 'Invalid option passed to ' . self::SSL_CERT_AUTHORITY . ': ' . $certificateAuthority
- );
- }
- }
-
- $this->config->set(self::CURL_OPTIONS, $opts);
-
- return $this;
- }
-
- public function createRequest($method = 'GET', $uri = null, $headers = null, $body = null, array $options = array())
- {
- if (!$uri) {
- $url = $this->getBaseUrl();
- } else {
- if (!is_array($uri)) {
- $templateVars = null;
- } else {
- list($uri, $templateVars) = $uri;
- }
- if (strpos($uri, '://')) {
- // Use absolute URLs as-is
- $url = $this->expandTemplate($uri, $templateVars);
- } else {
- $url = Url::factory($this->getBaseUrl())->combine($this->expandTemplate($uri, $templateVars));
- }
- }
-
- // If default headers are provided, then merge them under any explicitly provided headers for the request
- if (count($this->defaultHeaders)) {
- if (!$headers) {
- $headers = $this->defaultHeaders->toArray();
- } elseif (is_array($headers)) {
- $headers += $this->defaultHeaders->toArray();
- } elseif ($headers instanceof Collection) {
- $headers = $headers->toArray() + $this->defaultHeaders->toArray();
- }
- }
-
- return $this->prepareRequest($this->requestFactory->create($method, (string) $url, $headers, $body), $options);
- }
-
- public function getBaseUrl($expand = true)
- {
- return $expand ? $this->expandTemplate($this->baseUrl) : $this->baseUrl;
- }
-
- public function setBaseUrl($url)
- {
- $this->baseUrl = $url;
-
- return $this;
- }
-
- public function setUserAgent($userAgent, $includeDefault = false)
- {
- if ($includeDefault) {
- $userAgent .= ' ' . $this->getDefaultUserAgent();
- }
- $this->userAgent = $userAgent;
-
- return $this;
- }
-
- /**
- * Get the default User-Agent string to use with Guzzle
- *
- * @return string
- */
- public function getDefaultUserAgent()
- {
- return 'Guzzle/' . Version::VERSION
- . ' curl/' . CurlVersion::getInstance()->get('version')
- . ' PHP/' . PHP_VERSION;
- }
-
- public function get($uri = null, $headers = null, $options = array())
- {
- // BC compat: $options can be a string, resource, etc to specify where the response body is downloaded
- return is_array($options)
- ? $this->createRequest('GET', $uri, $headers, null, $options)
- : $this->createRequest('GET', $uri, $headers, $options);
- }
-
- public function head($uri = null, $headers = null, array $options = array())
- {
- return $this->createRequest('HEAD', $uri, $headers, null, $options);
- }
-
- public function delete($uri = null, $headers = null, $body = null, array $options = array())
- {
- return $this->createRequest('DELETE', $uri, $headers, $body, $options);
- }
-
- public function put($uri = null, $headers = null, $body = null, array $options = array())
- {
- return $this->createRequest('PUT', $uri, $headers, $body, $options);
- }
-
- public function patch($uri = null, $headers = null, $body = null, array $options = array())
- {
- return $this->createRequest('PATCH', $uri, $headers, $body, $options);
- }
-
- public function post($uri = null, $headers = null, $postBody = null, array $options = array())
- {
- return $this->createRequest('POST', $uri, $headers, $postBody, $options);
- }
-
- public function options($uri = null, array $options = array())
- {
- return $this->createRequest('OPTIONS', $uri, $options);
- }
-
- public function send($requests)
- {
- if (!($requests instanceof RequestInterface)) {
- return $this->sendMultiple($requests);
- }
-
- try {
- /** @var $requests RequestInterface */
- $this->getCurlMulti()->add($requests)->send();
- return $requests->getResponse();
- } catch (ExceptionCollection $e) {
- throw $e->getFirst();
- }
- }
-
- /**
- * Set a curl multi object to be used internally by the client for transferring requests.
- *
- * @param CurlMultiInterface $curlMulti Multi object
- *
- * @return self
- */
- public function setCurlMulti(CurlMultiInterface $curlMulti)
- {
- $this->curlMulti = $curlMulti;
-
- return $this;
- }
-
- /**
- * @return CurlMultiInterface|CurlMultiProxy
- */
- public function getCurlMulti()
- {
- if (!$this->curlMulti) {
- $this->curlMulti = new CurlMultiProxy(
- self::MAX_HANDLES,
- $this->getConfig('select_timeout') ?: self::DEFAULT_SELECT_TIMEOUT
- );
- }
-
- return $this->curlMulti;
- }
-
- public function setRequestFactory(RequestFactoryInterface $factory)
- {
- $this->requestFactory = $factory;
-
- return $this;
- }
-
- /**
- * Set the URI template expander to use with the client
- *
- * @param UriTemplateInterface $uriTemplate URI template expander
- *
- * @return self
- */
- public function setUriTemplate(UriTemplateInterface $uriTemplate)
- {
- $this->uriTemplate = $uriTemplate;
-
- return $this;
- }
-
- /**
- * Expand a URI template while merging client config settings into the template variables
- *
- * @param string $template Template to expand
- * @param array $variables Variables to inject
- *
- * @return string
- */
- protected function expandTemplate($template, array $variables = null)
- {
- $expansionVars = $this->getConfig()->toArray();
- if ($variables) {
- $expansionVars = $variables + $expansionVars;
- }
-
- return $this->getUriTemplate()->expand($template, $expansionVars);
- }
-
- /**
- * Get the URI template expander used by the client
- *
- * @return UriTemplateInterface
- */
- protected function getUriTemplate()
- {
- if (!$this->uriTemplate) {
- $this->uriTemplate = ParserRegistry::getInstance()->getParser('uri_template');
- }
-
- return $this->uriTemplate;
- }
-
- /**
- * Send multiple requests in parallel
- *
- * @param array $requests Array of RequestInterface objects
- *
- * @return array Returns an array of Response objects
- */
- protected function sendMultiple(array $requests)
- {
- $curlMulti = $this->getCurlMulti();
- foreach ($requests as $request) {
- $curlMulti->add($request);
- }
- $curlMulti->send();
-
- /** @var $request RequestInterface */
- $result = array();
- foreach ($requests as $request) {
- $result[] = $request->getResponse();
- }
-
- return $result;
- }
-
- /**
- * Prepare a request to be sent from the Client by adding client specific behaviors and properties to the request.
- *
- * @param RequestInterface $request Request to prepare for the client
- * @param array $options Options to apply to the request
- *
- * @return RequestInterface
- */
- protected function prepareRequest(RequestInterface $request, array $options = array())
- {
- $request->setClient($this)->setEventDispatcher(clone $this->getEventDispatcher());
-
- if ($curl = $this->config[self::CURL_OPTIONS]) {
- $request->getCurlOptions()->overwriteWith(CurlHandle::parseCurlConfig($curl));
- }
-
- if ($params = $this->config[self::REQUEST_PARAMS]) {
- Version::warn('request.params is deprecated. Use request.options to add default request options.');
- $request->getParams()->overwriteWith($params);
- }
-
- if ($this->userAgent && !$request->hasHeader('User-Agent')) {
- $request->setHeader('User-Agent', $this->userAgent);
- }
-
- if ($defaults = $this->config[self::REQUEST_OPTIONS]) {
- $this->requestFactory->applyOptions($request, $defaults, RequestFactoryInterface::OPTIONS_AS_DEFAULTS);
- }
-
- if ($options) {
- $this->requestFactory->applyOptions($request, $options);
- }
-
- $this->dispatch('client.create_request', array('client' => $this, 'request' => $request));
-
- return $request;
- }
-
- /**
- * Initializes SSL settings
- */
- protected function initSsl()
- {
- $authority = $this->config[self::SSL_CERT_AUTHORITY];
-
- if ($authority === 'system') {
- return;
- }
-
- if ($authority === null) {
- $authority = true;
- }
-
- if ($authority === true && substr(__FILE__, 0, 7) == 'phar://') {
- $authority = self::extractPharCacert(__DIR__ . '/Resources/cacert.pem');
- }
-
- $this->setSslVerification($authority);
- }
-
- /**
- * @deprecated
- */
- public function getDefaultHeaders()
- {
- Version::warn(__METHOD__ . ' is deprecated. Use the request.options array to retrieve default request options');
- return $this->defaultHeaders;
- }
-
- /**
- * @deprecated
- */
- public function setDefaultHeaders($headers)
- {
- Version::warn(__METHOD__ . ' is deprecated. Use the request.options array to specify default request options');
- if ($headers instanceof Collection) {
- $this->defaultHeaders = $headers;
- } elseif (is_array($headers)) {
- $this->defaultHeaders = new Collection($headers);
- } else {
- throw new InvalidArgumentException('Headers must be an array or Collection');
- }
-
- return $this;
- }
-
- /**
- * @deprecated
- */
- public function preparePharCacert($md5Check = true)
- {
- return sys_get_temp_dir() . '/guzzle-cacert.pem';
- }
-
- /**
- * Copies the phar cacert from a phar into the temp directory.
- *
- * @param string $pharCacertPath Path to the phar cacert. For example:
- * 'phar://aws.phar/Guzzle/Http/Resources/cacert.pem'
- *
- * @return string Returns the path to the extracted cacert file.
- * @throws \RuntimeException Throws if the phar cacert cannot be found or
- * the file cannot be copied to the temp dir.
- */
- public static function extractPharCacert($pharCacertPath)
- {
- // Copy the cacert.pem file from the phar if it is not in the temp
- // folder.
- $certFile = sys_get_temp_dir() . '/guzzle-cacert.pem';
-
- if (!file_exists($pharCacertPath)) {
- throw new \RuntimeException("Could not find $pharCacertPath");
- }
-
- if (!file_exists($certFile) ||
- filesize($certFile) != filesize($pharCacertPath)
- ) {
- if (!copy($pharCacertPath, $certFile)) {
- throw new \RuntimeException(
- "Could not copy {$pharCacertPath} to {$certFile}: "
- . var_export(error_get_last(), true)
- );
- }
- }
-
- return $certFile;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ClientInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ClientInterface.php
deleted file mode 100644
index 10e4de2ab09..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ClientInterface.php
+++ /dev/null
@@ -1,223 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\HasDispatcherInterface;
-use Guzzle\Common\Collection;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * Client interface for send HTTP requests
- */
-interface ClientInterface extends HasDispatcherInterface
-{
- const CREATE_REQUEST = 'client.create_request';
-
- /** @var string RFC 1123 HTTP-Date */
- const HTTP_DATE = 'D, d M Y H:i:s \G\M\T';
-
- /**
- * Set the configuration object to use with the client
- *
- * @param array|Collection $config Parameters that define how the client behaves
- *
- * @return self
- */
- public function setConfig($config);
-
- /**
- * Get a configuration setting or all of the configuration settings. The Collection result of this method can be
- * modified to change the configuration settings of a client.
- *
- * A client should honor the following special values:
- *
- * - request.options: Associative array of default RequestFactory options to apply to each request
- * - request.params: Associative array of request parameters (data values) to apply to each request
- * - curl.options: Associative array of cURL configuration settings to apply to each request
- * - ssl.certificate_authority: Path a CAINFO, CAPATH, true to use strict defaults, or false to disable verification
- * - redirect.disable: Set to true to disable redirects
- *
- * @param bool|string $key Configuration value to retrieve. Set to FALSE to retrieve all values of the client.
- * The object return can be modified, and modifications will affect the client's config.
- * @return mixed|Collection
- * @see \Guzzle\Http\Message\RequestFactoryInterface::applyOptions for a full list of request.options options
- */
- public function getConfig($key = false);
-
- /**
- * Create and return a new {@see RequestInterface} configured for the client.
- *
- * Use an absolute path to override the base path of the client, or a relative path to append to the base path of
- * the client. The URI can contain the query string as well. Use an array to provide a URI template and additional
- * variables to use in the URI template expansion.
- *
- * @param string $method HTTP method. Defaults to GET
- * @param string|array $uri Resource URI.
- * @param array|Collection $headers HTTP headers
- * @param string|resource|array|EntityBodyInterface $body Entity body of request (POST/PUT) or response (GET)
- * @param array $options Array of options to apply to the request
- *
- * @return RequestInterface
- * @throws InvalidArgumentException if a URI array is passed that does not contain exactly two elements: the URI
- * followed by template variables
- */
- public function createRequest(
- $method = RequestInterface::GET,
- $uri = null,
- $headers = null,
- $body = null,
- array $options = array()
- );
-
- /**
- * Create a GET request for the client
- *
- * @param string|array $uri Resource URI
- * @param array|Collection $headers HTTP headers
- * @param array $options Options to apply to the request. For BC compatibility, you can also pass a
- * string to tell Guzzle to download the body of the response to a particular
- * location. Use the 'body' option instead for forward compatibility.
- * @return RequestInterface
- * @see Guzzle\Http\ClientInterface::createRequest()
- */
- public function get($uri = null, $headers = null, $options = array());
-
- /**
- * Create a HEAD request for the client
- *
- * @param string|array $uri Resource URI
- * @param array|Collection $headers HTTP headers
- * @param array $options Options to apply to the request
- *
- * @return RequestInterface
- * @see Guzzle\Http\ClientInterface::createRequest()
- */
- public function head($uri = null, $headers = null, array $options = array());
-
- /**
- * Create a DELETE request for the client
- *
- * @param string|array $uri Resource URI
- * @param array|Collection $headers HTTP headers
- * @param string|resource|EntityBodyInterface $body Body to send in the request
- * @param array $options Options to apply to the request
- *
- * @return EntityEnclosingRequestInterface
- * @see Guzzle\Http\ClientInterface::createRequest()
- */
- public function delete($uri = null, $headers = null, $body = null, array $options = array());
-
- /**
- * Create a PUT request for the client
- *
- * @param string|array $uri Resource URI
- * @param array|Collection $headers HTTP headers
- * @param string|resource|EntityBodyInterface $body Body to send in the request
- * @param array $options Options to apply to the request
- *
- * @return EntityEnclosingRequestInterface
- * @see Guzzle\Http\ClientInterface::createRequest()
- */
- public function put($uri = null, $headers = null, $body = null, array $options = array());
-
- /**
- * Create a PATCH request for the client
- *
- * @param string|array $uri Resource URI
- * @param array|Collection $headers HTTP headers
- * @param string|resource|EntityBodyInterface $body Body to send in the request
- * @param array $options Options to apply to the request
- *
- * @return EntityEnclosingRequestInterface
- * @see Guzzle\Http\ClientInterface::createRequest()
- */
- public function patch($uri = null, $headers = null, $body = null, array $options = array());
-
- /**
- * Create a POST request for the client
- *
- * @param string|array $uri Resource URI
- * @param array|Collection $headers HTTP headers
- * @param array|Collection|string|EntityBodyInterface $postBody POST body. Can be a string, EntityBody, or
- * associative array of POST fields to send in the body of the
- * request. Prefix a value in the array with the @ symbol to
- * reference a file.
- * @param array $options Options to apply to the request
- *
- * @return EntityEnclosingRequestInterface
- * @see Guzzle\Http\ClientInterface::createRequest()
- */
- public function post($uri = null, $headers = null, $postBody = null, array $options = array());
-
- /**
- * Create an OPTIONS request for the client
- *
- * @param string|array $uri Resource URI
- * @param array $options Options to apply to the request
- *
- * @return RequestInterface
- * @see Guzzle\Http\ClientInterface::createRequest()
- */
- public function options($uri = null, array $options = array());
-
- /**
- * Sends a single request or an array of requests in parallel
- *
- * @param array|RequestInterface $requests One or more RequestInterface objects to send
- *
- * @return \Guzzle\Http\Message\Response|array Returns a single Response or an array of Response objects
- */
- public function send($requests);
-
- /**
- * Get the client's base URL as either an expanded or raw URI template
- *
- * @param bool $expand Set to FALSE to get the raw base URL without URI template expansion
- *
- * @return string|null
- */
- public function getBaseUrl($expand = true);
-
- /**
- * Set the base URL of the client
- *
- * @param string $url The base service endpoint URL of the webservice
- *
- * @return self
- */
- public function setBaseUrl($url);
-
- /**
- * Set the User-Agent header to be used on all requests from the client
- *
- * @param string $userAgent User agent string
- * @param bool $includeDefault Set to true to prepend the value to Guzzle's default user agent string
- *
- * @return self
- */
- public function setUserAgent($userAgent, $includeDefault = false);
-
- /**
- * Set SSL verification options.
- *
- * Setting $certificateAuthority to TRUE will result in the bundled cacert.pem being used to verify against the
- * remote host.
- *
- * Alternate certificates to verify against can be specified with the $certificateAuthority option set to the full
- * path to a certificate file, or the path to a directory containing certificates.
- *
- * Setting $certificateAuthority to FALSE will turn off peer verification, unset the bundled cacert.pem, and
- * disable host verification. Please don't do this unless you really know what you're doing, and why you're doing
- * it.
- *
- * @param string|bool $certificateAuthority bool, file path, or directory path
- * @param bool $verifyPeer FALSE to stop from verifying the peer's certificate.
- * @param int $verifyHost Set to 1 to check the existence of a common name in the SSL peer
- * certificate. 2 to check the existence of a common name and also verify
- * that it matches the hostname provided.
- * @return self
- */
- public function setSslVerification($certificateAuthority = true, $verifyPeer = true, $verifyHost = 2);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlHandle.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlHandle.php
deleted file mode 100644
index 63c6d4206ba..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlHandle.php
+++ /dev/null
@@ -1,464 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Curl;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Common\Collection;
-use Guzzle\Http\Message\EntityEnclosingRequest;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Parser\ParserRegistry;
-use Guzzle\Http\Url;
-
-/**
- * Immutable wrapper for a cURL handle
- */
-class CurlHandle
-{
- const BODY_AS_STRING = 'body_as_string';
- const PROGRESS = 'progress';
- const DEBUG = 'debug';
-
- /** @var Collection Curl options */
- protected $options;
-
- /** @var resource Curl resource handle */
- protected $handle;
-
- /** @var int CURLE_* error */
- protected $errorNo = CURLE_OK;
-
- /**
- * Factory method to create a new curl handle based on an HTTP request.
- *
- * There are some helpful options you can set to enable specific behavior:
- * - debug: Set to true to enable cURL debug functionality to track the actual headers sent over the wire.
- * - progress: Set to true to enable progress function callbacks.
- *
- * @param RequestInterface $request Request
- *
- * @return CurlHandle
- * @throws RuntimeException
- */
- public static function factory(RequestInterface $request)
- {
- $requestCurlOptions = $request->getCurlOptions();
- $mediator = new RequestMediator($request, $requestCurlOptions->get('emit_io'));
- $tempContentLength = null;
- $method = $request->getMethod();
- $bodyAsString = $requestCurlOptions->get(self::BODY_AS_STRING);
-
- // Prepare url
- $url = (string)$request->getUrl();
- if(($pos = strpos($url, '#')) !== false ){
- // strip fragment from url
- $url = substr($url, 0, $pos);
- }
-
- // Array of default cURL options.
- $curlOptions = array(
- CURLOPT_URL => $url,
- CURLOPT_CONNECTTIMEOUT => 150,
- CURLOPT_RETURNTRANSFER => false,
- CURLOPT_HEADER => false,
- CURLOPT_PORT => $request->getPort(),
- CURLOPT_HTTPHEADER => array(),
- CURLOPT_WRITEFUNCTION => array($mediator, 'writeResponseBody'),
- CURLOPT_HEADERFUNCTION => array($mediator, 'receiveResponseHeader'),
- CURLOPT_HTTP_VERSION => $request->getProtocolVersion() === '1.0'
- ? CURL_HTTP_VERSION_1_0 : CURL_HTTP_VERSION_1_1,
- // Verifies the authenticity of the peer's certificate
- CURLOPT_SSL_VERIFYPEER => 1,
- // Certificate must indicate that the server is the server to which you meant to connect
- CURLOPT_SSL_VERIFYHOST => 2
- );
-
- if (defined('CURLOPT_PROTOCOLS')) {
- // Allow only HTTP and HTTPS protocols
- $curlOptions[CURLOPT_PROTOCOLS] = CURLPROTO_HTTP | CURLPROTO_HTTPS;
- }
-
- // Add CURLOPT_ENCODING if Accept-Encoding header is provided
- if ($acceptEncodingHeader = $request->getHeader('Accept-Encoding')) {
- $curlOptions[CURLOPT_ENCODING] = (string) $acceptEncodingHeader;
- // Let cURL set the Accept-Encoding header, prevents duplicate values
- $request->removeHeader('Accept-Encoding');
- }
-
- // Enable curl debug information if the 'debug' param was set
- if ($requestCurlOptions->get('debug')) {
- $curlOptions[CURLOPT_STDERR] = fopen('php://temp', 'r+');
- // @codeCoverageIgnoreStart
- if (false === $curlOptions[CURLOPT_STDERR]) {
- throw new RuntimeException('Unable to create a stream for CURLOPT_STDERR');
- }
- // @codeCoverageIgnoreEnd
- $curlOptions[CURLOPT_VERBOSE] = true;
- }
-
- // Specify settings according to the HTTP method
- if ($method == 'GET') {
- $curlOptions[CURLOPT_HTTPGET] = true;
- } elseif ($method == 'HEAD') {
- $curlOptions[CURLOPT_NOBODY] = true;
- // HEAD requests do not use a write function
- unset($curlOptions[CURLOPT_WRITEFUNCTION]);
- } elseif (!($request instanceof EntityEnclosingRequest)) {
- $curlOptions[CURLOPT_CUSTOMREQUEST] = $method;
- } else {
-
- $curlOptions[CURLOPT_CUSTOMREQUEST] = $method;
-
- // Handle sending raw bodies in a request
- if ($request->getBody()) {
- // You can send the body as a string using curl's CURLOPT_POSTFIELDS
- if ($bodyAsString) {
- $curlOptions[CURLOPT_POSTFIELDS] = (string) $request->getBody();
- // Allow curl to add the Content-Length for us to account for the times when
- // POST redirects are followed by GET requests
- if ($tempContentLength = $request->getHeader('Content-Length')) {
- $tempContentLength = (int) (string) $tempContentLength;
- }
- // Remove the curl generated Content-Type header if none was set manually
- if (!$request->hasHeader('Content-Type')) {
- $curlOptions[CURLOPT_HTTPHEADER][] = 'Content-Type:';
- }
- } else {
- $curlOptions[CURLOPT_UPLOAD] = true;
- // Let cURL handle setting the Content-Length header
- if ($tempContentLength = $request->getHeader('Content-Length')) {
- $tempContentLength = (int) (string) $tempContentLength;
- $curlOptions[CURLOPT_INFILESIZE] = $tempContentLength;
- }
- // Add a callback for curl to read data to send with the request only if a body was specified
- $curlOptions[CURLOPT_READFUNCTION] = array($mediator, 'readRequestBody');
- // Attempt to seek to the start of the stream
- $request->getBody()->seek(0);
- }
-
- } else {
-
- // Special handling for POST specific fields and files
- $postFields = false;
- if (count($request->getPostFiles())) {
- $postFields = $request->getPostFields()->useUrlEncoding(false)->urlEncode();
- foreach ($request->getPostFiles() as $key => $data) {
- $prefixKeys = count($data) > 1;
- foreach ($data as $index => $file) {
- // Allow multiple files in the same key
- $fieldKey = $prefixKeys ? "{$key}[{$index}]" : $key;
- $postFields[$fieldKey] = $file->getCurlValue();
- }
- }
- } elseif (count($request->getPostFields())) {
- $postFields = (string) $request->getPostFields()->useUrlEncoding(true);
- }
-
- if ($postFields !== false) {
- if ($method == 'POST') {
- unset($curlOptions[CURLOPT_CUSTOMREQUEST]);
- $curlOptions[CURLOPT_POST] = true;
- }
- $curlOptions[CURLOPT_POSTFIELDS] = $postFields;
- $request->removeHeader('Content-Length');
- }
- }
-
- // If the Expect header is not present, prevent curl from adding it
- if (!$request->hasHeader('Expect')) {
- $curlOptions[CURLOPT_HTTPHEADER][] = 'Expect:';
- }
- }
-
- // If a Content-Length header was specified but we want to allow curl to set one for us
- if (null !== $tempContentLength) {
- $request->removeHeader('Content-Length');
- }
-
- // Set custom cURL options
- foreach ($requestCurlOptions->toArray() as $key => $value) {
- if (is_numeric($key)) {
- $curlOptions[$key] = $value;
- }
- }
-
- // Do not set an Accept header by default
- if (!isset($curlOptions[CURLOPT_ENCODING])) {
- $curlOptions[CURLOPT_HTTPHEADER][] = 'Accept:';
- }
-
- // Add any custom headers to the request. Empty headers will cause curl to not send the header at all.
- foreach ($request->getHeaderLines() as $line) {
- $curlOptions[CURLOPT_HTTPHEADER][] = $line;
- }
-
- // Add the content-length header back if it was temporarily removed
- if ($tempContentLength) {
- $request->setHeader('Content-Length', $tempContentLength);
- }
-
- // Apply the options to a new cURL handle.
- $handle = curl_init();
-
- // Enable the progress function if the 'progress' param was set
- if ($requestCurlOptions->get('progress')) {
- // Wrap the function in a function that provides the curl handle to the mediator's progress function
- // Using this rather than injecting the handle into the mediator prevents a circular reference
- $curlOptions[CURLOPT_PROGRESSFUNCTION] = function () use ($mediator, $handle) {
- $args = func_get_args();
- $args[] = $handle;
-
- // PHP 5.5 pushed the handle onto the start of the args
- if (is_resource($args[0])) {
- array_shift($args);
- }
-
- call_user_func_array(array($mediator, 'progress'), $args);
- };
- $curlOptions[CURLOPT_NOPROGRESS] = false;
- }
-
- curl_setopt_array($handle, $curlOptions);
-
- return new static($handle, $curlOptions);
- }
-
- /**
- * Construct a new CurlHandle object that wraps a cURL handle
- *
- * @param resource $handle Configured cURL handle resource
- * @param Collection|array $options Curl options to use with the handle
- *
- * @throws InvalidArgumentException
- */
- public function __construct($handle, $options)
- {
- if (!is_resource($handle)) {
- throw new InvalidArgumentException('Invalid handle provided');
- }
- if (is_array($options)) {
- $this->options = new Collection($options);
- } elseif ($options instanceof Collection) {
- $this->options = $options;
- } else {
- throw new InvalidArgumentException('Expected array or Collection');
- }
- $this->handle = $handle;
- }
-
- /**
- * Destructor
- */
- public function __destruct()
- {
- $this->close();
- }
-
- /**
- * Close the curl handle
- */
- public function close()
- {
- if (is_resource($this->handle)) {
- curl_close($this->handle);
- }
- $this->handle = null;
- }
-
- /**
- * Check if the handle is available and still OK
- *
- * @return bool
- */
- public function isAvailable()
- {
- return is_resource($this->handle);
- }
-
- /**
- * Get the last error that occurred on the cURL handle
- *
- * @return string
- */
- public function getError()
- {
- return $this->isAvailable() ? curl_error($this->handle) : '';
- }
-
- /**
- * Get the last error number that occurred on the cURL handle
- *
- * @return int
- */
- public function getErrorNo()
- {
- if ($this->errorNo) {
- return $this->errorNo;
- }
-
- return $this->isAvailable() ? curl_errno($this->handle) : CURLE_OK;
- }
-
- /**
- * Set the curl error number
- *
- * @param int $error Error number to set
- *
- * @return CurlHandle
- */
- public function setErrorNo($error)
- {
- $this->errorNo = $error;
-
- return $this;
- }
-
- /**
- * Get cURL curl_getinfo data
- *
- * @param int $option Option to retrieve. Pass null to retrieve all data as an array.
- *
- * @return array|mixed
- */
- public function getInfo($option = null)
- {
- if (!is_resource($this->handle)) {
- return null;
- }
-
- if (null !== $option) {
- return curl_getinfo($this->handle, $option) ?: null;
- }
-
- return curl_getinfo($this->handle) ?: array();
- }
-
- /**
- * Get the stderr output
- *
- * @param bool $asResource Set to TRUE to get an fopen resource
- *
- * @return string|resource|null
- */
- public function getStderr($asResource = false)
- {
- $stderr = $this->getOptions()->get(CURLOPT_STDERR);
- if (!$stderr) {
- return null;
- }
-
- if ($asResource) {
- return $stderr;
- }
-
- fseek($stderr, 0);
- $e = stream_get_contents($stderr);
- fseek($stderr, 0, SEEK_END);
-
- return $e;
- }
-
- /**
- * Get the URL that this handle is connecting to
- *
- * @return Url
- */
- public function getUrl()
- {
- return Url::factory($this->options->get(CURLOPT_URL));
- }
-
- /**
- * Get the wrapped curl handle
- *
- * @return resource|null Returns the cURL handle or null if it was closed
- */
- public function getHandle()
- {
- return $this->isAvailable() ? $this->handle : null;
- }
-
- /**
- * Get the cURL setopt options of the handle. Changing values in the return object will have no effect on the curl
- * handle after it is created.
- *
- * @return Collection
- */
- public function getOptions()
- {
- return $this->options;
- }
-
- /**
- * Update a request based on the log messages of the CurlHandle
- *
- * @param RequestInterface $request Request to update
- */
- public function updateRequestFromTransfer(RequestInterface $request)
- {
- if (!$request->getResponse()) {
- return;
- }
-
- // Update the transfer stats of the response
- $request->getResponse()->setInfo($this->getInfo());
-
- if (!$log = $this->getStderr(true)) {
- return;
- }
-
- // Parse the cURL stderr output for outgoing requests
- $headers = '';
- fseek($log, 0);
- while (($line = fgets($log)) !== false) {
- if ($line && $line[0] == '>') {
- $headers = substr(trim($line), 2) . "\r\n";
- while (($line = fgets($log)) !== false) {
- if ($line[0] == '*' || $line[0] == '<') {
- break;
- } else {
- $headers .= trim($line) . "\r\n";
- }
- }
- }
- }
-
- // Add request headers to the request exactly as they were sent
- if ($headers) {
- $parsed = ParserRegistry::getInstance()->getParser('message')->parseRequest($headers);
- if (!empty($parsed['headers'])) {
- $request->setHeaders(array());
- foreach ($parsed['headers'] as $name => $value) {
- $request->setHeader($name, $value);
- }
- }
- if (!empty($parsed['version'])) {
- $request->setProtocolVersion($parsed['version']);
- }
- }
- }
-
- /**
- * Parse the config and replace curl.* configurators into the constant based values so it can be used elsewhere
- *
- * @param array|Collection $config The configuration we want to parse
- *
- * @return array
- */
- public static function parseCurlConfig($config)
- {
- $curlOptions = array();
- foreach ($config as $key => $value) {
- if (is_string($key) && defined($key)) {
- // Convert constants represented as string to constant int values
- $key = constant($key);
- }
- if (is_string($value) && defined($value)) {
- $value = constant($value);
- }
- $curlOptions[$key] = $value;
- }
-
- return $curlOptions;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMulti.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMulti.php
deleted file mode 100644
index 9e4e637222d..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMulti.php
+++ /dev/null
@@ -1,423 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Curl;
-
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Common\Event;
-use Guzzle\Http\Exception\MultiTransferException;
-use Guzzle\Http\Exception\CurlException;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Exception\RequestException;
-
-/**
- * Send {@see RequestInterface} objects in parallel using curl_multi
- */
-class CurlMulti extends AbstractHasDispatcher implements CurlMultiInterface
-{
- /** @var resource cURL multi handle. */
- protected $multiHandle;
-
- /** @var array Attached {@see RequestInterface} objects. */
- protected $requests;
-
- /** @var \SplObjectStorage RequestInterface to CurlHandle hash */
- protected $handles;
-
- /** @var array Hash mapping curl handle resource IDs to request objects */
- protected $resourceHash;
-
- /** @var array Queued exceptions */
- protected $exceptions = array();
-
- /** @var array Requests that succeeded */
- protected $successful = array();
-
- /** @var array cURL multi error values and codes */
- protected $multiErrors = array(
- CURLM_BAD_HANDLE => array('CURLM_BAD_HANDLE', 'The passed-in handle is not a valid CURLM handle.'),
- CURLM_BAD_EASY_HANDLE => array('CURLM_BAD_EASY_HANDLE', "An easy handle was not good/valid. It could mean that it isn't an easy handle at all, or possibly that the handle already is in used by this or another multi handle."),
- CURLM_OUT_OF_MEMORY => array('CURLM_OUT_OF_MEMORY', 'You are doomed.'),
- CURLM_INTERNAL_ERROR => array('CURLM_INTERNAL_ERROR', 'This can only be returned if libcurl bugs. Please report it to us!')
- );
-
- /** @var float */
- protected $selectTimeout;
-
- public function __construct($selectTimeout = 1.0)
- {
- $this->selectTimeout = $selectTimeout;
- $this->multiHandle = curl_multi_init();
- // @codeCoverageIgnoreStart
- if ($this->multiHandle === false) {
- throw new CurlException('Unable to create multi handle');
- }
- // @codeCoverageIgnoreEnd
- $this->reset();
- }
-
- public function __destruct()
- {
- if (is_resource($this->multiHandle)) {
- curl_multi_close($this->multiHandle);
- }
- }
-
- public function add(RequestInterface $request)
- {
- $this->requests[] = $request;
- // If requests are currently transferring and this is async, then the
- // request must be prepared now as the send() method is not called.
- $this->beforeSend($request);
- $this->dispatch(self::ADD_REQUEST, array('request' => $request));
-
- return $this;
- }
-
- public function all()
- {
- return $this->requests;
- }
-
- public function remove(RequestInterface $request)
- {
- $this->removeHandle($request);
- if (($index = array_search($request, $this->requests, true)) !== false) {
- $request = $this->requests[$index];
- unset($this->requests[$index]);
- $this->requests = array_values($this->requests);
- $this->dispatch(self::REMOVE_REQUEST, array('request' => $request));
- return true;
- }
-
- return false;
- }
-
- public function reset($hard = false)
- {
- // Remove each request
- if ($this->requests) {
- foreach ($this->requests as $request) {
- $this->remove($request);
- }
- }
-
- $this->handles = new \SplObjectStorage();
- $this->requests = $this->resourceHash = $this->exceptions = $this->successful = array();
- }
-
- public function send()
- {
- $this->perform();
- $exceptions = $this->exceptions;
- $successful = $this->successful;
- $this->reset();
-
- if ($exceptions) {
- $this->throwMultiException($exceptions, $successful);
- }
- }
-
- public function count()
- {
- return count($this->requests);
- }
-
- /**
- * Build and throw a MultiTransferException
- *
- * @param array $exceptions Exceptions encountered
- * @param array $successful Successful requests
- * @throws MultiTransferException
- */
- protected function throwMultiException(array $exceptions, array $successful)
- {
- $multiException = new MultiTransferException('Errors during multi transfer');
-
- while ($e = array_shift($exceptions)) {
- $multiException->addFailedRequestWithException($e['request'], $e['exception']);
- }
-
- // Add successful requests
- foreach ($successful as $request) {
- if (!$multiException->containsRequest($request)) {
- $multiException->addSuccessfulRequest($request);
- }
- }
-
- throw $multiException;
- }
-
- /**
- * Prepare for sending
- *
- * @param RequestInterface $request Request to prepare
- * @throws \Exception on error preparing the request
- */
- protected function beforeSend(RequestInterface $request)
- {
- try {
- $state = $request->setState(RequestInterface::STATE_TRANSFER);
- if ($state == RequestInterface::STATE_TRANSFER) {
- $this->addHandle($request);
- } else {
- // Requests might decide they don't need to be sent just before
- // transfer (e.g. CachePlugin)
- $this->remove($request);
- if ($state == RequestInterface::STATE_COMPLETE) {
- $this->successful[] = $request;
- }
- }
- } catch (\Exception $e) {
- // Queue the exception to be thrown when sent
- $this->removeErroredRequest($request, $e);
- }
- }
-
- private function addHandle(RequestInterface $request)
- {
- $handle = $this->createCurlHandle($request)->getHandle();
- $this->checkCurlResult(
- curl_multi_add_handle($this->multiHandle, $handle)
- );
- }
-
- /**
- * Create a curl handle for a request
- *
- * @param RequestInterface $request Request
- *
- * @return CurlHandle
- */
- protected function createCurlHandle(RequestInterface $request)
- {
- $wrapper = CurlHandle::factory($request);
- $this->handles[$request] = $wrapper;
- $this->resourceHash[(int) $wrapper->getHandle()] = $request;
-
- return $wrapper;
- }
-
- /**
- * Get the data from the multi handle
- */
- protected function perform()
- {
- $event = new Event(array('curl_multi' => $this));
-
- while ($this->requests) {
- // Notify each request as polling
- $blocking = $total = 0;
- foreach ($this->requests as $request) {
- ++$total;
- $event['request'] = $request;
- $request->getEventDispatcher()->dispatch(self::POLLING_REQUEST, $event);
- // The blocking variable just has to be non-falsey to block the loop
- if ($request->getParams()->hasKey(self::BLOCKING)) {
- ++$blocking;
- }
- }
- if ($blocking == $total) {
- // Sleep to prevent eating CPU because no requests are actually pending a select call
- usleep(500);
- } else {
- $this->executeHandles();
- }
- }
- }
-
- /**
- * Execute and select curl handles
- */
- private function executeHandles()
- {
- // The first curl_multi_select often times out no matter what, but is usually required for fast transfers
- $selectTimeout = 0.001;
- $active = false;
- do {
- while (($mrc = curl_multi_exec($this->multiHandle, $active)) == CURLM_CALL_MULTI_PERFORM);
- $this->checkCurlResult($mrc);
- $this->processMessages();
- if ($active && curl_multi_select($this->multiHandle, $selectTimeout) === -1) {
- // Perform a usleep if a select returns -1: https://bugs.php.net/bug.php?id=61141
- usleep(150);
- }
- $selectTimeout = $this->selectTimeout;
- } while ($active);
- }
-
- /**
- * Process any received curl multi messages
- */
- private function processMessages()
- {
- while ($done = curl_multi_info_read($this->multiHandle)) {
- $request = $this->resourceHash[(int) $done['handle']];
- try {
- $this->processResponse($request, $this->handles[$request], $done);
- $this->successful[] = $request;
- } catch (\Exception $e) {
- $this->removeErroredRequest($request, $e);
- }
- }
- }
-
- /**
- * Remove a request that encountered an exception
- *
- * @param RequestInterface $request Request to remove
- * @param \Exception $e Exception encountered
- */
- protected function removeErroredRequest(RequestInterface $request, \Exception $e = null)
- {
- $this->exceptions[] = array('request' => $request, 'exception' => $e);
- $this->remove($request);
- $this->dispatch(self::MULTI_EXCEPTION, array('exception' => $e, 'all_exceptions' => $this->exceptions));
- }
-
- /**
- * Check for errors and fix headers of a request based on a curl response
- *
- * @param RequestInterface $request Request to process
- * @param CurlHandle $handle Curl handle object
- * @param array $curl Array returned from curl_multi_info_read
- *
- * @throws CurlException on Curl error
- */
- protected function processResponse(RequestInterface $request, CurlHandle $handle, array $curl)
- {
- // Set the transfer stats on the response
- $handle->updateRequestFromTransfer($request);
- // Check if a cURL exception occurred, and if so, notify things
- $curlException = $this->isCurlException($request, $handle, $curl);
-
- // Always remove completed curl handles. They can be added back again
- // via events if needed (e.g. ExponentialBackoffPlugin)
- $this->removeHandle($request);
-
- if (!$curlException) {
- if ($this->validateResponseWasSet($request)) {
- $state = $request->setState(
- RequestInterface::STATE_COMPLETE,
- array('handle' => $handle)
- );
- // Only remove the request if it wasn't resent as a result of
- // the state change
- if ($state != RequestInterface::STATE_TRANSFER) {
- $this->remove($request);
- }
- }
- return;
- }
-
- // Set the state of the request to an error
- $state = $request->setState(RequestInterface::STATE_ERROR, array('exception' => $curlException));
- // Allow things to ignore the error if possible
- if ($state != RequestInterface::STATE_TRANSFER) {
- $this->remove($request);
- }
-
- // The error was not handled, so fail
- if ($state == RequestInterface::STATE_ERROR) {
- /** @var CurlException $curlException */
- throw $curlException;
- }
- }
-
- /**
- * Remove a curl handle from the curl multi object
- *
- * @param RequestInterface $request Request that owns the handle
- */
- protected function removeHandle(RequestInterface $request)
- {
- if (isset($this->handles[$request])) {
- $handle = $this->handles[$request];
- curl_multi_remove_handle($this->multiHandle, $handle->getHandle());
- unset($this->handles[$request]);
- unset($this->resourceHash[(int) $handle->getHandle()]);
- $handle->close();
- }
- }
-
- /**
- * Check if a cURL transfer resulted in what should be an exception
- *
- * @param RequestInterface $request Request to check
- * @param CurlHandle $handle Curl handle object
- * @param array $curl Array returned from curl_multi_info_read
- *
- * @return CurlException|bool
- */
- private function isCurlException(RequestInterface $request, CurlHandle $handle, array $curl)
- {
- if (CURLM_OK == $curl['result'] || CURLM_CALL_MULTI_PERFORM == $curl['result']) {
- return false;
- }
-
- $handle->setErrorNo($curl['result']);
- $e = new CurlException(sprintf('[curl] %s: %s [url] %s',
- $handle->getErrorNo(), $handle->getError(), $handle->getUrl()));
- $e->setCurlHandle($handle)
- ->setRequest($request)
- ->setCurlInfo($handle->getInfo())
- ->setError($handle->getError(), $handle->getErrorNo());
-
- return $e;
- }
-
- /**
- * Throw an exception for a cURL multi response if needed
- *
- * @param int $code Curl response code
- * @throws CurlException
- */
- private function checkCurlResult($code)
- {
- if ($code != CURLM_OK && $code != CURLM_CALL_MULTI_PERFORM) {
- throw new CurlException(isset($this->multiErrors[$code])
- ? "cURL error: {$code} ({$this->multiErrors[$code][0]}): cURL message: {$this->multiErrors[$code][1]}"
- : 'Unexpected cURL error: ' . $code
- );
- }
- }
-
- /**
- * @link https://github.com/guzzle/guzzle/issues/710
- */
- private function validateResponseWasSet(RequestInterface $request)
- {
- if ($request->getResponse()) {
- return true;
- }
-
- $body = $request instanceof EntityEnclosingRequestInterface
- ? $request->getBody()
- : null;
-
- if (!$body) {
- $rex = new RequestException(
- 'No response was received for a request with no body. This'
- . ' could mean that you are saturating your network.'
- );
- $rex->setRequest($request);
- $this->removeErroredRequest($request, $rex);
- } elseif (!$body->isSeekable() || !$body->seek(0)) {
- // Nothing we can do with this. Sorry!
- $rex = new RequestException(
- 'The connection was unexpectedly closed. The request would'
- . ' have been retried, but attempting to rewind the'
- . ' request body failed.'
- );
- $rex->setRequest($request);
- $this->removeErroredRequest($request, $rex);
- } else {
- $this->remove($request);
- // Add the request back to the batch to retry automatically.
- $this->requests[] = $request;
- $this->addHandle($request);
- }
-
- return false;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiInterface.php
deleted file mode 100644
index 0ead7573502..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiInterface.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Curl;
-
-use Guzzle\Common\HasDispatcherInterface;
-use Guzzle\Common\Exception\ExceptionCollection;
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * Interface for sending a pool of {@see RequestInterface} objects in parallel
- */
-interface CurlMultiInterface extends \Countable, HasDispatcherInterface
-{
- const POLLING_REQUEST = 'curl_multi.polling_request';
- const ADD_REQUEST = 'curl_multi.add_request';
- const REMOVE_REQUEST = 'curl_multi.remove_request';
- const MULTI_EXCEPTION = 'curl_multi.exception';
- const BLOCKING = 'curl_multi.blocking';
-
- /**
- * Add a request to the pool.
- *
- * @param RequestInterface $request Request to add
- *
- * @return CurlMultiInterface
- */
- public function add(RequestInterface $request);
-
- /**
- * Get an array of attached {@see RequestInterface} objects
- *
- * @return array
- */
- public function all();
-
- /**
- * Remove a request from the pool.
- *
- * @param RequestInterface $request Request to remove
- *
- * @return bool Returns true on success or false on failure
- */
- public function remove(RequestInterface $request);
-
- /**
- * Reset the state and remove any attached RequestInterface objects
- *
- * @param bool $hard Set to true to close and reopen any open multi handles
- */
- public function reset($hard = false);
-
- /**
- * Send a pool of {@see RequestInterface} requests.
- *
- * @throws ExceptionCollection if any requests threw exceptions during the transfer.
- */
- public function send();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiProxy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiProxy.php
deleted file mode 100644
index c5b80a7f57f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlMultiProxy.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Curl;
-
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * Proxies requests and connections to a pool of internal curl_multi handles. Each recursive call will add requests
- * to the next available CurlMulti handle.
- */
-class CurlMultiProxy extends AbstractHasDispatcher implements CurlMultiInterface
-{
- protected $handles = array();
- protected $groups = array();
- protected $queued = array();
- protected $maxHandles;
- protected $selectTimeout;
-
- /**
- * @param int $maxHandles The maximum number of idle CurlMulti handles to allow to remain open
- * @param float $selectTimeout timeout for curl_multi_select
- */
- public function __construct($maxHandles = 3, $selectTimeout = 1.0)
- {
- $this->maxHandles = $maxHandles;
- $this->selectTimeout = $selectTimeout;
- // You can get some weird "Too many open files" errors when sending a large amount of requests in parallel.
- // These two statements autoload classes before a system runs out of file descriptors so that you can get back
- // valuable error messages if you run out.
- class_exists('Guzzle\Http\Message\Response');
- class_exists('Guzzle\Http\Exception\CurlException');
- }
-
- public function add(RequestInterface $request)
- {
- $this->queued[] = $request;
-
- return $this;
- }
-
- public function all()
- {
- $requests = $this->queued;
- foreach ($this->handles as $handle) {
- $requests = array_merge($requests, $handle->all());
- }
-
- return $requests;
- }
-
- public function remove(RequestInterface $request)
- {
- foreach ($this->queued as $i => $r) {
- if ($request === $r) {
- unset($this->queued[$i]);
- return true;
- }
- }
-
- foreach ($this->handles as $handle) {
- if ($handle->remove($request)) {
- return true;
- }
- }
-
- return false;
- }
-
- public function reset($hard = false)
- {
- $this->queued = array();
- $this->groups = array();
- foreach ($this->handles as $handle) {
- $handle->reset();
- }
- if ($hard) {
- $this->handles = array();
- }
-
- return $this;
- }
-
- public function send()
- {
- if ($this->queued) {
- $group = $this->getAvailableHandle();
- // Add this handle to a list of handles than is claimed
- $this->groups[] = $group;
- while ($request = array_shift($this->queued)) {
- $group->add($request);
- }
- try {
- $group->send();
- array_pop($this->groups);
- $this->cleanupHandles();
- } catch (\Exception $e) {
- // Remove the group and cleanup if an exception was encountered and no more requests in group
- if (!$group->count()) {
- array_pop($this->groups);
- $this->cleanupHandles();
- }
- throw $e;
- }
- }
- }
-
- public function count()
- {
- return count($this->all());
- }
-
- /**
- * Get an existing available CurlMulti handle or create a new one
- *
- * @return CurlMulti
- */
- protected function getAvailableHandle()
- {
- // Grab a handle that is not claimed
- foreach ($this->handles as $h) {
- if (!in_array($h, $this->groups, true)) {
- return $h;
- }
- }
-
- // All are claimed, so create one
- $handle = new CurlMulti($this->selectTimeout);
- $handle->setEventDispatcher($this->getEventDispatcher());
- $this->handles[] = $handle;
-
- return $handle;
- }
-
- /**
- * Trims down unused CurlMulti handles to limit the number of open connections
- */
- protected function cleanupHandles()
- {
- if ($diff = max(0, count($this->handles) - $this->maxHandles)) {
- for ($i = count($this->handles) - 1; $i > 0 && $diff > 0; $i--) {
- if (!count($this->handles[$i])) {
- unset($this->handles[$i]);
- $diff--;
- }
- }
- $this->handles = array_values($this->handles);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlVersion.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlVersion.php
deleted file mode 100644
index c3f99dd25dd..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/CurlVersion.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Curl;
-
-/**
- * Class used for querying curl_version data
- */
-class CurlVersion
-{
- /** @var array curl_version() information */
- protected $version;
-
- /** @var CurlVersion */
- protected static $instance;
-
- /** @var string Default user agent */
- protected $userAgent;
-
- /**
- * @return CurlVersion
- */
- public static function getInstance()
- {
- if (!self::$instance) {
- self::$instance = new self();
- }
-
- return self::$instance;
- }
-
- /**
- * Get all of the curl_version() data
- *
- * @return array
- */
- public function getAll()
- {
- if (!$this->version) {
- $this->version = curl_version();
- }
-
- return $this->version;
- }
-
- /**
- * Get a specific type of curl information
- *
- * @param string $type Version information to retrieve. This value is one of:
- * - version_number: cURL 24 bit version number
- * - version: cURL version number, as a string
- * - ssl_version_number: OpenSSL 24 bit version number
- * - ssl_version: OpenSSL version number, as a string
- * - libz_version: zlib version number, as a string
- * - host: Information about the host where cURL was built
- * - features: A bitmask of the CURL_VERSION_XXX constants
- * - protocols: An array of protocols names supported by cURL
- *
- * @return string|float|bool if the $type is found, and false if not found
- */
- public function get($type)
- {
- $version = $this->getAll();
-
- return isset($version[$type]) ? $version[$type] : false;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/RequestMediator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/RequestMediator.php
deleted file mode 100644
index 5d1a0cd8724..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Curl/RequestMediator.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Curl;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\EntityBody;
-use Guzzle\Http\Message\Response;
-
-/**
- * Mediator between curl handles and request objects
- */
-class RequestMediator
-{
- /** @var RequestInterface */
- protected $request;
-
- /** @var bool Whether or not to emit read/write events */
- protected $emitIo;
-
- /**
- * @param RequestInterface $request Request to mediate
- * @param bool $emitIo Set to true to dispatch events on input and output
- */
- public function __construct(RequestInterface $request, $emitIo = false)
- {
- $this->request = $request;
- $this->emitIo = $emitIo;
- }
-
- /**
- * Receive a response header from curl
- *
- * @param resource $curl Curl handle
- * @param string $header Received header
- *
- * @return int
- */
- public function receiveResponseHeader($curl, $header)
- {
- static $normalize = array("\r", "\n");
- $length = strlen($header);
- $header = str_replace($normalize, '', $header);
-
- if (strpos($header, 'HTTP/') === 0) {
-
- $startLine = explode(' ', $header, 3);
- $code = $startLine[1];
- $status = isset($startLine[2]) ? $startLine[2] : '';
-
- // Only download the body of the response to the specified response
- // body when a successful response is received.
- if ($code >= 200 && $code < 300) {
- $body = $this->request->getResponseBody();
- } else {
- $body = EntityBody::factory();
- }
-
- $response = new Response($code, null, $body);
- $response->setStatus($code, $status);
- $this->request->startResponse($response);
-
- $this->request->dispatch('request.receive.status_line', array(
- 'request' => $this,
- 'line' => $header,
- 'status_code' => $code,
- 'reason_phrase' => $status
- ));
-
- } elseif ($pos = strpos($header, ':')) {
- $this->request->getResponse()->addHeader(
- trim(substr($header, 0, $pos)),
- trim(substr($header, $pos + 1))
- );
- }
-
- return $length;
- }
-
- /**
- * Received a progress notification
- *
- * @param int $downloadSize Total download size
- * @param int $downloaded Amount of bytes downloaded
- * @param int $uploadSize Total upload size
- * @param int $uploaded Amount of bytes uploaded
- * @param resource $handle CurlHandle object
- */
- public function progress($downloadSize, $downloaded, $uploadSize, $uploaded, $handle = null)
- {
- $this->request->dispatch('curl.callback.progress', array(
- 'request' => $this->request,
- 'handle' => $handle,
- 'download_size' => $downloadSize,
- 'downloaded' => $downloaded,
- 'upload_size' => $uploadSize,
- 'uploaded' => $uploaded
- ));
- }
-
- /**
- * Write data to the response body of a request
- *
- * @param resource $curl Curl handle
- * @param string $write Data that was received
- *
- * @return int
- */
- public function writeResponseBody($curl, $write)
- {
- if ($this->emitIo) {
- $this->request->dispatch('curl.callback.write', array(
- 'request' => $this->request,
- 'write' => $write
- ));
- }
-
- if ($response = $this->request->getResponse()) {
- return $response->getBody()->write($write);
- } else {
- // Unexpected data received before response headers - abort transfer
- return 0;
- }
- }
-
- /**
- * Read data from the request body and send it to curl
- *
- * @param resource $ch Curl handle
- * @param resource $fd File descriptor
- * @param int $length Amount of data to read
- *
- * @return string
- */
- public function readRequestBody($ch, $fd, $length)
- {
- if (!($body = $this->request->getBody())) {
- return '';
- }
-
- $read = (string) $body->read($length);
- if ($this->emitIo) {
- $this->request->dispatch('curl.callback.read', array('request' => $this->request, 'read' => $read));
- }
-
- return $read;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBody.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBody.php
deleted file mode 100644
index b60d170f02a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBody.php
+++ /dev/null
@@ -1,201 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\Version;
-use Guzzle\Stream\Stream;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Mimetypes;
-
-/**
- * Entity body used with an HTTP request or response
- */
-class EntityBody extends Stream implements EntityBodyInterface
-{
- /** @var bool Content-Encoding of the entity body if known */
- protected $contentEncoding = false;
-
- /** @var callable Method to invoke for rewinding a stream */
- protected $rewindFunction;
-
- /**
- * Create a new EntityBody based on the input type
- *
- * @param resource|string|EntityBody $resource Entity body data
- * @param int $size Size of the data contained in the resource
- *
- * @return EntityBody
- * @throws InvalidArgumentException if the $resource arg is not a resource or string
- */
- public static function factory($resource = '', $size = null)
- {
- if ($resource instanceof EntityBodyInterface) {
- return $resource;
- }
-
- switch (gettype($resource)) {
- case 'string':
- return self::fromString($resource);
- case 'resource':
- return new static($resource, $size);
- case 'object':
- if (method_exists($resource, '__toString')) {
- return self::fromString((string) $resource);
- }
- break;
- case 'array':
- return self::fromString(http_build_query($resource));
- }
-
- throw new InvalidArgumentException('Invalid resource type');
- }
-
- public function setRewindFunction($callable)
- {
- if (!is_callable($callable)) {
- throw new InvalidArgumentException('Must specify a callable');
- }
-
- $this->rewindFunction = $callable;
-
- return $this;
- }
-
- public function rewind()
- {
- return $this->rewindFunction ? call_user_func($this->rewindFunction, $this) : parent::rewind();
- }
-
- /**
- * Create a new EntityBody from a string
- *
- * @param string $string String of data
- *
- * @return EntityBody
- */
- public static function fromString($string)
- {
- $stream = fopen('php://temp', 'r+');
- if ($string !== '') {
- fwrite($stream, $string);
- rewind($stream);
- }
-
- return new static($stream);
- }
-
- public function compress($filter = 'zlib.deflate')
- {
- $result = $this->handleCompression($filter);
- $this->contentEncoding = $result ? $filter : false;
-
- return $result;
- }
-
- public function uncompress($filter = 'zlib.inflate')
- {
- $offsetStart = 0;
-
- // When inflating gzipped data, the first 10 bytes must be stripped
- // if a gzip header is present
- if ($filter == 'zlib.inflate') {
- // @codeCoverageIgnoreStart
- if (!$this->isReadable() || ($this->isConsumed() && !$this->isSeekable())) {
- return false;
- }
- // @codeCoverageIgnoreEnd
- if (stream_get_contents($this->stream, 3, 0) === "\x1f\x8b\x08") {
- $offsetStart = 10;
- }
- }
-
- $this->contentEncoding = false;
-
- return $this->handleCompression($filter, $offsetStart);
- }
-
- public function getContentLength()
- {
- return $this->getSize();
- }
-
- public function getContentType()
- {
- return $this->getUri() ? Mimetypes::getInstance()->fromFilename($this->getUri()) : null;
- }
-
- public function getContentMd5($rawOutput = false, $base64Encode = false)
- {
- if ($hash = self::getHash($this, 'md5', $rawOutput)) {
- return $hash && $base64Encode ? base64_encode($hash) : $hash;
- } else {
- return false;
- }
- }
-
- /**
- * Calculate the MD5 hash of an entity body
- *
- * @param EntityBodyInterface $body Entity body to calculate the hash for
- * @param bool $rawOutput Whether or not to use raw output
- * @param bool $base64Encode Whether or not to base64 encode raw output (only if raw output is true)
- *
- * @return bool|string Returns an MD5 string on success or FALSE on failure
- * @deprecated This will be deprecated soon
- * @codeCoverageIgnore
- */
- public static function calculateMd5(EntityBodyInterface $body, $rawOutput = false, $base64Encode = false)
- {
- Version::warn(__CLASS__ . ' is deprecated. Use getContentMd5()');
- return $body->getContentMd5($rawOutput, $base64Encode);
- }
-
- public function setStreamFilterContentEncoding($streamFilterContentEncoding)
- {
- $this->contentEncoding = $streamFilterContentEncoding;
-
- return $this;
- }
-
- public function getContentEncoding()
- {
- return strtr($this->contentEncoding, array(
- 'zlib.deflate' => 'gzip',
- 'bzip2.compress' => 'compress'
- )) ?: false;
- }
-
- protected function handleCompression($filter, $offsetStart = 0)
- {
- // @codeCoverageIgnoreStart
- if (!$this->isReadable() || ($this->isConsumed() && !$this->isSeekable())) {
- return false;
- }
- // @codeCoverageIgnoreEnd
-
- $handle = fopen('php://temp', 'r+');
- $filter = @stream_filter_append($handle, $filter, STREAM_FILTER_WRITE);
- if (!$filter) {
- return false;
- }
-
- // Seek to the offset start if possible
- $this->seek($offsetStart);
- while ($data = fread($this->stream, 8096)) {
- fwrite($handle, $data);
- }
-
- fclose($this->stream);
- $this->stream = $handle;
- stream_filter_remove($filter);
- $stat = fstat($this->stream);
- $this->size = $stat['size'];
- $this->rebuildCache();
- $this->seek(0);
-
- // Remove any existing rewind function as the underlying stream has been replaced
- $this->rewindFunction = null;
-
- return true;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBodyInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBodyInterface.php
deleted file mode 100644
index e640f578501..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/EntityBodyInterface.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Stream\StreamInterface;
-
-/**
- * Entity body used with an HTTP request or response
- */
-interface EntityBodyInterface extends StreamInterface
-{
- /**
- * Specify a custom callback used to rewind a non-seekable stream. This can be useful entity enclosing requests
- * that are redirected.
- *
- * @param mixed $callable Callable to invoke to rewind a non-seekable stream. The callback must accept an
- * EntityBodyInterface object, perform the rewind if possible, and return a boolean
- * representing whether or not the rewind was successful.
- * @return self
- */
- public function setRewindFunction($callable);
-
- /**
- * If the stream is readable, compress the data in the stream using deflate compression. The uncompressed stream is
- * then closed, and the compressed stream then becomes the wrapped stream.
- *
- * @param string $filter Compression filter
- *
- * @return bool Returns TRUE on success or FALSE on failure
- */
- public function compress($filter = 'zlib.deflate');
-
- /**
- * Decompress a deflated string. Once uncompressed, the uncompressed string is then used as the wrapped stream.
- *
- * @param string $filter De-compression filter
- *
- * @return bool Returns TRUE on success or FALSE on failure
- */
- public function uncompress($filter = 'zlib.inflate');
-
- /**
- * Get the Content-Length of the entity body if possible (alias of getSize)
- *
- * @return int|bool Returns the Content-Length or false on failure
- */
- public function getContentLength();
-
- /**
- * Guess the Content-Type of a local stream
- *
- * @return string|null
- * @see http://www.php.net/manual/en/function.finfo-open.php
- */
- public function getContentType();
-
- /**
- * Get an MD5 checksum of the stream's contents
- *
- * @param bool $rawOutput Whether or not to use raw output
- * @param bool $base64Encode Whether or not to base64 encode raw output (only if raw output is true)
- *
- * @return bool|string Returns an MD5 string on success or FALSE on failure
- */
- public function getContentMd5($rawOutput = false, $base64Encode = false);
-
- /**
- * Get the Content-Encoding of the EntityBody
- *
- * @return bool|string
- */
- public function getContentEncoding();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/BadResponseException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/BadResponseException.php
deleted file mode 100644
index 0ed0b47c254..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/BadResponseException.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Http request exception thrown when a bad response is received
- */
-class BadResponseException extends RequestException
-{
- /** @var Response */
- private $response;
-
- /**
- * Factory method to create a new response exception based on the response code.
- *
- * @param RequestInterface $request Request
- * @param Response $response Response received
- *
- * @return BadResponseException
- */
- public static function factory(RequestInterface $request, Response $response)
- {
- if ($response->isClientError()) {
- $label = 'Client error response';
- $class = __NAMESPACE__ . '\\ClientErrorResponseException';
- } elseif ($response->isServerError()) {
- $label = 'Server error response';
- $class = __NAMESPACE__ . '\\ServerErrorResponseException';
- } else {
- $label = 'Unsuccessful response';
- $class = __CLASS__;
- }
-
- $message = $label . PHP_EOL . implode(PHP_EOL, array(
- '[status code] ' . $response->getStatusCode(),
- '[reason phrase] ' . $response->getReasonPhrase(),
- '[url] ' . $request->getUrl(),
- ));
-
- $e = new $class($message);
- $e->setResponse($response);
- $e->setRequest($request);
-
- return $e;
- }
-
- /**
- * Set the response that caused the exception
- *
- * @param Response $response Response to set
- */
- public function setResponse(Response $response)
- {
- $this->response = $response;
- }
-
- /**
- * Get the response that caused the exception
- *
- * @return Response
- */
- public function getResponse()
- {
- return $this->response;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ClientErrorResponseException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ClientErrorResponseException.php
deleted file mode 100644
index 04d7ddc05ef..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ClientErrorResponseException.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-/**
- * Exception when a client error is encountered (4xx codes)
- */
-class ClientErrorResponseException extends BadResponseException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CouldNotRewindStreamException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CouldNotRewindStreamException.php
deleted file mode 100644
index 63e4ec74dec..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CouldNotRewindStreamException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-class CouldNotRewindStreamException extends RuntimeException implements HttpException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CurlException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CurlException.php
deleted file mode 100644
index a6a744a74bb..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/CurlException.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-use Guzzle\Http\Curl\CurlHandle;
-
-/**
- * cURL request exception
- */
-class CurlException extends RequestException
-{
- private $curlError;
- private $curlErrorNo;
- private $handle;
- private $curlInfo = array();
-
- /**
- * Set the cURL error message
- *
- * @param string $error Curl error
- * @param int $number Curl error number
- *
- * @return self
- */
- public function setError($error, $number)
- {
- $this->curlError = $error;
- $this->curlErrorNo = $number;
-
- return $this;
- }
-
- /**
- * Set the associated curl handle
- *
- * @param CurlHandle $handle Curl handle
- *
- * @return self
- */
- public function setCurlHandle(CurlHandle $handle)
- {
- $this->handle = $handle;
-
- return $this;
- }
-
- /**
- * Get the associated cURL handle
- *
- * @return CurlHandle|null
- */
- public function getCurlHandle()
- {
- return $this->handle;
- }
-
- /**
- * Get the associated cURL error message
- *
- * @return string|null
- */
- public function getError()
- {
- return $this->curlError;
- }
-
- /**
- * Get the associated cURL error number
- *
- * @return int|null
- */
- public function getErrorNo()
- {
- return $this->curlErrorNo;
- }
-
- /**
- * Returns curl information about the transfer
- *
- * @return array
- */
- public function getCurlInfo()
- {
- return $this->curlInfo;
- }
-
- /**
- * Set curl transfer information
- *
- * @param array $info Array of curl transfer information
- *
- * @return self
- * @link http://php.net/manual/en/function.curl-getinfo.php
- */
- public function setCurlInfo(array $info)
- {
- $this->curlInfo = $info;
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/HttpException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/HttpException.php
deleted file mode 100644
index ee87295d36e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/HttpException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-use Guzzle\Common\Exception\GuzzleException;
-
-/**
- * Http exception interface
- */
-interface HttpException extends GuzzleException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/MultiTransferException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/MultiTransferException.php
deleted file mode 100644
index 91e384daee4..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/MultiTransferException.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-use Guzzle\Common\Exception\ExceptionCollection;
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * Exception encountered during a multi transfer
- */
-class MultiTransferException extends ExceptionCollection
-{
- protected $successfulRequests = array();
- protected $failedRequests = array();
- protected $exceptionForRequest = array();
-
- /**
- * Get all of the requests in the transfer
- *
- * @return array
- */
- public function getAllRequests()
- {
- return array_merge($this->successfulRequests, $this->failedRequests);
- }
-
- /**
- * Add to the array of successful requests
- *
- * @param RequestInterface $request Successful request
- *
- * @return self
- */
- public function addSuccessfulRequest(RequestInterface $request)
- {
- $this->successfulRequests[] = $request;
-
- return $this;
- }
-
- /**
- * Add to the array of failed requests
- *
- * @param RequestInterface $request Failed request
- *
- * @return self
- */
- public function addFailedRequest(RequestInterface $request)
- {
- $this->failedRequests[] = $request;
-
- return $this;
- }
-
- /**
- * Add to the array of failed requests and associate with exceptions
- *
- * @param RequestInterface $request Failed request
- * @param \Exception $exception Exception to add and associate with
- *
- * @return self
- */
- public function addFailedRequestWithException(RequestInterface $request, \Exception $exception)
- {
- $this->add($exception)
- ->addFailedRequest($request)
- ->exceptionForRequest[spl_object_hash($request)] = $exception;
-
- return $this;
- }
-
- /**
- * Get the Exception that caused the given $request to fail
- *
- * @param RequestInterface $request Failed command
- *
- * @return \Exception|null
- */
- public function getExceptionForFailedRequest(RequestInterface $request)
- {
- $oid = spl_object_hash($request);
-
- return isset($this->exceptionForRequest[$oid]) ? $this->exceptionForRequest[$oid] : null;
- }
-
- /**
- * Set all of the successful requests
- *
- * @param array Array of requests
- *
- * @return self
- */
- public function setSuccessfulRequests(array $requests)
- {
- $this->successfulRequests = $requests;
-
- return $this;
- }
-
- /**
- * Set all of the failed requests
- *
- * @param array Array of requests
- *
- * @return self
- */
- public function setFailedRequests(array $requests)
- {
- $this->failedRequests = $requests;
-
- return $this;
- }
-
- /**
- * Get an array of successful requests sent in the multi transfer
- *
- * @return array
- */
- public function getSuccessfulRequests()
- {
- return $this->successfulRequests;
- }
-
- /**
- * Get an array of failed requests sent in the multi transfer
- *
- * @return array
- */
- public function getFailedRequests()
- {
- return $this->failedRequests;
- }
-
- /**
- * Check if the exception object contains a request
- *
- * @param RequestInterface $request Request to check
- *
- * @return bool
- */
- public function containsRequest(RequestInterface $request)
- {
- return in_array($request, $this->failedRequests, true) || in_array($request, $this->successfulRequests, true);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/RequestException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/RequestException.php
deleted file mode 100644
index 274df2cb167..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/RequestException.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * Http request exception
- */
-class RequestException extends RuntimeException implements HttpException
-{
- /** @var RequestInterface */
- protected $request;
-
- /**
- * Set the request that caused the exception
- *
- * @param RequestInterface $request Request to set
- *
- * @return RequestException
- */
- public function setRequest(RequestInterface $request)
- {
- $this->request = $request;
-
- return $this;
- }
-
- /**
- * Get the request that caused the exception
- *
- * @return RequestInterface
- */
- public function getRequest()
- {
- return $this->request;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ServerErrorResponseException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ServerErrorResponseException.php
deleted file mode 100644
index f0f7cfe4810..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/ServerErrorResponseException.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-/**
- * Exception when a server error is encountered (5xx codes)
- */
-class ServerErrorResponseException extends BadResponseException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/TooManyRedirectsException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/TooManyRedirectsException.php
deleted file mode 100644
index 2aa43d11d4f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Exception/TooManyRedirectsException.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Exception;
-
-class TooManyRedirectsException extends BadResponseException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/IoEmittingEntityBody.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/IoEmittingEntityBody.php
deleted file mode 100644
index 4cc17a835ae..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/IoEmittingEntityBody.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\Event;
-use Guzzle\Common\HasDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-/**
- * EntityBody decorator that emits events for read and write methods
- */
-class IoEmittingEntityBody extends AbstractEntityBodyDecorator implements HasDispatcherInterface
-{
- /** @var EventDispatcherInterface */
- protected $eventDispatcher;
-
- public static function getAllEvents()
- {
- return array('body.read', 'body.write');
- }
-
- /**
- * {@inheritdoc}
- * @codeCoverageIgnore
- */
- public function setEventDispatcher(EventDispatcherInterface $eventDispatcher)
- {
- $this->eventDispatcher = $eventDispatcher;
-
- return $this;
- }
-
- public function getEventDispatcher()
- {
- if (!$this->eventDispatcher) {
- $this->eventDispatcher = new EventDispatcher();
- }
-
- return $this->eventDispatcher;
- }
-
- public function dispatch($eventName, array $context = array())
- {
- return $this->getEventDispatcher()->dispatch($eventName, new Event($context));
- }
-
- /**
- * {@inheritdoc}
- * @codeCoverageIgnore
- */
- public function addSubscriber(EventSubscriberInterface $subscriber)
- {
- $this->getEventDispatcher()->addSubscriber($subscriber);
-
- return $this;
- }
-
- public function read($length)
- {
- $event = array(
- 'body' => $this,
- 'length' => $length,
- 'read' => $this->body->read($length)
- );
- $this->dispatch('body.read', $event);
-
- return $event['read'];
- }
-
- public function write($string)
- {
- $event = array(
- 'body' => $this,
- 'write' => $string,
- 'result' => $this->body->write($string)
- );
- $this->dispatch('body.write', $event);
-
- return $event['result'];
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/AbstractMessage.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/AbstractMessage.php
deleted file mode 100644
index 0d066ffceb0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/AbstractMessage.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Version;
-use Guzzle\Common\Collection;
-use Guzzle\Http\Message\Header\HeaderCollection;
-use Guzzle\Http\Message\Header\HeaderFactory;
-use Guzzle\Http\Message\Header\HeaderFactoryInterface;
-use Guzzle\Http\Message\Header\HeaderInterface;
-
-/**
- * Abstract HTTP request/response message
- */
-abstract class AbstractMessage implements MessageInterface
-{
- /** @var array HTTP header collection */
- protected $headers;
-
- /** @var HeaderFactoryInterface $headerFactory */
- protected $headerFactory;
-
- /** @var Collection Custom message parameters that are extendable by plugins */
- protected $params;
-
- /** @var string Message protocol */
- protected $protocol = 'HTTP';
-
- /** @var string HTTP protocol version of the message */
- protected $protocolVersion = '1.1';
-
- public function __construct()
- {
- $this->params = new Collection();
- $this->headerFactory = new HeaderFactory();
- $this->headers = new HeaderCollection();
- }
-
- /**
- * Set the header factory to use to create headers
- *
- * @param HeaderFactoryInterface $factory
- *
- * @return self
- */
- public function setHeaderFactory(HeaderFactoryInterface $factory)
- {
- $this->headerFactory = $factory;
-
- return $this;
- }
-
- public function getParams()
- {
- return $this->params;
- }
-
- public function addHeader($header, $value)
- {
- if (isset($this->headers[$header])) {
- $this->headers[$header]->add($value);
- } elseif ($value instanceof HeaderInterface) {
- $this->headers[$header] = $value;
- } else {
- $this->headers[$header] = $this->headerFactory->createHeader($header, $value);
- }
-
- return $this;
- }
-
- public function addHeaders(array $headers)
- {
- foreach ($headers as $key => $value) {
- $this->addHeader($key, $value);
- }
-
- return $this;
- }
-
- public function getHeader($header)
- {
- return $this->headers[$header];
- }
-
- public function getHeaders()
- {
- return $this->headers;
- }
-
- public function getHeaderLines()
- {
- $headers = array();
- foreach ($this->headers as $value) {
- $headers[] = $value->getName() . ': ' . $value;
- }
-
- return $headers;
- }
-
- public function setHeader($header, $value)
- {
- unset($this->headers[$header]);
- $this->addHeader($header, $value);
-
- return $this;
- }
-
- public function setHeaders(array $headers)
- {
- $this->headers->clear();
- foreach ($headers as $key => $value) {
- $this->addHeader($key, $value);
- }
-
- return $this;
- }
-
- public function hasHeader($header)
- {
- return isset($this->headers[$header]);
- }
-
- public function removeHeader($header)
- {
- unset($this->headers[$header]);
-
- return $this;
- }
-
- /**
- * @deprecated Use $message->getHeader()->parseParams()
- * @codeCoverageIgnore
- */
- public function getTokenizedHeader($header, $token = ';')
- {
- Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader()->parseParams()');
- if ($this->hasHeader($header)) {
- $data = new Collection();
- foreach ($this->getHeader($header)->parseParams() as $values) {
- foreach ($values as $key => $value) {
- if ($value === '') {
- $data->set($data->count(), $key);
- } else {
- $data->add($key, $value);
- }
- }
- }
- return $data;
- }
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function setTokenizedHeader($header, $data, $token = ';')
- {
- Version::warn(__METHOD__ . ' is deprecated.');
- return $this;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function getCacheControlDirective($directive)
- {
- Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->getDirective()');
- if (!($header = $this->getHeader('Cache-Control'))) {
- return null;
- }
-
- return $header->getDirective($directive);
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function hasCacheControlDirective($directive)
- {
- Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->hasDirective()');
- if ($header = $this->getHeader('Cache-Control')) {
- return $header->hasDirective($directive);
- } else {
- return false;
- }
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function addCacheControlDirective($directive, $value = true)
- {
- Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->addDirective()');
- if (!($header = $this->getHeader('Cache-Control'))) {
- $this->addHeader('Cache-Control', '');
- $header = $this->getHeader('Cache-Control');
- }
-
- $header->addDirective($directive, $value);
-
- return $this;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function removeCacheControlDirective($directive)
- {
- Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->removeDirective()');
- if ($header = $this->getHeader('Cache-Control')) {
- $header->removeDirective($directive);
- }
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequest.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequest.php
deleted file mode 100644
index 212850a254a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequest.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Http\EntityBody;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Http\QueryString;
-use Guzzle\Http\RedirectPlugin;
-use Guzzle\Http\Exception\RequestException;
-
-/**
- * HTTP request that sends an entity-body in the request message (POST, PUT, PATCH, DELETE)
- */
-class EntityEnclosingRequest extends Request implements EntityEnclosingRequestInterface
-{
- /** @var int When the size of the body is greater than 1MB, then send Expect: 100-Continue */
- protected $expectCutoff = 1048576;
-
- /** @var EntityBodyInterface $body Body of the request */
- protected $body;
-
- /** @var QueryString POST fields to use in the EntityBody */
- protected $postFields;
-
- /** @var array POST files to send with the request */
- protected $postFiles = array();
-
- public function __construct($method, $url, $headers = array())
- {
- $this->postFields = new QueryString();
- parent::__construct($method, $url, $headers);
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- // Only attempt to include the POST data if it's only fields
- if (count($this->postFields) && empty($this->postFiles)) {
- return parent::__toString() . (string) $this->postFields;
- }
-
- return parent::__toString() . $this->body;
- }
-
- public function setState($state, array $context = array())
- {
- parent::setState($state, $context);
- if ($state == self::STATE_TRANSFER && !$this->body && !count($this->postFields) && !count($this->postFiles)) {
- $this->setHeader('Content-Length', 0)->removeHeader('Transfer-Encoding');
- }
-
- return $this->state;
- }
-
- public function setBody($body, $contentType = null)
- {
- $this->body = EntityBody::factory($body);
-
- // Auto detect the Content-Type from the path of the request if possible
- if ($contentType === null && !$this->hasHeader('Content-Type')) {
- $contentType = $this->body->getContentType();
- }
-
- if ($contentType) {
- $this->setHeader('Content-Type', $contentType);
- }
-
- // Always add the Expect 100-Continue header if the body cannot be rewound. This helps with redirects.
- if (!$this->body->isSeekable() && $this->expectCutoff !== false) {
- $this->setHeader('Expect', '100-Continue');
- }
-
- // Set the Content-Length header if it can be determined
- $size = $this->body->getContentLength();
- if ($size !== null && $size !== false) {
- $this->setHeader('Content-Length', $size);
- if ($size > $this->expectCutoff) {
- $this->setHeader('Expect', '100-Continue');
- }
- } elseif (!$this->hasHeader('Content-Length')) {
- if ('1.1' == $this->protocolVersion) {
- $this->setHeader('Transfer-Encoding', 'chunked');
- } else {
- throw new RequestException(
- 'Cannot determine Content-Length and cannot use chunked Transfer-Encoding when using HTTP/1.0'
- );
- }
- }
-
- return $this;
- }
-
- public function getBody()
- {
- return $this->body;
- }
-
- /**
- * Set the size that the entity body of the request must exceed before adding the Expect: 100-Continue header.
- *
- * @param int|bool $size Cutoff in bytes. Set to false to never send the expect header (even with non-seekable data)
- *
- * @return self
- */
- public function setExpectHeaderCutoff($size)
- {
- $this->expectCutoff = $size;
- if ($size === false || !$this->body) {
- $this->removeHeader('Expect');
- } elseif ($this->body && $this->body->getSize() && $this->body->getSize() > $size) {
- $this->setHeader('Expect', '100-Continue');
- }
-
- return $this;
- }
-
- public function configureRedirects($strict = false, $maxRedirects = 5)
- {
- $this->getParams()->set(RedirectPlugin::STRICT_REDIRECTS, $strict);
- if ($maxRedirects == 0) {
- $this->getParams()->set(RedirectPlugin::DISABLE, true);
- } else {
- $this->getParams()->set(RedirectPlugin::MAX_REDIRECTS, $maxRedirects);
- }
-
- return $this;
- }
-
- public function getPostField($field)
- {
- return $this->postFields->get($field);
- }
-
- public function getPostFields()
- {
- return $this->postFields;
- }
-
- public function setPostField($key, $value)
- {
- $this->postFields->set($key, $value);
- $this->processPostFields();
-
- return $this;
- }
-
- public function addPostFields($fields)
- {
- $this->postFields->merge($fields);
- $this->processPostFields();
-
- return $this;
- }
-
- public function removePostField($field)
- {
- $this->postFields->remove($field);
- $this->processPostFields();
-
- return $this;
- }
-
- public function getPostFiles()
- {
- return $this->postFiles;
- }
-
- public function getPostFile($fieldName)
- {
- return isset($this->postFiles[$fieldName]) ? $this->postFiles[$fieldName] : null;
- }
-
- public function removePostFile($fieldName)
- {
- unset($this->postFiles[$fieldName]);
- $this->processPostFields();
-
- return $this;
- }
-
- public function addPostFile($field, $filename = null, $contentType = null, $postname = null)
- {
- $data = null;
-
- if ($field instanceof PostFileInterface) {
- $data = $field;
- } elseif (is_array($filename)) {
- // Allow multiple values to be set in a single key
- foreach ($filename as $file) {
- $this->addPostFile($field, $file, $contentType);
- }
- return $this;
- } elseif (!is_string($filename)) {
- throw new RequestException('The path to a file must be a string');
- } elseif (!empty($filename)) {
- // Adding an empty file will cause cURL to error out
- $data = new PostFile($field, $filename, $contentType, $postname);
- }
-
- if ($data) {
- if (!isset($this->postFiles[$data->getFieldName()])) {
- $this->postFiles[$data->getFieldName()] = array($data);
- } else {
- $this->postFiles[$data->getFieldName()][] = $data;
- }
- $this->processPostFields();
- }
-
- return $this;
- }
-
- public function addPostFiles(array $files)
- {
- foreach ($files as $key => $file) {
- if ($file instanceof PostFileInterface) {
- $this->addPostFile($file, null, null, false);
- } elseif (is_string($file)) {
- // Convert non-associative array keys into 'file'
- if (is_numeric($key)) {
- $key = 'file';
- }
- $this->addPostFile($key, $file, null, false);
- } else {
- throw new RequestException('File must be a string or instance of PostFileInterface');
- }
- }
-
- return $this;
- }
-
- /**
- * Determine what type of request should be sent based on post fields
- */
- protected function processPostFields()
- {
- if (!$this->postFiles) {
- $this->removeHeader('Expect')->setHeader('Content-Type', self::URL_ENCODED);
- } else {
- $this->setHeader('Content-Type', self::MULTIPART);
- if ($this->expectCutoff !== false) {
- $this->setHeader('Expect', '100-Continue');
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequestInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequestInterface.php
deleted file mode 100644
index 49ad4595d6f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/EntityEnclosingRequestInterface.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Http\Exception\RequestException;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Http\QueryString;
-
-/**
- * HTTP request that sends an entity-body in the request message (POST, PUT)
- */
-interface EntityEnclosingRequestInterface extends RequestInterface
-{
- const URL_ENCODED = 'application/x-www-form-urlencoded; charset=utf-8';
- const MULTIPART = 'multipart/form-data';
-
- /**
- * Set the body of the request
- *
- * @param string|resource|EntityBodyInterface $body Body to use in the entity body of the request
- * @param string $contentType Content-Type to set. Leave null to use an existing
- * Content-Type or to guess the Content-Type
- * @return self
- * @throws RequestException if the protocol is < 1.1 and Content-Length can not be determined
- */
- public function setBody($body, $contentType = null);
-
- /**
- * Get the body of the request if set
- *
- * @return EntityBodyInterface|null
- */
- public function getBody();
-
- /**
- * Get a POST field from the request
- *
- * @param string $field Field to retrieve
- *
- * @return mixed|null
- */
- public function getPostField($field);
-
- /**
- * Get the post fields that will be used in the request
- *
- * @return QueryString
- */
- public function getPostFields();
-
- /**
- * Set a POST field value
- *
- * @param string $key Key to set
- * @param string $value Value to set
- *
- * @return self
- */
- public function setPostField($key, $value);
-
- /**
- * Add POST fields to use in the request
- *
- * @param QueryString|array $fields POST fields
- *
- * @return self
- */
- public function addPostFields($fields);
-
- /**
- * Remove a POST field or file by name
- *
- * @param string $field Name of the POST field or file to remove
- *
- * @return self
- */
- public function removePostField($field);
-
- /**
- * Returns an associative array of POST field names to PostFileInterface objects
- *
- * @return array
- */
- public function getPostFiles();
-
- /**
- * Get a POST file from the request
- *
- * @param string $fieldName POST fields to retrieve
- *
- * @return array|null Returns an array wrapping an array of PostFileInterface objects
- */
- public function getPostFile($fieldName);
-
- /**
- * Remove a POST file from the request
- *
- * @param string $fieldName POST file field name to remove
- *
- * @return self
- */
- public function removePostFile($fieldName);
-
- /**
- * Add a POST file to the upload
- *
- * @param string $field POST field to use (e.g. file). Used to reference content from the server.
- * @param string $filename Full path to the file. Do not include the @ symbol.
- * @param string $contentType Optional Content-Type to add to the Content-Disposition.
- * Default behavior is to guess. Set to false to not specify.
- * @param string $postname The name of the file, when posted. (e.g. rename the file)
- * @return self
- */
- public function addPostFile($field, $filename = null, $contentType = null, $postname = null);
-
- /**
- * Add POST files to use in the upload
- *
- * @param array $files An array of POST fields => filenames where filename can be a string or PostFileInterface
- *
- * @return self
- */
- public function addPostFiles(array $files);
-
- /**
- * Configure how redirects are handled for the request
- *
- * @param bool $strict Set to true to follow strict RFC compliance when redirecting POST requests. Most
- * browsers with follow a 301-302 redirect for a POST request with a GET request. This is
- * the default behavior of Guzzle. Enable strict redirects to redirect these responses
- * with a POST rather than a GET request.
- * @param int $maxRedirects Specify the maximum number of allowed redirects. Set to 0 to disable redirects.
- *
- * @return self
- */
- public function configureRedirects($strict = false, $maxRedirects = 5);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header.php
deleted file mode 100644
index 50597b2a698..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Version;
-use Guzzle\Http\Message\Header\HeaderInterface;
-
-/**
- * Represents a header and all of the values stored by that header
- */
-class Header implements HeaderInterface
-{
- protected $values = array();
- protected $header;
- protected $glue;
-
- /**
- * @param string $header Name of the header
- * @param array|string $values Values of the header as an array or a scalar
- * @param string $glue Glue used to combine multiple values into a string
- */
- public function __construct($header, $values = array(), $glue = ',')
- {
- $this->header = trim($header);
- $this->glue = $glue;
-
- foreach ((array) $values as $value) {
- foreach ((array) $value as $v) {
- $this->values[] = $v;
- }
- }
- }
-
- public function __toString()
- {
- return implode($this->glue . ' ', $this->toArray());
- }
-
- public function add($value)
- {
- $this->values[] = $value;
-
- return $this;
- }
-
- public function getName()
- {
- return $this->header;
- }
-
- public function setName($name)
- {
- $this->header = $name;
-
- return $this;
- }
-
- public function setGlue($glue)
- {
- $this->glue = $glue;
-
- return $this;
- }
-
- public function getGlue()
- {
- return $this->glue;
- }
-
- /**
- * Normalize the header to be a single header with an array of values.
- *
- * If any values of the header contains the glue string value (e.g. ","), then the value will be exploded into
- * multiple entries in the header.
- *
- * @return self
- */
- public function normalize()
- {
- $values = $this->toArray();
-
- for ($i = 0, $total = count($values); $i < $total; $i++) {
- if (strpos($values[$i], $this->glue) !== false) {
- // Explode on glue when the glue is not inside of a comma
- foreach (preg_split('/' . preg_quote($this->glue) . '(?=([^"]*"[^"]*")*[^"]*$)/', $values[$i]) as $v) {
- $values[] = trim($v);
- }
- unset($values[$i]);
- }
- }
-
- $this->values = array_values($values);
-
- return $this;
- }
-
- public function hasValue($searchValue)
- {
- return in_array($searchValue, $this->toArray());
- }
-
- public function removeValue($searchValue)
- {
- $this->values = array_values(array_filter($this->values, function ($value) use ($searchValue) {
- return $value != $searchValue;
- }));
-
- return $this;
- }
-
- public function toArray()
- {
- return $this->values;
- }
-
- public function count()
- {
- return count($this->toArray());
- }
-
- public function getIterator()
- {
- return new \ArrayIterator($this->toArray());
- }
-
- public function parseParams()
- {
- $params = $matches = array();
- $callback = array($this, 'trimHeader');
-
- // Normalize the header into a single array and iterate over all values
- foreach ($this->normalize()->toArray() as $val) {
- $part = array();
- foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) {
- if (!preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) {
- continue;
- }
- $pieces = array_map($callback, $matches[0]);
- $part[$pieces[0]] = isset($pieces[1]) ? $pieces[1] : '';
- }
- if ($part) {
- $params[] = $part;
- }
- }
-
- return $params;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function hasExactHeader($header)
- {
- Version::warn(__METHOD__ . ' is deprecated');
- return $this->header == $header;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function raw()
- {
- Version::warn(__METHOD__ . ' is deprecated. Use toArray()');
- return $this->toArray();
- }
-
- /**
- * Trim a header by removing excess spaces and wrapping quotes
- *
- * @param $str
- *
- * @return string
- */
- protected function trimHeader($str)
- {
- static $trimmed = "\"' \n\t";
-
- return trim($str, $trimmed);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/CacheControl.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/CacheControl.php
deleted file mode 100644
index 77789e51fd4..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/CacheControl.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message\Header;
-
-use Guzzle\Http\Message\Header;
-
-/**
- * Provides helpful functionality for Cache-Control headers
- */
-class CacheControl extends Header
-{
- /** @var array */
- protected $directives;
-
- public function add($value)
- {
- parent::add($value);
- $this->directives = null;
- }
-
- public function removeValue($searchValue)
- {
- parent::removeValue($searchValue);
- $this->directives = null;
- }
-
- /**
- * Check if a specific cache control directive exists
- *
- * @param string $param Directive to retrieve
- *
- * @return bool
- */
- public function hasDirective($param)
- {
- $directives = $this->getDirectives();
-
- return isset($directives[$param]);
- }
-
- /**
- * Get a specific cache control directive
- *
- * @param string $param Directive to retrieve
- *
- * @return string|bool|null
- */
- public function getDirective($param)
- {
- $directives = $this->getDirectives();
-
- return isset($directives[$param]) ? $directives[$param] : null;
- }
-
- /**
- * Add a cache control directive
- *
- * @param string $param Directive to add
- * @param string $value Value to set
- *
- * @return self
- */
- public function addDirective($param, $value)
- {
- $directives = $this->getDirectives();
- $directives[$param] = $value;
- $this->updateFromDirectives($directives);
-
- return $this;
- }
-
- /**
- * Remove a cache control directive by name
- *
- * @param string $param Directive to remove
- *
- * @return self
- */
- public function removeDirective($param)
- {
- $directives = $this->getDirectives();
- unset($directives[$param]);
- $this->updateFromDirectives($directives);
-
- return $this;
- }
-
- /**
- * Get an associative array of cache control directives
- *
- * @return array
- */
- public function getDirectives()
- {
- if ($this->directives === null) {
- $this->directives = array();
- foreach ($this->parseParams() as $collection) {
- foreach ($collection as $key => $value) {
- $this->directives[$key] = $value === '' ? true : $value;
- }
- }
- }
-
- return $this->directives;
- }
-
- /**
- * Updates the header value based on the parsed directives
- *
- * @param array $directives Array of cache control directives
- */
- protected function updateFromDirectives(array $directives)
- {
- $this->directives = $directives;
- $this->values = array();
-
- foreach ($directives as $key => $value) {
- $this->values[] = $value === true ? $key : "{$key}={$value}";
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderCollection.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderCollection.php
deleted file mode 100644
index 8c7f6aefba0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderCollection.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message\Header;
-
-use Guzzle\Common\ToArrayInterface;
-
-/**
- * Provides a case-insensitive collection of headers
- */
-class HeaderCollection implements \IteratorAggregate, \Countable, \ArrayAccess, ToArrayInterface
-{
- /** @var array */
- protected $headers;
-
- public function __construct($headers = array())
- {
- $this->headers = $headers;
- }
-
- public function __clone()
- {
- foreach ($this->headers as &$header) {
- $header = clone $header;
- }
- }
-
- /**
- * Clears the header collection
- */
- public function clear()
- {
- $this->headers = array();
- }
-
- /**
- * Set a header on the collection
- *
- * @param HeaderInterface $header Header to add
- *
- * @return self
- */
- public function add(HeaderInterface $header)
- {
- $this->headers[strtolower($header->getName())] = $header;
-
- return $this;
- }
-
- /**
- * Get an array of header objects
- *
- * @return array
- */
- public function getAll()
- {
- return $this->headers;
- }
-
- /**
- * Alias of offsetGet
- */
- public function get($key)
- {
- return $this->offsetGet($key);
- }
-
- public function count()
- {
- return count($this->headers);
- }
-
- public function offsetExists($offset)
- {
- return isset($this->headers[strtolower($offset)]);
- }
-
- public function offsetGet($offset)
- {
- $l = strtolower($offset);
-
- return isset($this->headers[$l]) ? $this->headers[$l] : null;
- }
-
- public function offsetSet($offset, $value)
- {
- $this->add($value);
- }
-
- public function offsetUnset($offset)
- {
- unset($this->headers[strtolower($offset)]);
- }
-
- public function getIterator()
- {
- return new \ArrayIterator($this->headers);
- }
-
- public function toArray()
- {
- $result = array();
- foreach ($this->headers as $header) {
- $result[$header->getName()] = $header->toArray();
- }
-
- return $result;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactory.php
deleted file mode 100644
index 0273be52f81..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactory.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message\Header;
-
-use Guzzle\Http\Message\Header;
-
-/**
- * Default header factory implementation
- */
-class HeaderFactory implements HeaderFactoryInterface
-{
- /** @var array */
- protected $mapping = array(
- 'cache-control' => 'Guzzle\Http\Message\Header\CacheControl',
- 'link' => 'Guzzle\Http\Message\Header\Link',
- );
-
- public function createHeader($header, $value = null)
- {
- $lowercase = strtolower($header);
-
- return isset($this->mapping[$lowercase])
- ? new $this->mapping[$lowercase]($header, $value)
- : new Header($header, $value);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactoryInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactoryInterface.php
deleted file mode 100644
index 9457cf64a1c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderFactoryInterface.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message\Header;
-
-/**
- * Interface for creating headers
- */
-interface HeaderFactoryInterface
-{
- /**
- * Create a header from a header name and a single value
- *
- * @param string $header Name of the header to create
- * @param string $value Value to set on the header
- *
- * @return HeaderInterface
- */
- public function createHeader($header, $value = null);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderInterface.php
deleted file mode 100644
index adcc78e09b9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/HeaderInterface.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message\Header;
-
-use Guzzle\Common\ToArrayInterface;
-
-interface HeaderInterface extends ToArrayInterface, \Countable, \IteratorAggregate
-{
- /**
- * Convert the header to a string
- *
- * @return string
- */
- public function __toString();
-
- /**
- * Add a value to the list of header values
- *
- * @param string $value Value to add to the header
- *
- * @return self
- */
- public function add($value);
-
- /**
- * Get the name of the header
- *
- * @return string
- */
- public function getName();
-
- /**
- * Change the name of the header
- *
- * @param string $name Name to change to
- *
- * @return self
- */
- public function setName($name);
-
- /**
- * Change the glue used to implode the values
- *
- * @param string $glue Glue used to implode multiple values
- *
- * @return self
- */
- public function setGlue($glue);
-
- /**
- * Get the glue used to implode multiple values into a string
- *
- * @return string
- */
- public function getGlue();
-
- /**
- * Check if the collection of headers has a particular value
- *
- * @param string $searchValue Value to search for
- *
- * @return bool
- */
- public function hasValue($searchValue);
-
- /**
- * Remove a specific value from the header
- *
- * @param string $searchValue Value to remove
- *
- * @return self
- */
- public function removeValue($searchValue);
-
- /**
- * Parse a header containing ";" separated data into an array of associative arrays representing the header
- * key value pair data of the header. When a parameter does not contain a value, but just contains a key, this
- * function will inject a key with a '' string value.
- *
- * @return array
- */
- public function parseParams();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/Link.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/Link.php
deleted file mode 100644
index a9fb961443c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Header/Link.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message\Header;
-
-use Guzzle\Http\Message\Header;
-
-/**
- * Provides helpful functionality for link headers
- */
-class Link extends Header
-{
- /**
- * Add a link to the header
- *
- * @param string $url Link URL
- * @param string $rel Link rel
- * @param array $params Other link parameters
- *
- * @return self
- */
- public function addLink($url, $rel, array $params = array())
- {
- $values = array("<{$url}>", "rel=\"{$rel}\"");
-
- foreach ($params as $k => $v) {
- $values[] = "{$k}=\"{$v}\"";
- }
-
- return $this->add(implode('; ', $values));
- }
-
- /**
- * Check if a specific link exists for a given rel attribute
- *
- * @param string $rel rel value
- *
- * @return bool
- */
- public function hasLink($rel)
- {
- return $this->getLink($rel) !== null;
- }
-
- /**
- * Get a specific link for a given rel attribute
- *
- * @param string $rel Rel value
- *
- * @return array|null
- */
- public function getLink($rel)
- {
- foreach ($this->getLinks() as $link) {
- if (isset($link['rel']) && $link['rel'] == $rel) {
- return $link;
- }
- }
-
- return null;
- }
-
- /**
- * Get an associative array of links
- *
- * For example:
- * Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg", <http://.../back.jpeg>; rel=back; type="image/jpeg"
- *
- * <code>
- * var_export($response->getLinks());
- * array(
- * array(
- * 'url' => 'http:/.../front.jpeg',
- * 'rel' => 'back',
- * 'type' => 'image/jpeg',
- * )
- * )
- * </code>
- *
- * @return array
- */
- public function getLinks()
- {
- $links = $this->parseParams();
-
- foreach ($links as &$link) {
- $key = key($link);
- unset($link[$key]);
- $link['url'] = trim($key, '<> ');
- }
-
- return $links;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/MessageInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/MessageInterface.php
deleted file mode 100644
index 62bcd439133..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/MessageInterface.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-/**
- * Request and response message interface
- */
-interface MessageInterface
-{
- /**
- * Get application and plugin specific parameters set on the message.
- *
- * @return \Guzzle\Common\Collection
- */
- public function getParams();
-
- /**
- * Add a header to an existing collection of headers.
- *
- * @param string $header Header name to add
- * @param string $value Value of the header
- *
- * @return self
- */
- public function addHeader($header, $value);
-
- /**
- * Add and merge in an array of HTTP headers.
- *
- * @param array $headers Associative array of header data.
- *
- * @return self
- */
- public function addHeaders(array $headers);
-
- /**
- * Retrieve an HTTP header by name. Performs a case-insensitive search of all headers.
- *
- * @param string $header Header to retrieve.
- *
- * @return Header|null
- */
- public function getHeader($header);
-
- /**
- * Get all headers as a collection
- *
- * @return \Guzzle\Http\Message\Header\HeaderCollection
- */
- public function getHeaders();
-
- /**
- * Check if the specified header is present.
- *
- * @param string $header The header to check.
- *
- * @return bool
- */
- public function hasHeader($header);
-
- /**
- * Remove a specific HTTP header.
- *
- * @param string $header HTTP header to remove.
- *
- * @return self
- */
- public function removeHeader($header);
-
- /**
- * Set an HTTP header and overwrite any existing value for the header
- *
- * @param string $header Name of the header to set.
- * @param mixed $value Value to set.
- *
- * @return self
- */
- public function setHeader($header, $value);
-
- /**
- * Overwrite all HTTP headers with the supplied array of headers
- *
- * @param array $headers Associative array of header data.
- *
- * @return self
- */
- public function setHeaders(array $headers);
-
- /**
- * Get an array of message header lines (e.g. ["Host: example.com", ...])
- *
- * @return array
- */
- public function getHeaderLines();
-
- /**
- * Get the raw message headers as a string
- *
- * @return string
- */
- public function getRawHeaders();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFile.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFile.php
deleted file mode 100644
index 141e66d7ed6..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFile.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Version;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Mimetypes;
-
-/**
- * POST file upload
- */
-class PostFile implements PostFileInterface
-{
- protected $fieldName;
- protected $contentType;
- protected $filename;
- protected $postname;
-
- /**
- * @param string $fieldName Name of the field
- * @param string $filename Local path to the file
- * @param string $postname Remote post file name
- * @param string $contentType Content-Type of the upload
- */
- public function __construct($fieldName, $filename, $contentType = null, $postname = null)
- {
- $this->fieldName = $fieldName;
- $this->setFilename($filename);
- $this->postname = $postname ? $postname : basename($filename);
- $this->contentType = $contentType ?: $this->guessContentType();
- }
-
- public function setFieldName($name)
- {
- $this->fieldName = $name;
-
- return $this;
- }
-
- public function getFieldName()
- {
- return $this->fieldName;
- }
-
- public function setFilename($filename)
- {
- // Remove leading @ symbol
- if (strpos($filename, '@') === 0) {
- $filename = substr($filename, 1);
- }
-
- if (!is_readable($filename)) {
- throw new InvalidArgumentException("Unable to open {$filename} for reading");
- }
-
- $this->filename = $filename;
-
- return $this;
- }
-
- public function setPostname($postname)
- {
- $this->postname = $postname;
-
- return $this;
- }
-
- public function getFilename()
- {
- return $this->filename;
- }
-
- public function getPostname()
- {
- return $this->postname;
- }
-
- public function setContentType($type)
- {
- $this->contentType = $type;
-
- return $this;
- }
-
- public function getContentType()
- {
- return $this->contentType;
- }
-
- public function getCurlValue()
- {
- // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax
- // See: https://wiki.php.net/rfc/curl-file-upload
- if (function_exists('curl_file_create')) {
- return curl_file_create($this->filename, $this->contentType, $this->postname);
- }
-
- // Use the old style if using an older version of PHP
- $value = "@{$this->filename};filename=" . $this->postname;
- if ($this->contentType) {
- $value .= ';type=' . $this->contentType;
- }
-
- return $value;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function getCurlString()
- {
- Version::warn(__METHOD__ . ' is deprecated. Use getCurlValue()');
- return $this->getCurlValue();
- }
-
- /**
- * Determine the Content-Type of the file
- */
- protected function guessContentType()
- {
- return Mimetypes::getInstance()->fromFilename($this->filename) ?: 'application/octet-stream';
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFileInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFileInterface.php
deleted file mode 100644
index 7f0779d1e85..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/PostFileInterface.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * POST file upload
- */
-interface PostFileInterface
-{
- /**
- * Set the name of the field
- *
- * @param string $name Field name
- *
- * @return self
- */
- public function setFieldName($name);
-
- /**
- * Get the name of the field
- *
- * @return string
- */
- public function getFieldName();
-
- /**
- * Set the path to the file
- *
- * @param string $path Full path to the file
- *
- * @return self
- * @throws InvalidArgumentException if the file cannot be read
- */
- public function setFilename($path);
-
- /**
- * Set the post name of the file
- *
- * @param string $name The new name of the file
- *
- * @return self
- */
- public function setPostname($name);
-
- /**
- * Get the full path to the file
- *
- * @return string
- */
- public function getFilename();
-
- /**
- * Get the post name of the file
- *
- * @return string
- */
- public function getPostname();
-
- /**
- * Set the Content-Type of the file
- *
- * @param string $type Content type
- *
- * @return self
- */
- public function setContentType($type);
-
- /**
- * Get the Content-Type of the file
- *
- * @return string
- */
- public function getContentType();
-
- /**
- * Get a cURL ready string or CurlFile object for the upload
- *
- * @return string
- */
- public function getCurlValue();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Request.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Request.php
deleted file mode 100644
index f218cd5ce90..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Request.php
+++ /dev/null
@@ -1,638 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Version;
-use Guzzle\Common\Event;
-use Guzzle\Common\Collection;
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Exception\RequestException;
-use Guzzle\Http\Exception\BadResponseException;
-use Guzzle\Http\ClientInterface;
-use Guzzle\Http\EntityBody;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Http\Message\Header\HeaderInterface;
-use Guzzle\Http\Url;
-use Guzzle\Parser\ParserRegistry;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * HTTP request class to send requests
- */
-class Request extends AbstractMessage implements RequestInterface
-{
- /** @var EventDispatcherInterface */
- protected $eventDispatcher;
-
- /** @var Url HTTP Url */
- protected $url;
-
- /** @var string HTTP method (GET, PUT, POST, DELETE, HEAD, OPTIONS, TRACE) */
- protected $method;
-
- /** @var ClientInterface */
- protected $client;
-
- /** @var Response Response of the request */
- protected $response;
-
- /** @var EntityBodyInterface Response body */
- protected $responseBody;
-
- /** @var string State of the request object */
- protected $state;
-
- /** @var string Authentication username */
- protected $username;
-
- /** @var string Auth password */
- protected $password;
-
- /** @var Collection cURL specific transfer options */
- protected $curlOptions;
-
- /** @var bool */
- protected $isRedirect = false;
-
- public static function getAllEvents()
- {
- return array(
- // Called when receiving or uploading data through cURL
- 'curl.callback.read', 'curl.callback.write', 'curl.callback.progress',
- // Cloning a request
- 'request.clone',
- // About to send the request, sent request, completed transaction
- 'request.before_send', 'request.sent', 'request.complete',
- // A request received a successful response
- 'request.success',
- // A request received an unsuccessful response
- 'request.error',
- // An exception is being thrown because of an unsuccessful response
- 'request.exception',
- // Received response status line
- 'request.receive.status_line'
- );
- }
-
- /**
- * @param string $method HTTP method
- * @param string|Url $url HTTP URL to connect to. The URI scheme, host header, and URI are parsed from the
- * full URL. If query string parameters are present they will be parsed as well.
- * @param array|Collection $headers HTTP headers
- */
- public function __construct($method, $url, $headers = array())
- {
- parent::__construct();
- $this->method = strtoupper($method);
- $this->curlOptions = new Collection();
- $this->setUrl($url);
-
- if ($headers) {
- // Special handling for multi-value headers
- foreach ($headers as $key => $value) {
- // Deal with collisions with Host and Authorization
- if ($key == 'host' || $key == 'Host') {
- $this->setHeader($key, $value);
- } elseif ($value instanceof HeaderInterface) {
- $this->addHeader($key, $value);
- } else {
- foreach ((array) $value as $v) {
- $this->addHeader($key, $v);
- }
- }
- }
- }
-
- $this->setState(self::STATE_NEW);
- }
-
- public function __clone()
- {
- if ($this->eventDispatcher) {
- $this->eventDispatcher = clone $this->eventDispatcher;
- }
- $this->curlOptions = clone $this->curlOptions;
- $this->params = clone $this->params;
- $this->url = clone $this->url;
- $this->response = $this->responseBody = null;
- $this->headers = clone $this->headers;
-
- $this->setState(RequestInterface::STATE_NEW);
- $this->dispatch('request.clone', array('request' => $this));
- }
-
- /**
- * Get the HTTP request as a string
- *
- * @return string
- */
- public function __toString()
- {
- return $this->getRawHeaders() . "\r\n\r\n";
- }
-
- /**
- * Default method that will throw exceptions if an unsuccessful response is received.
- *
- * @param Event $event Received
- * @throws BadResponseException if the response is not successful
- */
- public static function onRequestError(Event $event)
- {
- $e = BadResponseException::factory($event['request'], $event['response']);
- $event['request']->setState(self::STATE_ERROR, array('exception' => $e) + $event->toArray());
- throw $e;
- }
-
- public function setClient(ClientInterface $client)
- {
- $this->client = $client;
-
- return $this;
- }
-
- public function getClient()
- {
- return $this->client;
- }
-
- public function getRawHeaders()
- {
- $protocolVersion = $this->protocolVersion ?: '1.1';
-
- return trim($this->method . ' ' . $this->getResource()) . ' '
- . strtoupper(str_replace('https', 'http', $this->url->getScheme()))
- . '/' . $protocolVersion . "\r\n" . implode("\r\n", $this->getHeaderLines());
- }
-
- public function setUrl($url)
- {
- if ($url instanceof Url) {
- $this->url = $url;
- } else {
- $this->url = Url::factory($url);
- }
-
- // Update the port and host header
- $this->setPort($this->url->getPort());
-
- if ($this->url->getUsername() || $this->url->getPassword()) {
- $this->setAuth($this->url->getUsername(), $this->url->getPassword());
- // Remove the auth info from the URL
- $this->url->setUsername(null);
- $this->url->setPassword(null);
- }
-
- return $this;
- }
-
- public function send()
- {
- if (!$this->client) {
- throw new RuntimeException('A client must be set on the request');
- }
-
- return $this->client->send($this);
- }
-
- public function getResponse()
- {
- return $this->response;
- }
-
- public function getQuery($asString = false)
- {
- return $asString
- ? (string) $this->url->getQuery()
- : $this->url->getQuery();
- }
-
- public function getMethod()
- {
- return $this->method;
- }
-
- public function getScheme()
- {
- return $this->url->getScheme();
- }
-
- public function setScheme($scheme)
- {
- $this->url->setScheme($scheme);
-
- return $this;
- }
-
- public function getHost()
- {
- return $this->url->getHost();
- }
-
- public function setHost($host)
- {
- $this->url->setHost($host);
- $this->setPort($this->url->getPort());
-
- return $this;
- }
-
- public function getProtocolVersion()
- {
- return $this->protocolVersion;
- }
-
- public function setProtocolVersion($protocol)
- {
- $this->protocolVersion = $protocol;
-
- return $this;
- }
-
- public function getPath()
- {
- return '/' . ltrim($this->url->getPath(), '/');
- }
-
- public function setPath($path)
- {
- $this->url->setPath($path);
-
- return $this;
- }
-
- public function getPort()
- {
- return $this->url->getPort();
- }
-
- public function setPort($port)
- {
- $this->url->setPort($port);
-
- // Include the port in the Host header if it is not the default port for the scheme of the URL
- $scheme = $this->url->getScheme();
- if ($port && (($scheme == 'http' && $port != 80) || ($scheme == 'https' && $port != 443))) {
- $this->headers['host'] = $this->headerFactory->createHeader('Host', $this->url->getHost() . ':' . $port);
- } else {
- $this->headers['host'] = $this->headerFactory->createHeader('Host', $this->url->getHost());
- }
-
- return $this;
- }
-
- public function getUsername()
- {
- return $this->username;
- }
-
- public function getPassword()
- {
- return $this->password;
- }
-
- public function setAuth($user, $password = '', $scheme = CURLAUTH_BASIC)
- {
- static $authMap = array(
- 'basic' => CURLAUTH_BASIC,
- 'digest' => CURLAUTH_DIGEST,
- 'ntlm' => CURLAUTH_NTLM,
- 'any' => CURLAUTH_ANY
- );
-
- // If we got false or null, disable authentication
- if (!$user) {
- $this->password = $this->username = null;
- $this->removeHeader('Authorization');
- $this->getCurlOptions()->remove(CURLOPT_HTTPAUTH);
- return $this;
- }
-
- if (!is_numeric($scheme)) {
- $scheme = strtolower($scheme);
- if (!isset($authMap[$scheme])) {
- throw new InvalidArgumentException($scheme . ' is not a valid authentication type');
- }
- $scheme = $authMap[$scheme];
- }
-
- $this->username = $user;
- $this->password = $password;
-
- // Bypass CURL when using basic auth to promote connection reuse
- if ($scheme == CURLAUTH_BASIC) {
- $this->getCurlOptions()->remove(CURLOPT_HTTPAUTH);
- $this->setHeader('Authorization', 'Basic ' . base64_encode($this->username . ':' . $this->password));
- } else {
- $this->getCurlOptions()
- ->set(CURLOPT_HTTPAUTH, $scheme)
- ->set(CURLOPT_USERPWD, $this->username . ':' . $this->password);
- }
-
- return $this;
- }
-
- public function getResource()
- {
- $resource = $this->getPath();
- if ($query = (string) $this->url->getQuery()) {
- $resource .= '?' . $query;
- }
-
- return $resource;
- }
-
- public function getUrl($asObject = false)
- {
- return $asObject ? clone $this->url : (string) $this->url;
- }
-
- public function getState()
- {
- return $this->state;
- }
-
- public function setState($state, array $context = array())
- {
- $oldState = $this->state;
- $this->state = $state;
-
- switch ($state) {
- case self::STATE_NEW:
- $this->response = null;
- break;
- case self::STATE_TRANSFER:
- if ($oldState !== $state) {
- // Fix Content-Length and Transfer-Encoding collisions
- if ($this->hasHeader('Transfer-Encoding') && $this->hasHeader('Content-Length')) {
- $this->removeHeader('Transfer-Encoding');
- }
- $this->dispatch('request.before_send', array('request' => $this));
- }
- break;
- case self::STATE_COMPLETE:
- if ($oldState !== $state) {
- $this->processResponse($context);
- $this->responseBody = null;
- }
- break;
- case self::STATE_ERROR:
- if (isset($context['exception'])) {
- $this->dispatch('request.exception', array(
- 'request' => $this,
- 'response' => isset($context['response']) ? $context['response'] : $this->response,
- 'exception' => isset($context['exception']) ? $context['exception'] : null
- ));
- }
- }
-
- return $this->state;
- }
-
- public function getCurlOptions()
- {
- return $this->curlOptions;
- }
-
- public function startResponse(Response $response)
- {
- $this->state = self::STATE_TRANSFER;
- $response->setEffectiveUrl((string) $this->getUrl());
- $this->response = $response;
-
- return $this;
- }
-
- public function setResponse(Response $response, $queued = false)
- {
- $response->setEffectiveUrl((string) $this->url);
-
- if ($queued) {
- $ed = $this->getEventDispatcher();
- $ed->addListener('request.before_send', $f = function ($e) use ($response, &$f, $ed) {
- $e['request']->setResponse($response);
- $ed->removeListener('request.before_send', $f);
- }, -9999);
- } else {
- $this->response = $response;
- // If a specific response body is specified, then use it instead of the response's body
- if ($this->responseBody && !$this->responseBody->getCustomData('default') && !$response->isRedirect()) {
- $this->getResponseBody()->write((string) $this->response->getBody());
- } else {
- $this->responseBody = $this->response->getBody();
- }
- $this->setState(self::STATE_COMPLETE);
- }
-
- return $this;
- }
-
- public function setResponseBody($body)
- {
- // Attempt to open a file for writing if a string was passed
- if (is_string($body)) {
- // @codeCoverageIgnoreStart
- if (!($body = fopen($body, 'w+'))) {
- throw new InvalidArgumentException('Could not open ' . $body . ' for writing');
- }
- // @codeCoverageIgnoreEnd
- }
-
- $this->responseBody = EntityBody::factory($body);
-
- return $this;
- }
-
- public function getResponseBody()
- {
- if ($this->responseBody === null) {
- $this->responseBody = EntityBody::factory()->setCustomData('default', true);
- }
-
- return $this->responseBody;
- }
-
- /**
- * Determine if the response body is repeatable (readable + seekable)
- *
- * @return bool
- * @deprecated Use getResponseBody()->isSeekable()
- * @codeCoverageIgnore
- */
- public function isResponseBodyRepeatable()
- {
- Version::warn(__METHOD__ . ' is deprecated. Use $request->getResponseBody()->isRepeatable()');
- return !$this->responseBody ? true : $this->responseBody->isRepeatable();
- }
-
- public function getCookies()
- {
- if ($cookie = $this->getHeader('Cookie')) {
- $data = ParserRegistry::getInstance()->getParser('cookie')->parseCookie($cookie);
- return $data['cookies'];
- }
-
- return array();
- }
-
- public function getCookie($name)
- {
- $cookies = $this->getCookies();
-
- return isset($cookies[$name]) ? $cookies[$name] : null;
- }
-
- public function addCookie($name, $value)
- {
- if (!$this->hasHeader('Cookie')) {
- $this->setHeader('Cookie', "{$name}={$value}");
- } else {
- $this->getHeader('Cookie')->add("{$name}={$value}");
- }
-
- // Always use semicolons to separate multiple cookie headers
- $this->getHeader('Cookie')->setGlue(';');
-
- return $this;
- }
-
- public function removeCookie($name)
- {
- if ($cookie = $this->getHeader('Cookie')) {
- foreach ($cookie as $cookieValue) {
- if (strpos($cookieValue, $name . '=') === 0) {
- $cookie->removeValue($cookieValue);
- }
- }
- }
-
- return $this;
- }
-
- public function setEventDispatcher(EventDispatcherInterface $eventDispatcher)
- {
- $this->eventDispatcher = $eventDispatcher;
- $this->eventDispatcher->addListener('request.error', array(__CLASS__, 'onRequestError'), -255);
-
- return $this;
- }
-
- public function getEventDispatcher()
- {
- if (!$this->eventDispatcher) {
- $this->setEventDispatcher(new EventDispatcher());
- }
-
- return $this->eventDispatcher;
- }
-
- public function dispatch($eventName, array $context = array())
- {
- $context['request'] = $this;
-
- return $this->getEventDispatcher()->dispatch($eventName, new Event($context));
- }
-
- public function addSubscriber(EventSubscriberInterface $subscriber)
- {
- $this->getEventDispatcher()->addSubscriber($subscriber);
-
- return $this;
- }
-
- /**
- * Get an array containing the request and response for event notifications
- *
- * @return array
- */
- protected function getEventArray()
- {
- return array(
- 'request' => $this,
- 'response' => $this->response
- );
- }
-
- /**
- * Process a received response
- *
- * @param array $context Contextual information
- * @throws RequestException|BadResponseException on unsuccessful responses
- */
- protected function processResponse(array $context = array())
- {
- if (!$this->response) {
- // If no response, then processResponse shouldn't have been called
- $e = new RequestException('Error completing request');
- $e->setRequest($this);
- throw $e;
- }
-
- $this->state = self::STATE_COMPLETE;
-
- // A request was sent, but we don't know if we'll send more or if the final response will be successful
- $this->dispatch('request.sent', $this->getEventArray() + $context);
-
- // Some response processors will remove the response or reset the state (example: ExponentialBackoffPlugin)
- if ($this->state == RequestInterface::STATE_COMPLETE) {
-
- // The request completed, so the HTTP transaction is complete
- $this->dispatch('request.complete', $this->getEventArray());
-
- // If the response is bad, allow listeners to modify it or throw exceptions. You can change the response by
- // modifying the Event object in your listeners or calling setResponse() on the request
- if ($this->response->isError()) {
- $event = new Event($this->getEventArray());
- $this->getEventDispatcher()->dispatch('request.error', $event);
- // Allow events of request.error to quietly change the response
- if ($event['response'] !== $this->response) {
- $this->response = $event['response'];
- }
- }
-
- // If a successful response was received, dispatch an event
- if ($this->response->isSuccessful()) {
- $this->dispatch('request.success', $this->getEventArray());
- }
- }
- }
-
- /**
- * @deprecated Use Guzzle\Plugin\Cache\DefaultCanCacheStrategy
- * @codeCoverageIgnore
- */
- public function canCache()
- {
- Version::warn(__METHOD__ . ' is deprecated. Use Guzzle\Plugin\Cache\DefaultCanCacheStrategy.');
- if (class_exists('Guzzle\Plugin\Cache\DefaultCanCacheStrategy')) {
- $canCache = new \Guzzle\Plugin\Cache\DefaultCanCacheStrategy();
- return $canCache->canCacheRequest($this);
- } else {
- return false;
- }
- }
-
- /**
- * @deprecated Use the history plugin (not emitting a warning as this is built-into the RedirectPlugin for now)
- * @codeCoverageIgnore
- */
- public function setIsRedirect($isRedirect)
- {
- $this->isRedirect = $isRedirect;
-
- return $this;
- }
-
- /**
- * @deprecated Use the history plugin
- * @codeCoverageIgnore
- */
- public function isRedirect()
- {
- Version::warn(__METHOD__ . ' is deprecated. Use the HistoryPlugin to track this.');
- return $this->isRedirect;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactory.php
deleted file mode 100644
index ba00a767614..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactory.php
+++ /dev/null
@@ -1,359 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Collection;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\RedirectPlugin;
-use Guzzle\Http\Url;
-use Guzzle\Parser\ParserRegistry;
-
-/**
- * Default HTTP request factory used to create the default {@see Request} and {@see EntityEnclosingRequest} objects.
- */
-class RequestFactory implements RequestFactoryInterface
-{
- /** @var RequestFactory Singleton instance of the default request factory */
- protected static $instance;
-
- /** @var array Hash of methods available to the class (provides fast isset() lookups) */
- protected $methods;
-
- /** @var string Class to instantiate for requests with no body */
- protected $requestClass = 'Guzzle\\Http\\Message\\Request';
-
- /** @var string Class to instantiate for requests with a body */
- protected $entityEnclosingRequestClass = 'Guzzle\\Http\\Message\\EntityEnclosingRequest';
-
- /**
- * Get a cached instance of the default request factory
- *
- * @return RequestFactory
- */
- public static function getInstance()
- {
- // @codeCoverageIgnoreStart
- if (!static::$instance) {
- static::$instance = new static();
- }
- // @codeCoverageIgnoreEnd
-
- return static::$instance;
- }
-
- public function __construct()
- {
- $this->methods = array_flip(get_class_methods(__CLASS__));
- }
-
- public function fromMessage($message)
- {
- $parsed = ParserRegistry::getInstance()->getParser('message')->parseRequest($message);
-
- if (!$parsed) {
- return false;
- }
-
- $request = $this->fromParts($parsed['method'], $parsed['request_url'],
- $parsed['headers'], $parsed['body'], $parsed['protocol'],
- $parsed['version']);
-
- // EntityEnclosingRequest adds an "Expect: 100-Continue" header when using a raw request body for PUT or POST
- // requests. This factory method should accurately reflect the message, so here we are removing the Expect
- // header if one was not supplied in the message.
- if (!isset($parsed['headers']['Expect']) && !isset($parsed['headers']['expect'])) {
- $request->removeHeader('Expect');
- }
-
- return $request;
- }
-
- public function fromParts(
- $method,
- array $urlParts,
- $headers = null,
- $body = null,
- $protocol = 'HTTP',
- $protocolVersion = '1.1'
- ) {
- return $this->create($method, Url::buildUrl($urlParts), $headers, $body)
- ->setProtocolVersion($protocolVersion);
- }
-
- public function create($method, $url, $headers = null, $body = null, array $options = array())
- {
- $method = strtoupper($method);
-
- if ($method == 'GET' || $method == 'HEAD' || $method == 'TRACE') {
- // Handle non-entity-enclosing request methods
- $request = new $this->requestClass($method, $url, $headers);
- if ($body) {
- // The body is where the response body will be stored
- $type = gettype($body);
- if ($type == 'string' || $type == 'resource' || $type == 'object') {
- $request->setResponseBody($body);
- }
- }
- } else {
- // Create an entity enclosing request by default
- $request = new $this->entityEnclosingRequestClass($method, $url, $headers);
- if ($body || $body === '0') {
- // Add POST fields and files to an entity enclosing request if an array is used
- if (is_array($body) || $body instanceof Collection) {
- // Normalize PHP style cURL uploads with a leading '@' symbol
- foreach ($body as $key => $value) {
- if (is_string($value) && substr($value, 0, 1) == '@') {
- $request->addPostFile($key, $value);
- unset($body[$key]);
- }
- }
- // Add the fields if they are still present and not all files
- $request->addPostFields($body);
- } else {
- // Add a raw entity body body to the request
- $request->setBody($body, (string) $request->getHeader('Content-Type'));
- if ((string) $request->getHeader('Transfer-Encoding') == 'chunked') {
- $request->removeHeader('Content-Length');
- }
- }
- }
- }
-
- if ($options) {
- $this->applyOptions($request, $options);
- }
-
- return $request;
- }
-
- /**
- * Clone a request while changing the method. Emulates the behavior of
- * {@see Guzzle\Http\Message\Request::clone}, but can change the HTTP method.
- *
- * @param RequestInterface $request Request to clone
- * @param string $method Method to set
- *
- * @return RequestInterface
- */
- public function cloneRequestWithMethod(RequestInterface $request, $method)
- {
- // Create the request with the same client if possible
- if ($request->getClient()) {
- $cloned = $request->getClient()->createRequest($method, $request->getUrl(), $request->getHeaders());
- } else {
- $cloned = $this->create($method, $request->getUrl(), $request->getHeaders());
- }
-
- $cloned->getCurlOptions()->replace($request->getCurlOptions()->toArray());
- $cloned->setEventDispatcher(clone $request->getEventDispatcher());
- // Ensure that that the Content-Length header is not copied if changing to GET or HEAD
- if (!($cloned instanceof EntityEnclosingRequestInterface)) {
- $cloned->removeHeader('Content-Length');
- } elseif ($request instanceof EntityEnclosingRequestInterface) {
- $cloned->setBody($request->getBody());
- }
- $cloned->getParams()->replace($request->getParams()->toArray());
- $cloned->dispatch('request.clone', array('request' => $cloned));
-
- return $cloned;
- }
-
- public function applyOptions(RequestInterface $request, array $options = array(), $flags = self::OPTIONS_NONE)
- {
- // Iterate over each key value pair and attempt to apply a config using function visitors
- foreach ($options as $key => $value) {
- $method = "visit_{$key}";
- if (isset($this->methods[$method])) {
- $this->{$method}($request, $value, $flags);
- }
- }
- }
-
- protected function visit_headers(RequestInterface $request, $value, $flags)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('headers value must be an array');
- }
-
- if ($flags & self::OPTIONS_AS_DEFAULTS) {
- // Merge headers in but do not overwrite existing values
- foreach ($value as $key => $header) {
- if (!$request->hasHeader($key)) {
- $request->setHeader($key, $header);
- }
- }
- } else {
- $request->addHeaders($value);
- }
- }
-
- protected function visit_body(RequestInterface $request, $value, $flags)
- {
- if ($request instanceof EntityEnclosingRequestInterface) {
- $request->setBody($value);
- } else {
- throw new InvalidArgumentException('Attempting to set a body on a non-entity-enclosing request');
- }
- }
-
- protected function visit_allow_redirects(RequestInterface $request, $value, $flags)
- {
- if ($value === false) {
- $request->getParams()->set(RedirectPlugin::DISABLE, true);
- }
- }
-
- protected function visit_auth(RequestInterface $request, $value, $flags)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('auth value must be an array');
- }
-
- $request->setAuth($value[0], isset($value[1]) ? $value[1] : null, isset($value[2]) ? $value[2] : 'basic');
- }
-
- protected function visit_query(RequestInterface $request, $value, $flags)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('query value must be an array');
- }
-
- if ($flags & self::OPTIONS_AS_DEFAULTS) {
- // Merge query string values in but do not overwrite existing values
- $query = $request->getQuery();
- $query->overwriteWith(array_diff_key($value, $query->toArray()));
- } else {
- $request->getQuery()->overwriteWith($value);
- }
- }
-
- protected function visit_cookies(RequestInterface $request, $value, $flags)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('cookies value must be an array');
- }
-
- foreach ($value as $name => $v) {
- $request->addCookie($name, $v);
- }
- }
-
- protected function visit_events(RequestInterface $request, $value, $flags)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('events value must be an array');
- }
-
- foreach ($value as $name => $method) {
- if (is_array($method)) {
- $request->getEventDispatcher()->addListener($name, $method[0], $method[1]);
- } else {
- $request->getEventDispatcher()->addListener($name, $method);
- }
- }
- }
-
- protected function visit_plugins(RequestInterface $request, $value, $flags)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('plugins value must be an array');
- }
-
- foreach ($value as $plugin) {
- $request->addSubscriber($plugin);
- }
- }
-
- protected function visit_exceptions(RequestInterface $request, $value, $flags)
- {
- if ($value === false || $value === 0) {
- $dispatcher = $request->getEventDispatcher();
- foreach ($dispatcher->getListeners('request.error') as $listener) {
- if (is_array($listener) && $listener[0] == 'Guzzle\Http\Message\Request' && $listener[1] = 'onRequestError') {
- $dispatcher->removeListener('request.error', $listener);
- break;
- }
- }
- }
- }
-
- protected function visit_save_to(RequestInterface $request, $value, $flags)
- {
- $request->setResponseBody($value);
- }
-
- protected function visit_params(RequestInterface $request, $value, $flags)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('params value must be an array');
- }
-
- $request->getParams()->overwriteWith($value);
- }
-
- protected function visit_timeout(RequestInterface $request, $value, $flags)
- {
- if (defined('CURLOPT_TIMEOUT_MS')) {
- $request->getCurlOptions()->set(CURLOPT_TIMEOUT_MS, $value * 1000);
- } else {
- $request->getCurlOptions()->set(CURLOPT_TIMEOUT, $value);
- }
- }
-
- protected function visit_connect_timeout(RequestInterface $request, $value, $flags)
- {
- if (defined('CURLOPT_CONNECTTIMEOUT_MS')) {
- $request->getCurlOptions()->set(CURLOPT_CONNECTTIMEOUT_MS, $value * 1000);
- } else {
- $request->getCurlOptions()->set(CURLOPT_CONNECTTIMEOUT, $value);
- }
- }
-
- protected function visit_debug(RequestInterface $request, $value, $flags)
- {
- if ($value) {
- $request->getCurlOptions()->set(CURLOPT_VERBOSE, true);
- }
- }
-
- protected function visit_verify(RequestInterface $request, $value, $flags)
- {
- $curl = $request->getCurlOptions();
- if ($value === true || is_string($value)) {
- $curl[CURLOPT_SSL_VERIFYHOST] = 2;
- $curl[CURLOPT_SSL_VERIFYPEER] = true;
- if ($value !== true) {
- $curl[CURLOPT_CAINFO] = $value;
- }
- } elseif ($value === false) {
- unset($curl[CURLOPT_CAINFO]);
- $curl[CURLOPT_SSL_VERIFYHOST] = 0;
- $curl[CURLOPT_SSL_VERIFYPEER] = false;
- }
- }
-
- protected function visit_proxy(RequestInterface $request, $value, $flags)
- {
- $request->getCurlOptions()->set(CURLOPT_PROXY, $value, $flags);
- }
-
- protected function visit_cert(RequestInterface $request, $value, $flags)
- {
- if (is_array($value)) {
- $request->getCurlOptions()->set(CURLOPT_SSLCERT, $value[0]);
- $request->getCurlOptions()->set(CURLOPT_SSLCERTPASSWD, $value[1]);
- } else {
- $request->getCurlOptions()->set(CURLOPT_SSLCERT, $value);
- }
- }
-
- protected function visit_ssl_key(RequestInterface $request, $value, $flags)
- {
- if (is_array($value)) {
- $request->getCurlOptions()->set(CURLOPT_SSLKEY, $value[0]);
- $request->getCurlOptions()->set(CURLOPT_SSLKEYPASSWD, $value[1]);
- } else {
- $request->getCurlOptions()->set(CURLOPT_SSLKEY, $value);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactoryInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactoryInterface.php
deleted file mode 100644
index 6088f10e994..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestFactoryInterface.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Collection;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Http\Url;
-
-/**
- * Request factory used to create HTTP requests
- */
-interface RequestFactoryInterface
-{
- const OPTIONS_NONE = 0;
- const OPTIONS_AS_DEFAULTS = 1;
-
- /**
- * Create a new request based on an HTTP message
- *
- * @param string $message HTTP message as a string
- *
- * @return RequestInterface
- */
- public function fromMessage($message);
-
- /**
- * Create a request from URL parts as returned from parse_url()
- *
- * @param string $method HTTP method (GET, POST, PUT, HEAD, DELETE, etc)
- *
- * @param array $urlParts URL parts containing the same keys as parse_url()
- * - scheme: e.g. http
- * - host: e.g. www.guzzle-project.com
- * - port: e.g. 80
- * - user: e.g. michael
- * - pass: e.g. rocks
- * - path: e.g. / OR /index.html
- * - query: after the question mark ?
- * @param array|Collection $headers HTTP headers
- * @param string|resource|array|EntityBodyInterface $body Body to send in the request
- * @param string $protocol Protocol (HTTP, SPYDY, etc)
- * @param string $protocolVersion 1.0, 1.1, etc
- *
- * @return RequestInterface
- */
- public function fromParts(
- $method,
- array $urlParts,
- $headers = null,
- $body = null,
- $protocol = 'HTTP',
- $protocolVersion = '1.1'
- );
-
- /**
- * Create a new request based on the HTTP method
- *
- * @param string $method HTTP method (GET, POST, PUT, PATCH, HEAD, DELETE, ...)
- * @param string|Url $url HTTP URL to connect to
- * @param array|Collection $headers HTTP headers
- * @param string|resource|array|EntityBodyInterface $body Body to send in the request
- * @param array $options Array of options to apply to the request
- *
- * @return RequestInterface
- */
- public function create($method, $url, $headers = null, $body = null, array $options = array());
-
- /**
- * Apply an associative array of options to the request
- *
- * @param RequestInterface $request Request to update
- * @param array $options Options to use with the request. Available options are:
- * "headers": Associative array of headers
- * "query": Associative array of query string values to add to the request
- * "body": Body of a request, including an EntityBody, string, or array when sending POST requests.
- * "auth": Array of HTTP authentication parameters to use with the request. The array must contain the
- * username in index [0], the password in index [2], and can optionally contain the authentication type
- * in index [3]. The authentication types are: "Basic", "Digest", "NTLM", "Any" (defaults to "Basic").
- * "cookies": Associative array of cookies
- * "allow_redirects": Set to false to disable redirects
- * "save_to": String, fopen resource, or EntityBody object used to store the body of the response
- * "events": Associative array mapping event names to a closure or array of (priority, closure)
- * "plugins": Array of plugins to add to the request
- * "exceptions": Set to false to disable throwing exceptions on an HTTP level error (e.g. 404, 500, etc)
- * "params": Set custom request data parameters on a request. (Note: these are not query string parameters)
- * "timeout": Float describing the timeout of the request in seconds
- * "connect_timeout": Float describing the number of seconds to wait while trying to connect. Use 0 to wait
- * indefinitely.
- * "verify": Set to true to enable SSL cert validation (the default), false to disable, or supply the path
- * to a CA bundle to enable verification using a custom certificate.
- * "cert": Set to a string to specify the path to a file containing a PEM formatted certificate. If a
- * password is required, then set an array containing the path to the PEM file followed by the the
- * password required for the certificate.
- * "ssl_key": Specify the path to a file containing a private SSL key in PEM format. If a password is
- * required, then set an array containing the path to the SSL key followed by the password required for
- * the certificate.
- * "proxy": Specify an HTTP proxy (e.g. "http://username:password@192.168.16.1:10")
- * "debug": Set to true to display all data sent over the wire
- * @param int $flags Bitwise flags to apply when applying the options to the request. Defaults to no special
- * options. `1` (OPTIONS_AS_DEFAULTS): When specified, options will only update a request when
- * the value does not already exist on the request. This is only supported by "query" and
- * "headers". Other bitwise options may be added in the future.
- */
- public function applyOptions(RequestInterface $request, array $options = array(), $flags = self::OPTIONS_NONE);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestInterface.php
deleted file mode 100644
index 2f6b3c8d722..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/RequestInterface.php
+++ /dev/null
@@ -1,318 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Collection;
-use Guzzle\Common\HasDispatcherInterface;
-use Guzzle\Http\Exception\RequestException;
-use Guzzle\Http\ClientInterface;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Http\Url;
-use Guzzle\Http\QueryString;
-
-/**
- * Generic HTTP request interface
- */
-interface RequestInterface extends MessageInterface, HasDispatcherInterface
-{
- const STATE_NEW = 'new';
- const STATE_COMPLETE = 'complete';
- const STATE_TRANSFER = 'transfer';
- const STATE_ERROR = 'error';
-
- const GET = 'GET';
- const PUT = 'PUT';
- const POST = 'POST';
- const DELETE = 'DELETE';
- const HEAD = 'HEAD';
- const CONNECT = 'CONNECT';
- const OPTIONS = 'OPTIONS';
- const TRACE = 'TRACE';
- const PATCH = 'PATCH';
-
- /**
- * @return string
- */
- public function __toString();
-
- /**
- * Send the request
- *
- * @return Response
- * @throws RequestException on a request error
- */
- public function send();
-
- /**
- * Set the client used to transport the request
- *
- * @param ClientInterface $client
- *
- * @return self
- */
- public function setClient(ClientInterface $client);
-
- /**
- * Get the client used to transport the request
- *
- * @return ClientInterface $client
- */
- public function getClient();
-
- /**
- * Set the URL of the request
- *
- * @param string $url|Url Full URL to set including query string
- *
- * @return self
- */
- public function setUrl($url);
-
- /**
- * Get the full URL of the request (e.g. 'http://www.guzzle-project.com/')
- *
- * @param bool $asObject Set to TRUE to retrieve the URL as a clone of the URL object owned by the request.
- *
- * @return string|Url
- */
- public function getUrl($asObject = false);
-
- /**
- * Get the resource part of the the request, including the path, query string, and fragment
- *
- * @return string
- */
- public function getResource();
-
- /**
- * Get the collection of key value pairs that will be used as the query string in the request
- *
- * @return QueryString
- */
- public function getQuery();
-
- /**
- * Get the HTTP method of the request
- *
- * @return string
- */
- public function getMethod();
-
- /**
- * Get the URI scheme of the request (http, https, ftp, etc)
- *
- * @return string
- */
- public function getScheme();
-
- /**
- * Set the URI scheme of the request (http, https, ftp, etc)
- *
- * @param string $scheme Scheme to set
- *
- * @return self
- */
- public function setScheme($scheme);
-
- /**
- * Get the host of the request
- *
- * @return string
- */
- public function getHost();
-
- /**
- * Set the host of the request. Including a port in the host will modify the port of the request.
- *
- * @param string $host Host to set (e.g. www.yahoo.com, www.yahoo.com:80)
- *
- * @return self
- */
- public function setHost($host);
-
- /**
- * Get the path of the request (e.g. '/', '/index.html')
- *
- * @return string
- */
- public function getPath();
-
- /**
- * Set the path of the request (e.g. '/', '/index.html')
- *
- * @param string|array $path Path to set or array of segments to implode
- *
- * @return self
- */
- public function setPath($path);
-
- /**
- * Get the port that the request will be sent on if it has been set
- *
- * @return int|null
- */
- public function getPort();
-
- /**
- * Set the port that the request will be sent on
- *
- * @param int $port Port number to set
- *
- * @return self
- */
- public function setPort($port);
-
- /**
- * Get the username to pass in the URL if set
- *
- * @return string|null
- */
- public function getUsername();
-
- /**
- * Get the password to pass in the URL if set
- *
- * @return string|null
- */
- public function getPassword();
-
- /**
- * Set HTTP authorization parameters
- *
- * @param string|bool $user User name or false disable authentication
- * @param string $password Password
- * @param string $scheme Authentication scheme ('Basic', 'Digest', or a CURLAUTH_* constant (deprecated))
- *
- * @return self
- * @link http://www.ietf.org/rfc/rfc2617.txt
- * @link http://php.net/manual/en/function.curl-setopt.php See the available options for CURLOPT_HTTPAUTH
- * @throws RequestException
- */
- public function setAuth($user, $password = '', $scheme = 'Basic');
-
- /**
- * Get the HTTP protocol version of the request
- *
- * @return string
- */
- public function getProtocolVersion();
-
- /**
- * Set the HTTP protocol version of the request (e.g. 1.1 or 1.0)
- *
- * @param string $protocol HTTP protocol version to use with the request
- *
- * @return self
- */
- public function setProtocolVersion($protocol);
-
- /**
- * Get the previously received {@see Response} or NULL if the request has not been sent
- *
- * @return Response|null
- */
- public function getResponse();
-
- /**
- * Manually set a response for the request.
- *
- * This method is useful for specifying a mock response for the request or setting the response using a cache.
- * Manually setting a response will bypass the actual sending of a request.
- *
- * @param Response $response Response object to set
- * @param bool $queued Set to TRUE to keep the request in a state of not having been sent, but queue the
- * response for send()
- *
- * @return self Returns a reference to the object.
- */
- public function setResponse(Response $response, $queued = false);
-
- /**
- * The start of a response has been received for a request and the request is still in progress
- *
- * @param Response $response Response that has been received so far
- *
- * @return self
- */
- public function startResponse(Response $response);
-
- /**
- * Set the EntityBody that will hold a successful response message's entity body.
- *
- * This method should be invoked when you need to send the response's entity body somewhere other than the normal
- * php://temp buffer. For example, you can send the entity body to a socket, file, or some other custom stream.
- *
- * @param EntityBodyInterface|string|resource $body Response body object. Pass a string to attempt to store the
- * response body in a local file.
- * @return Request
- */
- public function setResponseBody($body);
-
- /**
- * Get the EntityBody that will hold the resulting response message's entity body. This response body will only
- * be used for successful responses. Intermediate responses (e.g. redirects) will not use the targeted response
- * body.
- *
- * @return EntityBodyInterface
- */
- public function getResponseBody();
-
- /**
- * Get the state of the request. One of 'complete', 'transfer', 'new', 'error'
- *
- * @return string
- */
- public function getState();
-
- /**
- * Set the state of the request
- *
- * @param string $state State of the request ('complete', 'transfer', 'new', 'error')
- * @param array $context Contextual information about the state change
- *
- * @return string Returns the current state of the request (which may have changed due to events being fired)
- */
- public function setState($state, array $context = array());
-
- /**
- * Get the cURL options that will be applied when the cURL handle is created
- *
- * @return Collection
- */
- public function getCurlOptions();
-
- /**
- * Get an array of Cookies
- *
- * @return array
- */
- public function getCookies();
-
- /**
- * Get a cookie value by name
- *
- * @param string $name Cookie to retrieve
- *
- * @return null|string
- */
- public function getCookie($name);
-
- /**
- * Add a Cookie value by name to the Cookie header
- *
- * @param string $name Name of the cookie to add
- * @param string $value Value to set
- *
- * @return self
- */
- public function addCookie($name, $value);
-
- /**
- * Remove a specific cookie value by name
- *
- * @param string $name Cookie to remove by name
- *
- * @return self
- */
- public function removeCookie($name);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Response.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Response.php
deleted file mode 100644
index 153e2dd9636..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Message/Response.php
+++ /dev/null
@@ -1,968 +0,0 @@
-<?php
-
-namespace Guzzle\Http\Message;
-
-use Guzzle\Common\Version;
-use Guzzle\Common\ToArrayInterface;
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Http\EntityBody;
-use Guzzle\Http\Exception\BadResponseException;
-use Guzzle\Http\RedirectPlugin;
-use Guzzle\Parser\ParserRegistry;
-
-/**
- * Guzzle HTTP response object
- */
-class Response extends AbstractMessage implements \Serializable
-{
- /**
- * @var array Array of reason phrases and their corresponding status codes
- */
- private static $statusTexts = array(
- 100 => 'Continue',
- 101 => 'Switching Protocols',
- 102 => 'Processing',
- 200 => 'OK',
- 201 => 'Created',
- 202 => 'Accepted',
- 203 => 'Non-Authoritative Information',
- 204 => 'No Content',
- 205 => 'Reset Content',
- 206 => 'Partial Content',
- 207 => 'Multi-Status',
- 208 => 'Already Reported',
- 226 => 'IM Used',
- 300 => 'Multiple Choices',
- 301 => 'Moved Permanently',
- 302 => 'Found',
- 303 => 'See Other',
- 304 => 'Not Modified',
- 305 => 'Use Proxy',
- 307 => 'Temporary Redirect',
- 308 => 'Permanent Redirect',
- 400 => 'Bad Request',
- 401 => 'Unauthorized',
- 402 => 'Payment Required',
- 403 => 'Forbidden',
- 404 => 'Not Found',
- 405 => 'Method Not Allowed',
- 406 => 'Not Acceptable',
- 407 => 'Proxy Authentication Required',
- 408 => 'Request Timeout',
- 409 => 'Conflict',
- 410 => 'Gone',
- 411 => 'Length Required',
- 412 => 'Precondition Failed',
- 413 => 'Request Entity Too Large',
- 414 => 'Request-URI Too Long',
- 415 => 'Unsupported Media Type',
- 416 => 'Requested Range Not Satisfiable',
- 417 => 'Expectation Failed',
- 422 => 'Unprocessable Entity',
- 423 => 'Locked',
- 424 => 'Failed Dependency',
- 425 => 'Reserved for WebDAV advanced collections expired proposal',
- 426 => 'Upgrade required',
- 428 => 'Precondition Required',
- 429 => 'Too Many Requests',
- 431 => 'Request Header Fields Too Large',
- 500 => 'Internal Server Error',
- 501 => 'Not Implemented',
- 502 => 'Bad Gateway',
- 503 => 'Service Unavailable',
- 504 => 'Gateway Timeout',
- 505 => 'HTTP Version Not Supported',
- 506 => 'Variant Also Negotiates (Experimental)',
- 507 => 'Insufficient Storage',
- 508 => 'Loop Detected',
- 510 => 'Not Extended',
- 511 => 'Network Authentication Required',
- );
-
- /** @var EntityBodyInterface The response body */
- protected $body;
-
- /** @var string The reason phrase of the response (human readable code) */
- protected $reasonPhrase;
-
- /** @var string The status code of the response */
- protected $statusCode;
-
- /** @var array Information about the request */
- protected $info = array();
-
- /** @var string The effective URL that returned this response */
- protected $effectiveUrl;
-
- /** @var array Cacheable response codes (see RFC 2616:13.4) */
- protected static $cacheResponseCodes = array(200, 203, 206, 300, 301, 410);
-
- /**
- * Create a new Response based on a raw response message
- *
- * @param string $message Response message
- *
- * @return self|bool Returns false on error
- */
- public static function fromMessage($message)
- {
- $data = ParserRegistry::getInstance()->getParser('message')->parseResponse($message);
- if (!$data) {
- return false;
- }
-
- $response = new static($data['code'], $data['headers'], $data['body']);
- $response->setProtocol($data['protocol'], $data['version'])
- ->setStatus($data['code'], $data['reason_phrase']);
-
- // Set the appropriate Content-Length if the one set is inaccurate (e.g. setting to X)
- $contentLength = (string) $response->getHeader('Content-Length');
- $actualLength = strlen($data['body']);
- if (strlen($data['body']) > 0 && $contentLength != $actualLength) {
- $response->setHeader('Content-Length', $actualLength);
- }
-
- return $response;
- }
-
- /**
- * Construct the response
- *
- * @param string $statusCode The response status code (e.g. 200, 404, etc)
- * @param ToArrayInterface|array $headers The response headers
- * @param string|resource|EntityBodyInterface $body The body of the response
- *
- * @throws BadResponseException if an invalid response code is given
- */
- public function __construct($statusCode, $headers = null, $body = null)
- {
- parent::__construct();
- $this->setStatus($statusCode);
- $this->body = EntityBody::factory($body !== null ? $body : '');
-
- if ($headers) {
- if (is_array($headers)) {
- $this->setHeaders($headers);
- } elseif ($headers instanceof ToArrayInterface) {
- $this->setHeaders($headers->toArray());
- } else {
- throw new BadResponseException('Invalid headers argument received');
- }
- }
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return $this->getMessage();
- }
-
- public function serialize()
- {
- return json_encode(array(
- 'status' => $this->statusCode,
- 'body' => (string) $this->body,
- 'headers' => $this->headers->toArray()
- ));
- }
-
- public function unserialize($serialize)
- {
- $data = json_decode($serialize, true);
- $this->__construct($data['status'], $data['headers'], $data['body']);
- }
-
- /**
- * Get the response entity body
- *
- * @param bool $asString Set to TRUE to return a string of the body rather than a full body object
- *
- * @return EntityBodyInterface|string
- */
- public function getBody($asString = false)
- {
- return $asString ? (string) $this->body : $this->body;
- }
-
- /**
- * Set the response entity body
- *
- * @param EntityBodyInterface|string $body Body to set
- *
- * @return self
- */
- public function setBody($body)
- {
- $this->body = EntityBody::factory($body);
-
- return $this;
- }
-
- /**
- * Set the protocol and protocol version of the response
- *
- * @param string $protocol Response protocol
- * @param string $version Protocol version
- *
- * @return self
- */
- public function setProtocol($protocol, $version)
- {
- $this->protocol = $protocol;
- $this->protocolVersion = $version;
-
- return $this;
- }
-
- /**
- * Get the protocol used for the response (e.g. HTTP)
- *
- * @return string
- */
- public function getProtocol()
- {
- return $this->protocol;
- }
-
- /**
- * Get the HTTP protocol version
- *
- * @return string
- */
- public function getProtocolVersion()
- {
- return $this->protocolVersion;
- }
-
- /**
- * Get a cURL transfer information
- *
- * @param string $key A single statistic to check
- *
- * @return array|string|null Returns all stats if no key is set, a single stat if a key is set, or null if a key
- * is set and not found
- * @link http://www.php.net/manual/en/function.curl-getinfo.php
- */
- public function getInfo($key = null)
- {
- if ($key === null) {
- return $this->info;
- } elseif (array_key_exists($key, $this->info)) {
- return $this->info[$key];
- } else {
- return null;
- }
- }
-
- /**
- * Set the transfer information
- *
- * @param array $info Array of cURL transfer stats
- *
- * @return self
- */
- public function setInfo(array $info)
- {
- $this->info = $info;
-
- return $this;
- }
-
- /**
- * Set the response status
- *
- * @param int $statusCode Response status code to set
- * @param string $reasonPhrase Response reason phrase
- *
- * @return self
- * @throws BadResponseException when an invalid response code is received
- */
- public function setStatus($statusCode, $reasonPhrase = '')
- {
- $this->statusCode = (int) $statusCode;
-
- if (!$reasonPhrase && isset(self::$statusTexts[$this->statusCode])) {
- $this->reasonPhrase = self::$statusTexts[$this->statusCode];
- } else {
- $this->reasonPhrase = $reasonPhrase;
- }
-
- return $this;
- }
-
- /**
- * Get the response status code
- *
- * @return integer
- */
- public function getStatusCode()
- {
- return $this->statusCode;
- }
-
- /**
- * Get the entire response as a string
- *
- * @return string
- */
- public function getMessage()
- {
- $message = $this->getRawHeaders();
-
- // Only include the body in the message if the size is < 2MB
- $size = $this->body->getSize();
- if ($size < 2097152) {
- $message .= (string) $this->body;
- }
-
- return $message;
- }
-
- /**
- * Get the the raw message headers as a string
- *
- * @return string
- */
- public function getRawHeaders()
- {
- $headers = 'HTTP/1.1 ' . $this->statusCode . ' ' . $this->reasonPhrase . "\r\n";
- $lines = $this->getHeaderLines();
- if (!empty($lines)) {
- $headers .= implode("\r\n", $lines) . "\r\n";
- }
-
- return $headers . "\r\n";
- }
-
- /**
- * Get the response reason phrase- a human readable version of the numeric
- * status code
- *
- * @return string
- */
- public function getReasonPhrase()
- {
- return $this->reasonPhrase;
- }
-
- /**
- * Get the Accept-Ranges HTTP header
- *
- * @return string Returns what partial content range types this server supports.
- */
- public function getAcceptRanges()
- {
- return (string) $this->getHeader('Accept-Ranges');
- }
-
- /**
- * Calculate the age of the response
- *
- * @return integer
- */
- public function calculateAge()
- {
- $age = $this->getHeader('Age');
-
- if ($age === null && $this->getDate()) {
- $age = time() - strtotime($this->getDate());
- }
-
- return $age === null ? null : (int) (string) $age;
- }
-
- /**
- * Get the Age HTTP header
- *
- * @return integer|null Returns the age the object has been in a proxy cache in seconds.
- */
- public function getAge()
- {
- return (string) $this->getHeader('Age');
- }
-
- /**
- * Get the Allow HTTP header
- *
- * @return string|null Returns valid actions for a specified resource. To be used for a 405 Method not allowed.
- */
- public function getAllow()
- {
- return (string) $this->getHeader('Allow');
- }
-
- /**
- * Check if an HTTP method is allowed by checking the Allow response header
- *
- * @param string $method Method to check
- *
- * @return bool
- */
- public function isMethodAllowed($method)
- {
- $allow = $this->getHeader('Allow');
- if ($allow) {
- foreach (explode(',', $allow) as $allowable) {
- if (!strcasecmp(trim($allowable), $method)) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- /**
- * Get the Cache-Control HTTP header
- *
- * @return string
- */
- public function getCacheControl()
- {
- return (string) $this->getHeader('Cache-Control');
- }
-
- /**
- * Get the Connection HTTP header
- *
- * @return string
- */
- public function getConnection()
- {
- return (string) $this->getHeader('Connection');
- }
-
- /**
- * Get the Content-Encoding HTTP header
- *
- * @return string|null
- */
- public function getContentEncoding()
- {
- return (string) $this->getHeader('Content-Encoding');
- }
-
- /**
- * Get the Content-Language HTTP header
- *
- * @return string|null Returns the language the content is in.
- */
- public function getContentLanguage()
- {
- return (string) $this->getHeader('Content-Language');
- }
-
- /**
- * Get the Content-Length HTTP header
- *
- * @return integer Returns the length of the response body in bytes
- */
- public function getContentLength()
- {
- return (int) (string) $this->getHeader('Content-Length');
- }
-
- /**
- * Get the Content-Location HTTP header
- *
- * @return string|null Returns an alternate location for the returned data (e.g /index.htm)
- */
- public function getContentLocation()
- {
- return (string) $this->getHeader('Content-Location');
- }
-
- /**
- * Get the Content-Disposition HTTP header
- *
- * @return string|null Returns the Content-Disposition header
- */
- public function getContentDisposition()
- {
- return (string) $this->getHeader('Content-Disposition');
- }
-
- /**
- * Get the Content-MD5 HTTP header
- *
- * @return string|null Returns a Base64-encoded binary MD5 sum of the content of the response.
- */
- public function getContentMd5()
- {
- return (string) $this->getHeader('Content-MD5');
- }
-
- /**
- * Get the Content-Range HTTP header
- *
- * @return string Returns where in a full body message this partial message belongs (e.g. bytes 21010-47021/47022).
- */
- public function getContentRange()
- {
- return (string) $this->getHeader('Content-Range');
- }
-
- /**
- * Get the Content-Type HTTP header
- *
- * @return string Returns the mime type of this content.
- */
- public function getContentType()
- {
- return (string) $this->getHeader('Content-Type');
- }
-
- /**
- * Checks if the Content-Type is of a certain type. This is useful if the
- * Content-Type header contains charset information and you need to know if
- * the Content-Type matches a particular type.
- *
- * @param string $type Content type to check against
- *
- * @return bool
- */
- public function isContentType($type)
- {
- return stripos($this->getHeader('Content-Type'), $type) !== false;
- }
-
- /**
- * Get the Date HTTP header
- *
- * @return string|null Returns the date and time that the message was sent.
- */
- public function getDate()
- {
- return (string) $this->getHeader('Date');
- }
-
- /**
- * Get the ETag HTTP header
- *
- * @return string|null Returns an identifier for a specific version of a resource, often a Message digest.
- */
- public function getEtag()
- {
- return (string) $this->getHeader('ETag');
- }
-
- /**
- * Get the Expires HTTP header
- *
- * @return string|null Returns the date/time after which the response is considered stale.
- */
- public function getExpires()
- {
- return (string) $this->getHeader('Expires');
- }
-
- /**
- * Get the Last-Modified HTTP header
- *
- * @return string|null Returns the last modified date for the requested object, in RFC 2822 format
- * (e.g. Tue, 15 Nov 1994 12:45:26 GMT)
- */
- public function getLastModified()
- {
- return (string) $this->getHeader('Last-Modified');
- }
-
- /**
- * Get the Location HTTP header
- *
- * @return string|null Used in redirection, or when a new resource has been created.
- */
- public function getLocation()
- {
- return (string) $this->getHeader('Location');
- }
-
- /**
- * Get the Pragma HTTP header
- *
- * @return Header|null Returns the implementation-specific headers that may have various effects anywhere along
- * the request-response chain.
- */
- public function getPragma()
- {
- return (string) $this->getHeader('Pragma');
- }
-
- /**
- * Get the Proxy-Authenticate HTTP header
- *
- * @return string|null Authentication to access the proxy (e.g. Basic)
- */
- public function getProxyAuthenticate()
- {
- return (string) $this->getHeader('Proxy-Authenticate');
- }
-
- /**
- * Get the Retry-After HTTP header
- *
- * @return int|null If an entity is temporarily unavailable, this instructs the client to try again after a
- * specified period of time.
- */
- public function getRetryAfter()
- {
- return (string) $this->getHeader('Retry-After');
- }
-
- /**
- * Get the Server HTTP header
- *
- * @return string|null A name for the server
- */
- public function getServer()
- {
- return (string) $this->getHeader('Server');
- }
-
- /**
- * Get the Set-Cookie HTTP header
- *
- * @return string|null An HTTP cookie.
- */
- public function getSetCookie()
- {
- return (string) $this->getHeader('Set-Cookie');
- }
-
- /**
- * Get the Trailer HTTP header
- *
- * @return string|null The Trailer general field value indicates that the given set of header fields is present in
- * the trailer of a message encoded with chunked transfer-coding.
- */
- public function getTrailer()
- {
- return (string) $this->getHeader('Trailer');
- }
-
- /**
- * Get the Transfer-Encoding HTTP header
- *
- * @return string|null The form of encoding used to safely transfer the entity to the user
- */
- public function getTransferEncoding()
- {
- return (string) $this->getHeader('Transfer-Encoding');
- }
-
- /**
- * Get the Vary HTTP header
- *
- * @return string|null Tells downstream proxies how to match future request headers to decide whether the cached
- * response can be used rather than requesting a fresh one from the origin server.
- */
- public function getVary()
- {
- return (string) $this->getHeader('Vary');
- }
-
- /**
- * Get the Via HTTP header
- *
- * @return string|null Informs the client of proxies through which the response was sent.
- */
- public function getVia()
- {
- return (string) $this->getHeader('Via');
- }
-
- /**
- * Get the Warning HTTP header
- *
- * @return string|null A general warning about possible problems with the entity body
- */
- public function getWarning()
- {
- return (string) $this->getHeader('Warning');
- }
-
- /**
- * Get the WWW-Authenticate HTTP header
- *
- * @return string|null Indicates the authentication scheme that should be used to access the requested entity
- */
- public function getWwwAuthenticate()
- {
- return (string) $this->getHeader('WWW-Authenticate');
- }
-
- /**
- * Checks if HTTP Status code is a Client Error (4xx)
- *
- * @return bool
- */
- public function isClientError()
- {
- return $this->statusCode >= 400 && $this->statusCode < 500;
- }
-
- /**
- * Checks if HTTP Status code is Server OR Client Error (4xx or 5xx)
- *
- * @return boolean
- */
- public function isError()
- {
- return $this->isClientError() || $this->isServerError();
- }
-
- /**
- * Checks if HTTP Status code is Information (1xx)
- *
- * @return bool
- */
- public function isInformational()
- {
- return $this->statusCode < 200;
- }
-
- /**
- * Checks if HTTP Status code is a Redirect (3xx)
- *
- * @return bool
- */
- public function isRedirect()
- {
- return $this->statusCode >= 300 && $this->statusCode < 400;
- }
-
- /**
- * Checks if HTTP Status code is Server Error (5xx)
- *
- * @return bool
- */
- public function isServerError()
- {
- return $this->statusCode >= 500 && $this->statusCode < 600;
- }
-
- /**
- * Checks if HTTP Status code is Successful (2xx | 304)
- *
- * @return bool
- */
- public function isSuccessful()
- {
- return ($this->statusCode >= 200 && $this->statusCode < 300) || $this->statusCode == 304;
- }
-
- /**
- * Check if the response can be cached based on the response headers
- *
- * @return bool Returns TRUE if the response can be cached or false if not
- */
- public function canCache()
- {
- // Check if the response is cacheable based on the code
- if (!in_array((int) $this->getStatusCode(), self::$cacheResponseCodes)) {
- return false;
- }
-
- // Make sure a valid body was returned and can be cached
- if ((!$this->getBody()->isReadable() || !$this->getBody()->isSeekable())
- && ($this->getContentLength() > 0 || $this->getTransferEncoding() == 'chunked')) {
- return false;
- }
-
- // Never cache no-store resources (this is a private cache, so private
- // can be cached)
- if ($this->getHeader('Cache-Control') && $this->getHeader('Cache-Control')->hasDirective('no-store')) {
- return false;
- }
-
- return $this->isFresh() || $this->getFreshness() === null || $this->canValidate();
- }
-
- /**
- * Gets the number of seconds from the current time in which this response is still considered fresh
- *
- * @return int|null Returns the number of seconds
- */
- public function getMaxAge()
- {
- if ($header = $this->getHeader('Cache-Control')) {
- // s-max-age, then max-age, then Expires
- if ($age = $header->getDirective('s-maxage')) {
- return $age;
- }
- if ($age = $header->getDirective('max-age')) {
- return $age;
- }
- }
-
- if ($this->getHeader('Expires')) {
- return strtotime($this->getExpires()) - time();
- }
-
- return null;
- }
-
- /**
- * Check if the response is considered fresh.
- *
- * A response is considered fresh when its age is less than or equal to the freshness lifetime (maximum age) of the
- * response.
- *
- * @return bool|null
- */
- public function isFresh()
- {
- $fresh = $this->getFreshness();
-
- return $fresh === null ? null : $fresh >= 0;
- }
-
- /**
- * Check if the response can be validated against the origin server using a conditional GET request.
- *
- * @return bool
- */
- public function canValidate()
- {
- return $this->getEtag() || $this->getLastModified();
- }
-
- /**
- * Get the freshness of the response by returning the difference of the maximum lifetime of the response and the
- * age of the response (max-age - age).
- *
- * Freshness values less than 0 mean that the response is no longer fresh and is ABS(freshness) seconds expired.
- * Freshness values of greater than zero is the number of seconds until the response is no longer fresh. A NULL
- * result means that no freshness information is available.
- *
- * @return int
- */
- public function getFreshness()
- {
- $maxAge = $this->getMaxAge();
- $age = $this->calculateAge();
-
- return $maxAge && $age ? ($maxAge - $age) : null;
- }
-
- /**
- * Parse the JSON response body and return an array
- *
- * @return array|string|int|bool|float
- * @throws RuntimeException if the response body is not in JSON format
- */
- public function json()
- {
- $data = json_decode((string) $this->body, true);
- if (JSON_ERROR_NONE !== json_last_error()) {
- throw new RuntimeException('Unable to parse response body into JSON: ' . json_last_error());
- }
-
- return $data === null ? array() : $data;
- }
-
- /**
- * Parse the XML response body and return a \SimpleXMLElement.
- *
- * In order to prevent XXE attacks, this method disables loading external
- * entities. If you rely on external entities, then you must parse the
- * XML response manually by accessing the response body directly.
- *
- * @return \SimpleXMLElement
- * @throws RuntimeException if the response body is not in XML format
- * @link http://websec.io/2012/08/27/Preventing-XXE-in-PHP.html
- */
- public function xml()
- {
- $errorMessage = null;
- $internalErrors = libxml_use_internal_errors(true);
- $disableEntities = libxml_disable_entity_loader(true);
- libxml_clear_errors();
-
- try {
- $xml = new \SimpleXMLElement((string) $this->body ?: '<root />', LIBXML_NONET);
- if ($error = libxml_get_last_error()) {
- $errorMessage = $error->message;
- }
- } catch (\Exception $e) {
- $errorMessage = $e->getMessage();
- }
-
- libxml_clear_errors();
- libxml_use_internal_errors($internalErrors);
- libxml_disable_entity_loader($disableEntities);
-
- if ($errorMessage) {
- throw new RuntimeException('Unable to parse response body into XML: ' . $errorMessage);
- }
-
- return $xml;
- }
-
- /**
- * Get the redirect count of this response
- *
- * @return int
- */
- public function getRedirectCount()
- {
- return (int) $this->params->get(RedirectPlugin::REDIRECT_COUNT);
- }
-
- /**
- * Set the effective URL that resulted in this response (e.g. the last redirect URL)
- *
- * @param string $url The effective URL
- *
- * @return self
- */
- public function setEffectiveUrl($url)
- {
- $this->effectiveUrl = $url;
-
- return $this;
- }
-
- /**
- * Get the effective URL that resulted in this response (e.g. the last redirect URL)
- *
- * @return string
- */
- public function getEffectiveUrl()
- {
- return $this->effectiveUrl;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function getPreviousResponse()
- {
- Version::warn(__METHOD__ . ' is deprecated. Use the HistoryPlugin.');
- return null;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function setRequest($request)
- {
- Version::warn(__METHOD__ . ' is deprecated');
- return $this;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function getRequest()
- {
- Version::warn(__METHOD__ . ' is deprecated');
- return null;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Mimetypes.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Mimetypes.php
deleted file mode 100644
index d71586a05b3..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Mimetypes.php
+++ /dev/null
@@ -1,962 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-/**
- * Provides mappings of file extensions to mimetypes
- * @link http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types
- */
-class Mimetypes
-{
- /** @var self */
- protected static $instance;
-
- /** @var array Mapping of extension to mimetype */
- protected $mimetypes = array(
- '3dml' => 'text/vnd.in3d.3dml',
- '3g2' => 'video/3gpp2',
- '3gp' => 'video/3gpp',
- '7z' => 'application/x-7z-compressed',
- 'aab' => 'application/x-authorware-bin',
- 'aac' => 'audio/x-aac',
- 'aam' => 'application/x-authorware-map',
- 'aas' => 'application/x-authorware-seg',
- 'abw' => 'application/x-abiword',
- 'ac' => 'application/pkix-attr-cert',
- 'acc' => 'application/vnd.americandynamics.acc',
- 'ace' => 'application/x-ace-compressed',
- 'acu' => 'application/vnd.acucobol',
- 'acutc' => 'application/vnd.acucorp',
- 'adp' => 'audio/adpcm',
- 'aep' => 'application/vnd.audiograph',
- 'afm' => 'application/x-font-type1',
- 'afp' => 'application/vnd.ibm.modcap',
- 'ahead' => 'application/vnd.ahead.space',
- 'ai' => 'application/postscript',
- 'aif' => 'audio/x-aiff',
- 'aifc' => 'audio/x-aiff',
- 'aiff' => 'audio/x-aiff',
- 'air' => 'application/vnd.adobe.air-application-installer-package+zip',
- 'ait' => 'application/vnd.dvb.ait',
- 'ami' => 'application/vnd.amiga.ami',
- 'apk' => 'application/vnd.android.package-archive',
- 'application' => 'application/x-ms-application',
- 'apr' => 'application/vnd.lotus-approach',
- 'asa' => 'text/plain',
- 'asax' => 'application/octet-stream',
- 'asc' => 'application/pgp-signature',
- 'ascx' => 'text/plain',
- 'asf' => 'video/x-ms-asf',
- 'ashx' => 'text/plain',
- 'asm' => 'text/x-asm',
- 'asmx' => 'text/plain',
- 'aso' => 'application/vnd.accpac.simply.aso',
- 'asp' => 'text/plain',
- 'aspx' => 'text/plain',
- 'asx' => 'video/x-ms-asf',
- 'atc' => 'application/vnd.acucorp',
- 'atom' => 'application/atom+xml',
- 'atomcat' => 'application/atomcat+xml',
- 'atomsvc' => 'application/atomsvc+xml',
- 'atx' => 'application/vnd.antix.game-component',
- 'au' => 'audio/basic',
- 'avi' => 'video/x-msvideo',
- 'aw' => 'application/applixware',
- 'axd' => 'text/plain',
- 'azf' => 'application/vnd.airzip.filesecure.azf',
- 'azs' => 'application/vnd.airzip.filesecure.azs',
- 'azw' => 'application/vnd.amazon.ebook',
- 'bat' => 'application/x-msdownload',
- 'bcpio' => 'application/x-bcpio',
- 'bdf' => 'application/x-font-bdf',
- 'bdm' => 'application/vnd.syncml.dm+wbxml',
- 'bed' => 'application/vnd.realvnc.bed',
- 'bh2' => 'application/vnd.fujitsu.oasysprs',
- 'bin' => 'application/octet-stream',
- 'bmi' => 'application/vnd.bmi',
- 'bmp' => 'image/bmp',
- 'book' => 'application/vnd.framemaker',
- 'box' => 'application/vnd.previewsystems.box',
- 'boz' => 'application/x-bzip2',
- 'bpk' => 'application/octet-stream',
- 'btif' => 'image/prs.btif',
- 'bz' => 'application/x-bzip',
- 'bz2' => 'application/x-bzip2',
- 'c' => 'text/x-c',
- 'c11amc' => 'application/vnd.cluetrust.cartomobile-config',
- 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg',
- 'c4d' => 'application/vnd.clonk.c4group',
- 'c4f' => 'application/vnd.clonk.c4group',
- 'c4g' => 'application/vnd.clonk.c4group',
- 'c4p' => 'application/vnd.clonk.c4group',
- 'c4u' => 'application/vnd.clonk.c4group',
- 'cab' => 'application/vnd.ms-cab-compressed',
- 'car' => 'application/vnd.curl.car',
- 'cat' => 'application/vnd.ms-pki.seccat',
- 'cc' => 'text/x-c',
- 'cct' => 'application/x-director',
- 'ccxml' => 'application/ccxml+xml',
- 'cdbcmsg' => 'application/vnd.contact.cmsg',
- 'cdf' => 'application/x-netcdf',
- 'cdkey' => 'application/vnd.mediastation.cdkey',
- 'cdmia' => 'application/cdmi-capability',
- 'cdmic' => 'application/cdmi-container',
- 'cdmid' => 'application/cdmi-domain',
- 'cdmio' => 'application/cdmi-object',
- 'cdmiq' => 'application/cdmi-queue',
- 'cdx' => 'chemical/x-cdx',
- 'cdxml' => 'application/vnd.chemdraw+xml',
- 'cdy' => 'application/vnd.cinderella',
- 'cer' => 'application/pkix-cert',
- 'cfc' => 'application/x-coldfusion',
- 'cfm' => 'application/x-coldfusion',
- 'cgm' => 'image/cgm',
- 'chat' => 'application/x-chat',
- 'chm' => 'application/vnd.ms-htmlhelp',
- 'chrt' => 'application/vnd.kde.kchart',
- 'cif' => 'chemical/x-cif',
- 'cii' => 'application/vnd.anser-web-certificate-issue-initiation',
- 'cil' => 'application/vnd.ms-artgalry',
- 'cla' => 'application/vnd.claymore',
- 'class' => 'application/java-vm',
- 'clkk' => 'application/vnd.crick.clicker.keyboard',
- 'clkp' => 'application/vnd.crick.clicker.palette',
- 'clkt' => 'application/vnd.crick.clicker.template',
- 'clkw' => 'application/vnd.crick.clicker.wordbank',
- 'clkx' => 'application/vnd.crick.clicker',
- 'clp' => 'application/x-msclip',
- 'cmc' => 'application/vnd.cosmocaller',
- 'cmdf' => 'chemical/x-cmdf',
- 'cml' => 'chemical/x-cml',
- 'cmp' => 'application/vnd.yellowriver-custom-menu',
- 'cmx' => 'image/x-cmx',
- 'cod' => 'application/vnd.rim.cod',
- 'com' => 'application/x-msdownload',
- 'conf' => 'text/plain',
- 'cpio' => 'application/x-cpio',
- 'cpp' => 'text/x-c',
- 'cpt' => 'application/mac-compactpro',
- 'crd' => 'application/x-mscardfile',
- 'crl' => 'application/pkix-crl',
- 'crt' => 'application/x-x509-ca-cert',
- 'cryptonote' => 'application/vnd.rig.cryptonote',
- 'cs' => 'text/plain',
- 'csh' => 'application/x-csh',
- 'csml' => 'chemical/x-csml',
- 'csp' => 'application/vnd.commonspace',
- 'css' => 'text/css',
- 'cst' => 'application/x-director',
- 'csv' => 'text/csv',
- 'cu' => 'application/cu-seeme',
- 'curl' => 'text/vnd.curl',
- 'cww' => 'application/prs.cww',
- 'cxt' => 'application/x-director',
- 'cxx' => 'text/x-c',
- 'dae' => 'model/vnd.collada+xml',
- 'daf' => 'application/vnd.mobius.daf',
- 'dataless' => 'application/vnd.fdsn.seed',
- 'davmount' => 'application/davmount+xml',
- 'dcr' => 'application/x-director',
- 'dcurl' => 'text/vnd.curl.dcurl',
- 'dd2' => 'application/vnd.oma.dd2+xml',
- 'ddd' => 'application/vnd.fujixerox.ddd',
- 'deb' => 'application/x-debian-package',
- 'def' => 'text/plain',
- 'deploy' => 'application/octet-stream',
- 'der' => 'application/x-x509-ca-cert',
- 'dfac' => 'application/vnd.dreamfactory',
- 'dic' => 'text/x-c',
- 'dir' => 'application/x-director',
- 'dis' => 'application/vnd.mobius.dis',
- 'dist' => 'application/octet-stream',
- 'distz' => 'application/octet-stream',
- 'djv' => 'image/vnd.djvu',
- 'djvu' => 'image/vnd.djvu',
- 'dll' => 'application/x-msdownload',
- 'dmg' => 'application/octet-stream',
- 'dms' => 'application/octet-stream',
- 'dna' => 'application/vnd.dna',
- 'doc' => 'application/msword',
- 'docm' => 'application/vnd.ms-word.document.macroenabled.12',
- 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
- 'dot' => 'application/msword',
- 'dotm' => 'application/vnd.ms-word.template.macroenabled.12',
- 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
- 'dp' => 'application/vnd.osgi.dp',
- 'dpg' => 'application/vnd.dpgraph',
- 'dra' => 'audio/vnd.dra',
- 'dsc' => 'text/prs.lines.tag',
- 'dssc' => 'application/dssc+der',
- 'dtb' => 'application/x-dtbook+xml',
- 'dtd' => 'application/xml-dtd',
- 'dts' => 'audio/vnd.dts',
- 'dtshd' => 'audio/vnd.dts.hd',
- 'dump' => 'application/octet-stream',
- 'dvi' => 'application/x-dvi',
- 'dwf' => 'model/vnd.dwf',
- 'dwg' => 'image/vnd.dwg',
- 'dxf' => 'image/vnd.dxf',
- 'dxp' => 'application/vnd.spotfire.dxp',
- 'dxr' => 'application/x-director',
- 'ecelp4800' => 'audio/vnd.nuera.ecelp4800',
- 'ecelp7470' => 'audio/vnd.nuera.ecelp7470',
- 'ecelp9600' => 'audio/vnd.nuera.ecelp9600',
- 'ecma' => 'application/ecmascript',
- 'edm' => 'application/vnd.novadigm.edm',
- 'edx' => 'application/vnd.novadigm.edx',
- 'efif' => 'application/vnd.picsel',
- 'ei6' => 'application/vnd.pg.osasli',
- 'elc' => 'application/octet-stream',
- 'eml' => 'message/rfc822',
- 'emma' => 'application/emma+xml',
- 'eol' => 'audio/vnd.digital-winds',
- 'eot' => 'application/vnd.ms-fontobject',
- 'eps' => 'application/postscript',
- 'epub' => 'application/epub+zip',
- 'es3' => 'application/vnd.eszigno3+xml',
- 'esf' => 'application/vnd.epson.esf',
- 'et3' => 'application/vnd.eszigno3+xml',
- 'etx' => 'text/x-setext',
- 'exe' => 'application/x-msdownload',
- 'exi' => 'application/exi',
- 'ext' => 'application/vnd.novadigm.ext',
- 'ez' => 'application/andrew-inset',
- 'ez2' => 'application/vnd.ezpix-album',
- 'ez3' => 'application/vnd.ezpix-package',
- 'f' => 'text/x-fortran',
- 'f4v' => 'video/x-f4v',
- 'f77' => 'text/x-fortran',
- 'f90' => 'text/x-fortran',
- 'fbs' => 'image/vnd.fastbidsheet',
- 'fcs' => 'application/vnd.isac.fcs',
- 'fdf' => 'application/vnd.fdf',
- 'fe_launch' => 'application/vnd.denovo.fcselayout-link',
- 'fg5' => 'application/vnd.fujitsu.oasysgp',
- 'fgd' => 'application/x-director',
- 'fh' => 'image/x-freehand',
- 'fh4' => 'image/x-freehand',
- 'fh5' => 'image/x-freehand',
- 'fh7' => 'image/x-freehand',
- 'fhc' => 'image/x-freehand',
- 'fig' => 'application/x-xfig',
- 'fli' => 'video/x-fli',
- 'flo' => 'application/vnd.micrografx.flo',
- 'flv' => 'video/x-flv',
- 'flw' => 'application/vnd.kde.kivio',
- 'flx' => 'text/vnd.fmi.flexstor',
- 'fly' => 'text/vnd.fly',
- 'fm' => 'application/vnd.framemaker',
- 'fnc' => 'application/vnd.frogans.fnc',
- 'for' => 'text/x-fortran',
- 'fpx' => 'image/vnd.fpx',
- 'frame' => 'application/vnd.framemaker',
- 'fsc' => 'application/vnd.fsc.weblaunch',
- 'fst' => 'image/vnd.fst',
- 'ftc' => 'application/vnd.fluxtime.clip',
- 'fti' => 'application/vnd.anser-web-funds-transfer-initiation',
- 'fvt' => 'video/vnd.fvt',
- 'fxp' => 'application/vnd.adobe.fxp',
- 'fxpl' => 'application/vnd.adobe.fxp',
- 'fzs' => 'application/vnd.fuzzysheet',
- 'g2w' => 'application/vnd.geoplan',
- 'g3' => 'image/g3fax',
- 'g3w' => 'application/vnd.geospace',
- 'gac' => 'application/vnd.groove-account',
- 'gdl' => 'model/vnd.gdl',
- 'geo' => 'application/vnd.dynageo',
- 'gex' => 'application/vnd.geometry-explorer',
- 'ggb' => 'application/vnd.geogebra.file',
- 'ggt' => 'application/vnd.geogebra.tool',
- 'ghf' => 'application/vnd.groove-help',
- 'gif' => 'image/gif',
- 'gim' => 'application/vnd.groove-identity-message',
- 'gmx' => 'application/vnd.gmx',
- 'gnumeric' => 'application/x-gnumeric',
- 'gph' => 'application/vnd.flographit',
- 'gqf' => 'application/vnd.grafeq',
- 'gqs' => 'application/vnd.grafeq',
- 'gram' => 'application/srgs',
- 'gre' => 'application/vnd.geometry-explorer',
- 'grv' => 'application/vnd.groove-injector',
- 'grxml' => 'application/srgs+xml',
- 'gsf' => 'application/x-font-ghostscript',
- 'gtar' => 'application/x-gtar',
- 'gtm' => 'application/vnd.groove-tool-message',
- 'gtw' => 'model/vnd.gtw',
- 'gv' => 'text/vnd.graphviz',
- 'gxt' => 'application/vnd.geonext',
- 'h' => 'text/x-c',
- 'h261' => 'video/h261',
- 'h263' => 'video/h263',
- 'h264' => 'video/h264',
- 'hal' => 'application/vnd.hal+xml',
- 'hbci' => 'application/vnd.hbci',
- 'hdf' => 'application/x-hdf',
- 'hh' => 'text/x-c',
- 'hlp' => 'application/winhlp',
- 'hpgl' => 'application/vnd.hp-hpgl',
- 'hpid' => 'application/vnd.hp-hpid',
- 'hps' => 'application/vnd.hp-hps',
- 'hqx' => 'application/mac-binhex40',
- 'hta' => 'application/octet-stream',
- 'htc' => 'text/html',
- 'htke' => 'application/vnd.kenameaapp',
- 'htm' => 'text/html',
- 'html' => 'text/html',
- 'hvd' => 'application/vnd.yamaha.hv-dic',
- 'hvp' => 'application/vnd.yamaha.hv-voice',
- 'hvs' => 'application/vnd.yamaha.hv-script',
- 'i2g' => 'application/vnd.intergeo',
- 'icc' => 'application/vnd.iccprofile',
- 'ice' => 'x-conference/x-cooltalk',
- 'icm' => 'application/vnd.iccprofile',
- 'ico' => 'image/x-icon',
- 'ics' => 'text/calendar',
- 'ief' => 'image/ief',
- 'ifb' => 'text/calendar',
- 'ifm' => 'application/vnd.shana.informed.formdata',
- 'iges' => 'model/iges',
- 'igl' => 'application/vnd.igloader',
- 'igm' => 'application/vnd.insors.igm',
- 'igs' => 'model/iges',
- 'igx' => 'application/vnd.micrografx.igx',
- 'iif' => 'application/vnd.shana.informed.interchange',
- 'imp' => 'application/vnd.accpac.simply.imp',
- 'ims' => 'application/vnd.ms-ims',
- 'in' => 'text/plain',
- 'ini' => 'text/plain',
- 'ipfix' => 'application/ipfix',
- 'ipk' => 'application/vnd.shana.informed.package',
- 'irm' => 'application/vnd.ibm.rights-management',
- 'irp' => 'application/vnd.irepository.package+xml',
- 'iso' => 'application/octet-stream',
- 'itp' => 'application/vnd.shana.informed.formtemplate',
- 'ivp' => 'application/vnd.immervision-ivp',
- 'ivu' => 'application/vnd.immervision-ivu',
- 'jad' => 'text/vnd.sun.j2me.app-descriptor',
- 'jam' => 'application/vnd.jam',
- 'jar' => 'application/java-archive',
- 'java' => 'text/x-java-source',
- 'jisp' => 'application/vnd.jisp',
- 'jlt' => 'application/vnd.hp-jlyt',
- 'jnlp' => 'application/x-java-jnlp-file',
- 'joda' => 'application/vnd.joost.joda-archive',
- 'jpe' => 'image/jpeg',
- 'jpeg' => 'image/jpeg',
- 'jpg' => 'image/jpeg',
- 'jpgm' => 'video/jpm',
- 'jpgv' => 'video/jpeg',
- 'jpm' => 'video/jpm',
- 'js' => 'text/javascript',
- 'json' => 'application/json',
- 'kar' => 'audio/midi',
- 'karbon' => 'application/vnd.kde.karbon',
- 'kfo' => 'application/vnd.kde.kformula',
- 'kia' => 'application/vnd.kidspiration',
- 'kml' => 'application/vnd.google-earth.kml+xml',
- 'kmz' => 'application/vnd.google-earth.kmz',
- 'kne' => 'application/vnd.kinar',
- 'knp' => 'application/vnd.kinar',
- 'kon' => 'application/vnd.kde.kontour',
- 'kpr' => 'application/vnd.kde.kpresenter',
- 'kpt' => 'application/vnd.kde.kpresenter',
- 'ksp' => 'application/vnd.kde.kspread',
- 'ktr' => 'application/vnd.kahootz',
- 'ktx' => 'image/ktx',
- 'ktz' => 'application/vnd.kahootz',
- 'kwd' => 'application/vnd.kde.kword',
- 'kwt' => 'application/vnd.kde.kword',
- 'lasxml' => 'application/vnd.las.las+xml',
- 'latex' => 'application/x-latex',
- 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop',
- 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',
- 'les' => 'application/vnd.hhe.lesson-player',
- 'lha' => 'application/octet-stream',
- 'link66' => 'application/vnd.route66.link66+xml',
- 'list' => 'text/plain',
- 'list3820' => 'application/vnd.ibm.modcap',
- 'listafp' => 'application/vnd.ibm.modcap',
- 'log' => 'text/plain',
- 'lostxml' => 'application/lost+xml',
- 'lrf' => 'application/octet-stream',
- 'lrm' => 'application/vnd.ms-lrm',
- 'ltf' => 'application/vnd.frogans.ltf',
- 'lvp' => 'audio/vnd.lucent.voice',
- 'lwp' => 'application/vnd.lotus-wordpro',
- 'lzh' => 'application/octet-stream',
- 'm13' => 'application/x-msmediaview',
- 'm14' => 'application/x-msmediaview',
- 'm1v' => 'video/mpeg',
- 'm21' => 'application/mp21',
- 'm2a' => 'audio/mpeg',
- 'm2v' => 'video/mpeg',
- 'm3a' => 'audio/mpeg',
- 'm3u' => 'audio/x-mpegurl',
- 'm3u8' => 'application/vnd.apple.mpegurl',
- 'm4a' => 'audio/mp4',
- 'm4u' => 'video/vnd.mpegurl',
- 'm4v' => 'video/mp4',
- 'ma' => 'application/mathematica',
- 'mads' => 'application/mads+xml',
- 'mag' => 'application/vnd.ecowin.chart',
- 'maker' => 'application/vnd.framemaker',
- 'man' => 'text/troff',
- 'mathml' => 'application/mathml+xml',
- 'mb' => 'application/mathematica',
- 'mbk' => 'application/vnd.mobius.mbk',
- 'mbox' => 'application/mbox',
- 'mc1' => 'application/vnd.medcalcdata',
- 'mcd' => 'application/vnd.mcd',
- 'mcurl' => 'text/vnd.curl.mcurl',
- 'mdb' => 'application/x-msaccess',
- 'mdi' => 'image/vnd.ms-modi',
- 'me' => 'text/troff',
- 'mesh' => 'model/mesh',
- 'meta4' => 'application/metalink4+xml',
- 'mets' => 'application/mets+xml',
- 'mfm' => 'application/vnd.mfmp',
- 'mgp' => 'application/vnd.osgeo.mapguide.package',
- 'mgz' => 'application/vnd.proteus.magazine',
- 'mid' => 'audio/midi',
- 'midi' => 'audio/midi',
- 'mif' => 'application/vnd.mif',
- 'mime' => 'message/rfc822',
- 'mj2' => 'video/mj2',
- 'mjp2' => 'video/mj2',
- 'mlp' => 'application/vnd.dolby.mlp',
- 'mmd' => 'application/vnd.chipnuts.karaoke-mmd',
- 'mmf' => 'application/vnd.smaf',
- 'mmr' => 'image/vnd.fujixerox.edmics-mmr',
- 'mny' => 'application/x-msmoney',
- 'mobi' => 'application/x-mobipocket-ebook',
- 'mods' => 'application/mods+xml',
- 'mov' => 'video/quicktime',
- 'movie' => 'video/x-sgi-movie',
- 'mp2' => 'audio/mpeg',
- 'mp21' => 'application/mp21',
- 'mp2a' => 'audio/mpeg',
- 'mp3' => 'audio/mpeg',
- 'mp4' => 'video/mp4',
- 'mp4a' => 'audio/mp4',
- 'mp4s' => 'application/mp4',
- 'mp4v' => 'video/mp4',
- 'mpc' => 'application/vnd.mophun.certificate',
- 'mpe' => 'video/mpeg',
- 'mpeg' => 'video/mpeg',
- 'mpg' => 'video/mpeg',
- 'mpg4' => 'video/mp4',
- 'mpga' => 'audio/mpeg',
- 'mpkg' => 'application/vnd.apple.installer+xml',
- 'mpm' => 'application/vnd.blueice.multipass',
- 'mpn' => 'application/vnd.mophun.application',
- 'mpp' => 'application/vnd.ms-project',
- 'mpt' => 'application/vnd.ms-project',
- 'mpy' => 'application/vnd.ibm.minipay',
- 'mqy' => 'application/vnd.mobius.mqy',
- 'mrc' => 'application/marc',
- 'mrcx' => 'application/marcxml+xml',
- 'ms' => 'text/troff',
- 'mscml' => 'application/mediaservercontrol+xml',
- 'mseed' => 'application/vnd.fdsn.mseed',
- 'mseq' => 'application/vnd.mseq',
- 'msf' => 'application/vnd.epson.msf',
- 'msh' => 'model/mesh',
- 'msi' => 'application/x-msdownload',
- 'msl' => 'application/vnd.mobius.msl',
- 'msty' => 'application/vnd.muvee.style',
- 'mts' => 'model/vnd.mts',
- 'mus' => 'application/vnd.musician',
- 'musicxml' => 'application/vnd.recordare.musicxml+xml',
- 'mvb' => 'application/x-msmediaview',
- 'mwf' => 'application/vnd.mfer',
- 'mxf' => 'application/mxf',
- 'mxl' => 'application/vnd.recordare.musicxml',
- 'mxml' => 'application/xv+xml',
- 'mxs' => 'application/vnd.triscape.mxs',
- 'mxu' => 'video/vnd.mpegurl',
- 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install',
- 'n3' => 'text/n3',
- 'nb' => 'application/mathematica',
- 'nbp' => 'application/vnd.wolfram.player',
- 'nc' => 'application/x-netcdf',
- 'ncx' => 'application/x-dtbncx+xml',
- 'ngdat' => 'application/vnd.nokia.n-gage.data',
- 'nlu' => 'application/vnd.neurolanguage.nlu',
- 'nml' => 'application/vnd.enliven',
- 'nnd' => 'application/vnd.noblenet-directory',
- 'nns' => 'application/vnd.noblenet-sealer',
- 'nnw' => 'application/vnd.noblenet-web',
- 'npx' => 'image/vnd.net-fpx',
- 'nsf' => 'application/vnd.lotus-notes',
- 'oa2' => 'application/vnd.fujitsu.oasys2',
- 'oa3' => 'application/vnd.fujitsu.oasys3',
- 'oas' => 'application/vnd.fujitsu.oasys',
- 'obd' => 'application/x-msbinder',
- 'oda' => 'application/oda',
- 'odb' => 'application/vnd.oasis.opendocument.database',
- 'odc' => 'application/vnd.oasis.opendocument.chart',
- 'odf' => 'application/vnd.oasis.opendocument.formula',
- 'odft' => 'application/vnd.oasis.opendocument.formula-template',
- 'odg' => 'application/vnd.oasis.opendocument.graphics',
- 'odi' => 'application/vnd.oasis.opendocument.image',
- 'odm' => 'application/vnd.oasis.opendocument.text-master',
- 'odp' => 'application/vnd.oasis.opendocument.presentation',
- 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
- 'odt' => 'application/vnd.oasis.opendocument.text',
- 'oga' => 'audio/ogg',
- 'ogg' => 'audio/ogg',
- 'ogv' => 'video/ogg',
- 'ogx' => 'application/ogg',
- 'onepkg' => 'application/onenote',
- 'onetmp' => 'application/onenote',
- 'onetoc' => 'application/onenote',
- 'onetoc2' => 'application/onenote',
- 'opf' => 'application/oebps-package+xml',
- 'oprc' => 'application/vnd.palm',
- 'org' => 'application/vnd.lotus-organizer',
- 'osf' => 'application/vnd.yamaha.openscoreformat',
- 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml',
- 'otc' => 'application/vnd.oasis.opendocument.chart-template',
- 'otf' => 'application/x-font-otf',
- 'otg' => 'application/vnd.oasis.opendocument.graphics-template',
- 'oth' => 'application/vnd.oasis.opendocument.text-web',
- 'oti' => 'application/vnd.oasis.opendocument.image-template',
- 'otp' => 'application/vnd.oasis.opendocument.presentation-template',
- 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
- 'ott' => 'application/vnd.oasis.opendocument.text-template',
- 'oxt' => 'application/vnd.openofficeorg.extension',
- 'p' => 'text/x-pascal',
- 'p10' => 'application/pkcs10',
- 'p12' => 'application/x-pkcs12',
- 'p7b' => 'application/x-pkcs7-certificates',
- 'p7c' => 'application/pkcs7-mime',
- 'p7m' => 'application/pkcs7-mime',
- 'p7r' => 'application/x-pkcs7-certreqresp',
- 'p7s' => 'application/pkcs7-signature',
- 'p8' => 'application/pkcs8',
- 'pas' => 'text/x-pascal',
- 'paw' => 'application/vnd.pawaafile',
- 'pbd' => 'application/vnd.powerbuilder6',
- 'pbm' => 'image/x-portable-bitmap',
- 'pcf' => 'application/x-font-pcf',
- 'pcl' => 'application/vnd.hp-pcl',
- 'pclxl' => 'application/vnd.hp-pclxl',
- 'pct' => 'image/x-pict',
- 'pcurl' => 'application/vnd.curl.pcurl',
- 'pcx' => 'image/x-pcx',
- 'pdb' => 'application/vnd.palm',
- 'pdf' => 'application/pdf',
- 'pfa' => 'application/x-font-type1',
- 'pfb' => 'application/x-font-type1',
- 'pfm' => 'application/x-font-type1',
- 'pfr' => 'application/font-tdpfr',
- 'pfx' => 'application/x-pkcs12',
- 'pgm' => 'image/x-portable-graymap',
- 'pgn' => 'application/x-chess-pgn',
- 'pgp' => 'application/pgp-encrypted',
- 'php' => 'text/x-php',
- 'phps' => 'application/x-httpd-phps',
- 'pic' => 'image/x-pict',
- 'pkg' => 'application/octet-stream',
- 'pki' => 'application/pkixcmp',
- 'pkipath' => 'application/pkix-pkipath',
- 'plb' => 'application/vnd.3gpp.pic-bw-large',
- 'plc' => 'application/vnd.mobius.plc',
- 'plf' => 'application/vnd.pocketlearn',
- 'pls' => 'application/pls+xml',
- 'pml' => 'application/vnd.ctc-posml',
- 'png' => 'image/png',
- 'pnm' => 'image/x-portable-anymap',
- 'portpkg' => 'application/vnd.macports.portpkg',
- 'pot' => 'application/vnd.ms-powerpoint',
- 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12',
- 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
- 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12',
- 'ppd' => 'application/vnd.cups-ppd',
- 'ppm' => 'image/x-portable-pixmap',
- 'pps' => 'application/vnd.ms-powerpoint',
- 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
- 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
- 'ppt' => 'application/vnd.ms-powerpoint',
- 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
- 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
- 'pqa' => 'application/vnd.palm',
- 'prc' => 'application/x-mobipocket-ebook',
- 'pre' => 'application/vnd.lotus-freelance',
- 'prf' => 'application/pics-rules',
- 'ps' => 'application/postscript',
- 'psb' => 'application/vnd.3gpp.pic-bw-small',
- 'psd' => 'image/vnd.adobe.photoshop',
- 'psf' => 'application/x-font-linux-psf',
- 'pskcxml' => 'application/pskc+xml',
- 'ptid' => 'application/vnd.pvi.ptid1',
- 'pub' => 'application/x-mspublisher',
- 'pvb' => 'application/vnd.3gpp.pic-bw-var',
- 'pwn' => 'application/vnd.3m.post-it-notes',
- 'pya' => 'audio/vnd.ms-playready.media.pya',
- 'pyv' => 'video/vnd.ms-playready.media.pyv',
- 'qam' => 'application/vnd.epson.quickanime',
- 'qbo' => 'application/vnd.intu.qbo',
- 'qfx' => 'application/vnd.intu.qfx',
- 'qps' => 'application/vnd.publishare-delta-tree',
- 'qt' => 'video/quicktime',
- 'qwd' => 'application/vnd.quark.quarkxpress',
- 'qwt' => 'application/vnd.quark.quarkxpress',
- 'qxb' => 'application/vnd.quark.quarkxpress',
- 'qxd' => 'application/vnd.quark.quarkxpress',
- 'qxl' => 'application/vnd.quark.quarkxpress',
- 'qxt' => 'application/vnd.quark.quarkxpress',
- 'ra' => 'audio/x-pn-realaudio',
- 'ram' => 'audio/x-pn-realaudio',
- 'rar' => 'application/x-rar-compressed',
- 'ras' => 'image/x-cmu-raster',
- 'rb' => 'text/plain',
- 'rcprofile' => 'application/vnd.ipunplugged.rcprofile',
- 'rdf' => 'application/rdf+xml',
- 'rdz' => 'application/vnd.data-vision.rdz',
- 'rep' => 'application/vnd.businessobjects',
- 'res' => 'application/x-dtbresource+xml',
- 'resx' => 'text/xml',
- 'rgb' => 'image/x-rgb',
- 'rif' => 'application/reginfo+xml',
- 'rip' => 'audio/vnd.rip',
- 'rl' => 'application/resource-lists+xml',
- 'rlc' => 'image/vnd.fujixerox.edmics-rlc',
- 'rld' => 'application/resource-lists-diff+xml',
- 'rm' => 'application/vnd.rn-realmedia',
- 'rmi' => 'audio/midi',
- 'rmp' => 'audio/x-pn-realaudio-plugin',
- 'rms' => 'application/vnd.jcp.javame.midlet-rms',
- 'rnc' => 'application/relax-ng-compact-syntax',
- 'roff' => 'text/troff',
- 'rp9' => 'application/vnd.cloanto.rp9',
- 'rpss' => 'application/vnd.nokia.radio-presets',
- 'rpst' => 'application/vnd.nokia.radio-preset',
- 'rq' => 'application/sparql-query',
- 'rs' => 'application/rls-services+xml',
- 'rsd' => 'application/rsd+xml',
- 'rss' => 'application/rss+xml',
- 'rtf' => 'application/rtf',
- 'rtx' => 'text/richtext',
- 's' => 'text/x-asm',
- 'saf' => 'application/vnd.yamaha.smaf-audio',
- 'sbml' => 'application/sbml+xml',
- 'sc' => 'application/vnd.ibm.secure-container',
- 'scd' => 'application/x-msschedule',
- 'scm' => 'application/vnd.lotus-screencam',
- 'scq' => 'application/scvp-cv-request',
- 'scs' => 'application/scvp-cv-response',
- 'scurl' => 'text/vnd.curl.scurl',
- 'sda' => 'application/vnd.stardivision.draw',
- 'sdc' => 'application/vnd.stardivision.calc',
- 'sdd' => 'application/vnd.stardivision.impress',
- 'sdkd' => 'application/vnd.solent.sdkm+xml',
- 'sdkm' => 'application/vnd.solent.sdkm+xml',
- 'sdp' => 'application/sdp',
- 'sdw' => 'application/vnd.stardivision.writer',
- 'see' => 'application/vnd.seemail',
- 'seed' => 'application/vnd.fdsn.seed',
- 'sema' => 'application/vnd.sema',
- 'semd' => 'application/vnd.semd',
- 'semf' => 'application/vnd.semf',
- 'ser' => 'application/java-serialized-object',
- 'setpay' => 'application/set-payment-initiation',
- 'setreg' => 'application/set-registration-initiation',
- 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data',
- 'sfs' => 'application/vnd.spotfire.sfs',
- 'sgl' => 'application/vnd.stardivision.writer-global',
- 'sgm' => 'text/sgml',
- 'sgml' => 'text/sgml',
- 'sh' => 'application/x-sh',
- 'shar' => 'application/x-shar',
- 'shf' => 'application/shf+xml',
- 'sig' => 'application/pgp-signature',
- 'silo' => 'model/mesh',
- 'sis' => 'application/vnd.symbian.install',
- 'sisx' => 'application/vnd.symbian.install',
- 'sit' => 'application/x-stuffit',
- 'sitx' => 'application/x-stuffitx',
- 'skd' => 'application/vnd.koan',
- 'skm' => 'application/vnd.koan',
- 'skp' => 'application/vnd.koan',
- 'skt' => 'application/vnd.koan',
- 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12',
- 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
- 'slt' => 'application/vnd.epson.salt',
- 'sm' => 'application/vnd.stepmania.stepchart',
- 'smf' => 'application/vnd.stardivision.math',
- 'smi' => 'application/smil+xml',
- 'smil' => 'application/smil+xml',
- 'snd' => 'audio/basic',
- 'snf' => 'application/x-font-snf',
- 'so' => 'application/octet-stream',
- 'spc' => 'application/x-pkcs7-certificates',
- 'spf' => 'application/vnd.yamaha.smaf-phrase',
- 'spl' => 'application/x-futuresplash',
- 'spot' => 'text/vnd.in3d.spot',
- 'spp' => 'application/scvp-vp-response',
- 'spq' => 'application/scvp-vp-request',
- 'spx' => 'audio/ogg',
- 'src' => 'application/x-wais-source',
- 'sru' => 'application/sru+xml',
- 'srx' => 'application/sparql-results+xml',
- 'sse' => 'application/vnd.kodak-descriptor',
- 'ssf' => 'application/vnd.epson.ssf',
- 'ssml' => 'application/ssml+xml',
- 'st' => 'application/vnd.sailingtracker.track',
- 'stc' => 'application/vnd.sun.xml.calc.template',
- 'std' => 'application/vnd.sun.xml.draw.template',
- 'stf' => 'application/vnd.wt.stf',
- 'sti' => 'application/vnd.sun.xml.impress.template',
- 'stk' => 'application/hyperstudio',
- 'stl' => 'application/vnd.ms-pki.stl',
- 'str' => 'application/vnd.pg.format',
- 'stw' => 'application/vnd.sun.xml.writer.template',
- 'sub' => 'image/vnd.dvb.subtitle',
- 'sus' => 'application/vnd.sus-calendar',
- 'susp' => 'application/vnd.sus-calendar',
- 'sv4cpio' => 'application/x-sv4cpio',
- 'sv4crc' => 'application/x-sv4crc',
- 'svc' => 'application/vnd.dvb.service',
- 'svd' => 'application/vnd.svd',
- 'svg' => 'image/svg+xml',
- 'svgz' => 'image/svg+xml',
- 'swa' => 'application/x-director',
- 'swf' => 'application/x-shockwave-flash',
- 'swi' => 'application/vnd.aristanetworks.swi',
- 'sxc' => 'application/vnd.sun.xml.calc',
- 'sxd' => 'application/vnd.sun.xml.draw',
- 'sxg' => 'application/vnd.sun.xml.writer.global',
- 'sxi' => 'application/vnd.sun.xml.impress',
- 'sxm' => 'application/vnd.sun.xml.math',
- 'sxw' => 'application/vnd.sun.xml.writer',
- 't' => 'text/troff',
- 'tao' => 'application/vnd.tao.intent-module-archive',
- 'tar' => 'application/x-tar',
- 'tcap' => 'application/vnd.3gpp2.tcap',
- 'tcl' => 'application/x-tcl',
- 'teacher' => 'application/vnd.smart.teacher',
- 'tei' => 'application/tei+xml',
- 'teicorpus' => 'application/tei+xml',
- 'tex' => 'application/x-tex',
- 'texi' => 'application/x-texinfo',
- 'texinfo' => 'application/x-texinfo',
- 'text' => 'text/plain',
- 'tfi' => 'application/thraud+xml',
- 'tfm' => 'application/x-tex-tfm',
- 'thmx' => 'application/vnd.ms-officetheme',
- 'tif' => 'image/tiff',
- 'tiff' => 'image/tiff',
- 'tmo' => 'application/vnd.tmobile-livetv',
- 'torrent' => 'application/x-bittorrent',
- 'tpl' => 'application/vnd.groove-tool-template',
- 'tpt' => 'application/vnd.trid.tpt',
- 'tr' => 'text/troff',
- 'tra' => 'application/vnd.trueapp',
- 'trm' => 'application/x-msterminal',
- 'tsd' => 'application/timestamped-data',
- 'tsv' => 'text/tab-separated-values',
- 'ttc' => 'application/x-font-ttf',
- 'ttf' => 'application/x-font-ttf',
- 'ttl' => 'text/turtle',
- 'twd' => 'application/vnd.simtech-mindmapper',
- 'twds' => 'application/vnd.simtech-mindmapper',
- 'txd' => 'application/vnd.genomatix.tuxedo',
- 'txf' => 'application/vnd.mobius.txf',
- 'txt' => 'text/plain',
- 'u32' => 'application/x-authorware-bin',
- 'udeb' => 'application/x-debian-package',
- 'ufd' => 'application/vnd.ufdl',
- 'ufdl' => 'application/vnd.ufdl',
- 'umj' => 'application/vnd.umajin',
- 'unityweb' => 'application/vnd.unity',
- 'uoml' => 'application/vnd.uoml+xml',
- 'uri' => 'text/uri-list',
- 'uris' => 'text/uri-list',
- 'urls' => 'text/uri-list',
- 'ustar' => 'application/x-ustar',
- 'utz' => 'application/vnd.uiq.theme',
- 'uu' => 'text/x-uuencode',
- 'uva' => 'audio/vnd.dece.audio',
- 'uvd' => 'application/vnd.dece.data',
- 'uvf' => 'application/vnd.dece.data',
- 'uvg' => 'image/vnd.dece.graphic',
- 'uvh' => 'video/vnd.dece.hd',
- 'uvi' => 'image/vnd.dece.graphic',
- 'uvm' => 'video/vnd.dece.mobile',
- 'uvp' => 'video/vnd.dece.pd',
- 'uvs' => 'video/vnd.dece.sd',
- 'uvt' => 'application/vnd.dece.ttml+xml',
- 'uvu' => 'video/vnd.uvvu.mp4',
- 'uvv' => 'video/vnd.dece.video',
- 'uvva' => 'audio/vnd.dece.audio',
- 'uvvd' => 'application/vnd.dece.data',
- 'uvvf' => 'application/vnd.dece.data',
- 'uvvg' => 'image/vnd.dece.graphic',
- 'uvvh' => 'video/vnd.dece.hd',
- 'uvvi' => 'image/vnd.dece.graphic',
- 'uvvm' => 'video/vnd.dece.mobile',
- 'uvvp' => 'video/vnd.dece.pd',
- 'uvvs' => 'video/vnd.dece.sd',
- 'uvvt' => 'application/vnd.dece.ttml+xml',
- 'uvvu' => 'video/vnd.uvvu.mp4',
- 'uvvv' => 'video/vnd.dece.video',
- 'uvvx' => 'application/vnd.dece.unspecified',
- 'uvx' => 'application/vnd.dece.unspecified',
- 'vcd' => 'application/x-cdlink',
- 'vcf' => 'text/x-vcard',
- 'vcg' => 'application/vnd.groove-vcard',
- 'vcs' => 'text/x-vcalendar',
- 'vcx' => 'application/vnd.vcx',
- 'vis' => 'application/vnd.visionary',
- 'viv' => 'video/vnd.vivo',
- 'vor' => 'application/vnd.stardivision.writer',
- 'vox' => 'application/x-authorware-bin',
- 'vrml' => 'model/vrml',
- 'vsd' => 'application/vnd.visio',
- 'vsf' => 'application/vnd.vsf',
- 'vss' => 'application/vnd.visio',
- 'vst' => 'application/vnd.visio',
- 'vsw' => 'application/vnd.visio',
- 'vtu' => 'model/vnd.vtu',
- 'vxml' => 'application/voicexml+xml',
- 'w3d' => 'application/x-director',
- 'wad' => 'application/x-doom',
- 'wav' => 'audio/x-wav',
- 'wax' => 'audio/x-ms-wax',
- 'wbmp' => 'image/vnd.wap.wbmp',
- 'wbs' => 'application/vnd.criticaltools.wbs+xml',
- 'wbxml' => 'application/vnd.wap.wbxml',
- 'wcm' => 'application/vnd.ms-works',
- 'wdb' => 'application/vnd.ms-works',
- 'weba' => 'audio/webm',
- 'webm' => 'video/webm',
- 'webp' => 'image/webp',
- 'wg' => 'application/vnd.pmi.widget',
- 'wgt' => 'application/widget',
- 'wks' => 'application/vnd.ms-works',
- 'wm' => 'video/x-ms-wm',
- 'wma' => 'audio/x-ms-wma',
- 'wmd' => 'application/x-ms-wmd',
- 'wmf' => 'application/x-msmetafile',
- 'wml' => 'text/vnd.wap.wml',
- 'wmlc' => 'application/vnd.wap.wmlc',
- 'wmls' => 'text/vnd.wap.wmlscript',
- 'wmlsc' => 'application/vnd.wap.wmlscriptc',
- 'wmv' => 'video/x-ms-wmv',
- 'wmx' => 'video/x-ms-wmx',
- 'wmz' => 'application/x-ms-wmz',
- 'woff' => 'application/x-font-woff',
- 'wpd' => 'application/vnd.wordperfect',
- 'wpl' => 'application/vnd.ms-wpl',
- 'wps' => 'application/vnd.ms-works',
- 'wqd' => 'application/vnd.wqd',
- 'wri' => 'application/x-mswrite',
- 'wrl' => 'model/vrml',
- 'wsdl' => 'application/wsdl+xml',
- 'wspolicy' => 'application/wspolicy+xml',
- 'wtb' => 'application/vnd.webturbo',
- 'wvx' => 'video/x-ms-wvx',
- 'x32' => 'application/x-authorware-bin',
- 'x3d' => 'application/vnd.hzn-3d-crossword',
- 'xap' => 'application/x-silverlight-app',
- 'xar' => 'application/vnd.xara',
- 'xbap' => 'application/x-ms-xbap',
- 'xbd' => 'application/vnd.fujixerox.docuworks.binder',
- 'xbm' => 'image/x-xbitmap',
- 'xdf' => 'application/xcap-diff+xml',
- 'xdm' => 'application/vnd.syncml.dm+xml',
- 'xdp' => 'application/vnd.adobe.xdp+xml',
- 'xdssc' => 'application/dssc+xml',
- 'xdw' => 'application/vnd.fujixerox.docuworks',
- 'xenc' => 'application/xenc+xml',
- 'xer' => 'application/patch-ops-error+xml',
- 'xfdf' => 'application/vnd.adobe.xfdf',
- 'xfdl' => 'application/vnd.xfdl',
- 'xht' => 'application/xhtml+xml',
- 'xhtml' => 'application/xhtml+xml',
- 'xhvml' => 'application/xv+xml',
- 'xif' => 'image/vnd.xiff',
- 'xla' => 'application/vnd.ms-excel',
- 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12',
- 'xlc' => 'application/vnd.ms-excel',
- 'xlm' => 'application/vnd.ms-excel',
- 'xls' => 'application/vnd.ms-excel',
- 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
- 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12',
- 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
- 'xlt' => 'application/vnd.ms-excel',
- 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12',
- 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
- 'xlw' => 'application/vnd.ms-excel',
- 'xml' => 'application/xml',
- 'xo' => 'application/vnd.olpc-sugar',
- 'xop' => 'application/xop+xml',
- 'xpi' => 'application/x-xpinstall',
- 'xpm' => 'image/x-xpixmap',
- 'xpr' => 'application/vnd.is-xpr',
- 'xps' => 'application/vnd.ms-xpsdocument',
- 'xpw' => 'application/vnd.intercon.formnet',
- 'xpx' => 'application/vnd.intercon.formnet',
- 'xsl' => 'application/xml',
- 'xslt' => 'application/xslt+xml',
- 'xsm' => 'application/vnd.syncml+xml',
- 'xspf' => 'application/xspf+xml',
- 'xul' => 'application/vnd.mozilla.xul+xml',
- 'xvm' => 'application/xv+xml',
- 'xvml' => 'application/xv+xml',
- 'xwd' => 'image/x-xwindowdump',
- 'xyz' => 'chemical/x-xyz',
- 'yaml' => 'text/yaml',
- 'yang' => 'application/yang',
- 'yin' => 'application/yin+xml',
- 'yml' => 'text/yaml',
- 'zaz' => 'application/vnd.zzazz.deck+xml',
- 'zip' => 'application/zip',
- 'zir' => 'application/vnd.zul',
- 'zirz' => 'application/vnd.zul',
- 'zmm' => 'application/vnd.handheld-entertainment+xml'
- );
-
- /**
- * Get a singleton instance of the class
- *
- * @return self
- * @codeCoverageIgnore
- */
- public static function getInstance()
- {
- if (!self::$instance) {
- self::$instance = new self();
- }
-
- return self::$instance;
- }
-
- /**
- * Get a mimetype value from a file extension
- *
- * @param string $extension File extension
- *
- * @return string|null
- *
- */
- public function fromExtension($extension)
- {
- $extension = strtolower($extension);
-
- return isset($this->mimetypes[$extension]) ? $this->mimetypes[$extension] : null;
- }
-
- /**
- * Get a mimetype from a filename
- *
- * @param string $filename Filename to generate a mimetype from
- *
- * @return string|null
- */
- public function fromFilename($filename)
- {
- return $this->fromExtension(pathinfo($filename, PATHINFO_EXTENSION));
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/CommaAggregator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/CommaAggregator.php
deleted file mode 100644
index 4b4e49d0520..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/CommaAggregator.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Guzzle\Http\QueryAggregator;
-
-use Guzzle\Http\QueryString;
-
-/**
- * Aggregates nested query string variables using commas
- */
-class CommaAggregator implements QueryAggregatorInterface
-{
- public function aggregate($key, $value, QueryString $query)
- {
- if ($query->isUrlEncoding()) {
- return array($query->encodeValue($key) => implode(',', array_map(array($query, 'encodeValue'), $value)));
- } else {
- return array($key => implode(',', $value));
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/DuplicateAggregator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/DuplicateAggregator.php
deleted file mode 100644
index 1bf1730e4e6..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/DuplicateAggregator.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Guzzle\Http\QueryAggregator;
-
-use Guzzle\Http\QueryString;
-
-/**
- * Does not aggregate nested query string values and allows duplicates in the resulting array
- *
- * Example: http://test.com?q=1&q=2
- */
-class DuplicateAggregator implements QueryAggregatorInterface
-{
- public function aggregate($key, $value, QueryString $query)
- {
- if ($query->isUrlEncoding()) {
- return array($query->encodeValue($key) => array_map(array($query, 'encodeValue'), $value));
- } else {
- return array($key => $value);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/PhpAggregator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/PhpAggregator.php
deleted file mode 100644
index 133ea2bd962..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/PhpAggregator.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Guzzle\Http\QueryAggregator;
-
-use Guzzle\Http\QueryString;
-
-/**
- * Aggregates nested query string variables using PHP style []
- */
-class PhpAggregator implements QueryAggregatorInterface
-{
- public function aggregate($key, $value, QueryString $query)
- {
- $ret = array();
-
- foreach ($value as $k => $v) {
- $k = "{$key}[{$k}]";
- if (is_array($v)) {
- $ret = array_merge($ret, self::aggregate($k, $v, $query));
- } else {
- $ret[$query->encodeValue($k)] = $query->encodeValue($v);
- }
- }
-
- return $ret;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php
deleted file mode 100644
index 72bee620c82..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Guzzle\Http\QueryAggregator;
-
-use Guzzle\Http\QueryString;
-
-/**
- * Interface used for aggregating nested query string variables into a flattened array of key value pairs
- */
-interface QueryAggregatorInterface
-{
- /**
- * Aggregate multi-valued parameters into a flattened associative array
- *
- * @param string $key The name of the query string parameter
- * @param array $value The values of the parameter
- * @param QueryString $query The query string that is being aggregated
- *
- * @return array Returns an array of the combined values
- */
- public function aggregate($key, $value, QueryString $query);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryString.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryString.php
deleted file mode 100644
index 38a26407382..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/QueryString.php
+++ /dev/null
@@ -1,297 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\Collection;
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Http\QueryAggregator\DuplicateAggregator;
-use Guzzle\Http\QueryAggregator\QueryAggregatorInterface;
-use Guzzle\Http\QueryAggregator\PhpAggregator;
-
-/**
- * Query string object to handle managing query string parameters and aggregating those parameters together as a string.
- */
-class QueryString extends Collection
-{
- /** @var string Used to URL encode with rawurlencode */
- const RFC_3986 = 'RFC 3986';
-
- /** @var string Used to encode with urlencode */
- const FORM_URLENCODED = 'application/x-www-form-urlencoded';
-
- /** @var string Constant used to create blank query string values (e.g. ?foo) */
- const BLANK = "_guzzle_blank_";
-
- /** @var string The query string field separator (e.g. '&') */
- protected $fieldSeparator = '&';
-
- /** @var string The query string value separator (e.g. '=') */
- protected $valueSeparator = '=';
-
- /** @var bool URL encode fields and values */
- protected $urlEncode = 'RFC 3986';
-
- /** @var QueryAggregatorInterface */
- protected $aggregator;
-
- /** @var array Cached PHP aggregator */
- private static $defaultAggregator = null;
-
- /**
- * Parse a query string into a QueryString object
- *
- * @param string $query Query string to parse
- *
- * @return self
- */
- public static function fromString($query)
- {
- $q = new static();
- if ($query === '') {
- return $q;
- }
-
- $foundDuplicates = $foundPhpStyle = false;
-
- foreach (explode('&', $query) as $kvp) {
- $parts = explode('=', $kvp, 2);
- $key = rawurldecode($parts[0]);
- if ($paramIsPhpStyleArray = substr($key, -2) == '[]') {
- $foundPhpStyle = true;
- $key = substr($key, 0, -2);
- }
- if (isset($parts[1])) {
- $value = rawurldecode(str_replace('+', '%20', $parts[1]));
- if (isset($q[$key])) {
- $q->add($key, $value);
- $foundDuplicates = true;
- } elseif ($paramIsPhpStyleArray) {
- $q[$key] = array($value);
- } else {
- $q[$key] = $value;
- }
- } else {
- // Uses false by default to represent keys with no trailing "=" sign.
- $q->add($key, false);
- }
- }
-
- // Use the duplicate aggregator if duplicates were found and not using PHP style arrays
- if ($foundDuplicates && !$foundPhpStyle) {
- $q->setAggregator(new DuplicateAggregator());
- }
-
- return $q;
- }
-
- /**
- * Convert the query string parameters to a query string string
- *
- * @return string
- * @throws RuntimeException
- */
- public function __toString()
- {
- if (!$this->data) {
- return '';
- }
-
- $queryList = array();
- foreach ($this->prepareData($this->data) as $name => $value) {
- $queryList[] = $this->convertKvp($name, $value);
- }
-
- return implode($this->fieldSeparator, $queryList);
- }
-
- /**
- * Get the query string field separator
- *
- * @return string
- */
- public function getFieldSeparator()
- {
- return $this->fieldSeparator;
- }
-
- /**
- * Get the query string value separator
- *
- * @return string
- */
- public function getValueSeparator()
- {
- return $this->valueSeparator;
- }
-
- /**
- * Returns the type of URL encoding used by the query string
- *
- * One of: false, "RFC 3986", or "application/x-www-form-urlencoded"
- *
- * @return bool|string
- */
- public function getUrlEncoding()
- {
- return $this->urlEncode;
- }
-
- /**
- * Returns true or false if using URL encoding
- *
- * @return bool
- */
- public function isUrlEncoding()
- {
- return $this->urlEncode !== false;
- }
-
- /**
- * Provide a function for combining multi-valued query string parameters into a single or multiple fields
- *
- * @param null|QueryAggregatorInterface $aggregator Pass in a QueryAggregatorInterface object to handle converting
- * deeply nested query string variables into a flattened array.
- * Pass null to use the default PHP style aggregator. For legacy
- * reasons, this function accepts a callable that must accepts a
- * $key, $value, and query object.
- * @return self
- * @see \Guzzle\Http\QueryString::aggregateUsingComma()
- */
- public function setAggregator(QueryAggregatorInterface $aggregator = null)
- {
- // Use the default aggregator if none was set
- if (!$aggregator) {
- if (!self::$defaultAggregator) {
- self::$defaultAggregator = new PhpAggregator();
- }
- $aggregator = self::$defaultAggregator;
- }
-
- $this->aggregator = $aggregator;
-
- return $this;
- }
-
- /**
- * Set whether or not field names and values should be rawurlencoded
- *
- * @param bool|string $encode Set to TRUE to use RFC 3986 encoding (rawurlencode), false to disable encoding, or
- * form_urlencoding to use application/x-www-form-urlencoded encoding (urlencode)
- * @return self
- */
- public function useUrlEncoding($encode)
- {
- $this->urlEncode = ($encode === true) ? self::RFC_3986 : $encode;
-
- return $this;
- }
-
- /**
- * Set the query string separator
- *
- * @param string $separator The query string separator that will separate fields
- *
- * @return self
- */
- public function setFieldSeparator($separator)
- {
- $this->fieldSeparator = $separator;
-
- return $this;
- }
-
- /**
- * Set the query string value separator
- *
- * @param string $separator The query string separator that will separate values from fields
- *
- * @return self
- */
- public function setValueSeparator($separator)
- {
- $this->valueSeparator = $separator;
-
- return $this;
- }
-
- /**
- * Returns an array of url encoded field names and values
- *
- * @return array
- */
- public function urlEncode()
- {
- return $this->prepareData($this->data);
- }
-
- /**
- * URL encodes a value based on the url encoding type of the query string object
- *
- * @param string $value Value to encode
- *
- * @return string
- */
- public function encodeValue($value)
- {
- if ($this->urlEncode == self::RFC_3986) {
- return rawurlencode($value);
- } elseif ($this->urlEncode == self::FORM_URLENCODED) {
- return urlencode($value);
- } else {
- return (string) $value;
- }
- }
-
- /**
- * Url encode parameter data and convert nested query strings into a flattened hash.
- *
- * @param array $data The data to encode
- *
- * @return array Returns an array of encoded values and keys
- */
- protected function prepareData(array $data)
- {
- // If no aggregator is present then set the default
- if (!$this->aggregator) {
- $this->setAggregator(null);
- }
-
- $temp = array();
- foreach ($data as $key => $value) {
- if ($value === false || $value === null) {
- // False and null will not include the "=". Use an empty string to include the "=".
- $temp[$this->encodeValue($key)] = $value;
- } elseif (is_array($value)) {
- $temp = array_merge($temp, $this->aggregator->aggregate($key, $value, $this));
- } else {
- $temp[$this->encodeValue($key)] = $this->encodeValue($value);
- }
- }
-
- return $temp;
- }
-
- /**
- * Converts a key value pair that can contain strings, nulls, false, or arrays
- * into a single string.
- *
- * @param string $name Name of the field
- * @param mixed $value Value of the field
- * @return string
- */
- private function convertKvp($name, $value)
- {
- if ($value === self::BLANK || $value === null || $value === false) {
- return $name;
- } elseif (!is_array($value)) {
- return $name . $this->valueSeparator . $value;
- }
-
- $result = '';
- foreach ($value as $v) {
- $result .= $this->convertKvp($name, $v) . $this->fieldSeparator;
- }
-
- return rtrim($result, $this->fieldSeparator);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ReadLimitEntityBody.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ReadLimitEntityBody.php
deleted file mode 100644
index a34893a661e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/ReadLimitEntityBody.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-/**
- * EntityBody decorator used to return only a subset of an entity body
- */
-class ReadLimitEntityBody extends AbstractEntityBodyDecorator
-{
- /** @var int Limit the number of bytes that can be read */
- protected $limit;
-
- /** @var int Offset to start reading from */
- protected $offset;
-
- /**
- * @param EntityBodyInterface $body Body to wrap
- * @param int $limit Total number of bytes to allow to be read from the stream
- * @param int $offset Position to seek to before reading (only works on seekable streams)
- */
- public function __construct(EntityBodyInterface $body, $limit, $offset = 0)
- {
- parent::__construct($body);
- $this->setLimit($limit)->setOffset($offset);
- }
-
- /**
- * Returns only a subset of the decorated entity body when cast as a string
- * {@inheritdoc}
- */
- public function __toString()
- {
- return substr((string) $this->body, $this->offset, $this->limit) ?: '';
- }
-
- public function isConsumed()
- {
- return $this->body->isConsumed() ||
- ($this->body->ftell() >= $this->offset + $this->limit);
- }
-
- /**
- * Returns the Content-Length of the limited subset of data
- * {@inheritdoc}
- */
- public function getContentLength()
- {
- $length = $this->body->getContentLength();
-
- return $length === false
- ? $this->limit
- : min($this->limit, min($length, $this->offset + $this->limit) - $this->offset);
- }
-
- /**
- * Allow for a bounded seek on the read limited entity body
- * {@inheritdoc}
- */
- public function seek($offset, $whence = SEEK_SET)
- {
- return $whence === SEEK_SET
- ? $this->body->seek(max($this->offset, min($this->offset + $this->limit, $offset)))
- : false;
- }
-
- /**
- * Set the offset to start limiting from
- *
- * @param int $offset Offset to seek to and begin byte limiting from
- *
- * @return self
- */
- public function setOffset($offset)
- {
- $this->body->seek($offset);
- $this->offset = $offset;
-
- return $this;
- }
-
- /**
- * Set the limit of bytes that the decorator allows to be read from the stream
- *
- * @param int $limit Total number of bytes to allow to be read from the stream
- *
- * @return self
- */
- public function setLimit($limit)
- {
- $this->limit = $limit;
-
- return $this;
- }
-
- public function read($length)
- {
- // Check if the current position is less than the total allowed bytes + original offset
- $remaining = ($this->offset + $this->limit) - $this->body->ftell();
- if ($remaining > 0) {
- // Only return the amount of requested data, ensuring that the byte limit is not exceeded
- return $this->body->read(min($remaining, $length));
- } else {
- return false;
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/RedirectPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/RedirectPlugin.php
deleted file mode 100644
index 1a824b8b76d..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/RedirectPlugin.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\Event;
-use Guzzle\Http\Exception\BadResponseException;
-use Guzzle\Http\Url;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\RequestFactory;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Exception\TooManyRedirectsException;
-use Guzzle\Http\Exception\CouldNotRewindStreamException;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Plugin to implement HTTP redirects. Can redirect like a web browser or using strict RFC 2616 compliance
- */
-class RedirectPlugin implements EventSubscriberInterface
-{
- const REDIRECT_COUNT = 'redirect.count';
- const MAX_REDIRECTS = 'redirect.max';
- const STRICT_REDIRECTS = 'redirect.strict';
- const PARENT_REQUEST = 'redirect.parent_request';
- const DISABLE = 'redirect.disable';
-
- /**
- * @var int Default number of redirects allowed when no setting is supplied by a request
- */
- protected $defaultMaxRedirects = 5;
-
- public static function getSubscribedEvents()
- {
- return array(
- 'request.sent' => array('onRequestSent', 100),
- 'request.clone' => 'cleanupRequest',
- 'request.before_send' => 'cleanupRequest'
- );
- }
-
- /**
- * Clean up the parameters of a request when it is cloned
- *
- * @param Event $event Event emitted
- */
- public function cleanupRequest(Event $event)
- {
- $params = $event['request']->getParams();
- unset($params[self::REDIRECT_COUNT]);
- unset($params[self::PARENT_REQUEST]);
- }
-
- /**
- * Called when a request receives a redirect response
- *
- * @param Event $event Event emitted
- */
- public function onRequestSent(Event $event)
- {
- $response = $event['response'];
- $request = $event['request'];
-
- // Only act on redirect requests with Location headers
- if (!$response || $request->getParams()->get(self::DISABLE)) {
- return;
- }
-
- // Trace the original request based on parameter history
- $original = $this->getOriginalRequest($request);
-
- // Terminating condition to set the effective response on the original request
- if (!$response->isRedirect() || !$response->hasHeader('Location')) {
- if ($request !== $original) {
- // This is a terminating redirect response, so set it on the original request
- $response->getParams()->set(self::REDIRECT_COUNT, $original->getParams()->get(self::REDIRECT_COUNT));
- $original->setResponse($response);
- $response->setEffectiveUrl($request->getUrl());
- }
- return;
- }
-
- $this->sendRedirectRequest($original, $request, $response);
- }
-
- /**
- * Get the original request that initiated a series of redirects
- *
- * @param RequestInterface $request Request to get the original request from
- *
- * @return RequestInterface
- */
- protected function getOriginalRequest(RequestInterface $request)
- {
- $original = $request;
- // The number of redirects is held on the original request, so determine which request that is
- while ($parent = $original->getParams()->get(self::PARENT_REQUEST)) {
- $original = $parent;
- }
-
- return $original;
- }
-
- /**
- * Create a redirect request for a specific request object
- *
- * Takes into account strict RFC compliant redirection (e.g. redirect POST with POST) vs doing what most clients do
- * (e.g. redirect POST with GET).
- *
- * @param RequestInterface $request Request being redirected
- * @param RequestInterface $original Original request
- * @param int $statusCode Status code of the redirect
- * @param string $location Location header of the redirect
- *
- * @return RequestInterface Returns a new redirect request
- * @throws CouldNotRewindStreamException If the body needs to be rewound but cannot
- */
- protected function createRedirectRequest(
- RequestInterface $request,
- $statusCode,
- $location,
- RequestInterface $original
- ) {
- $redirectRequest = null;
- $strict = $original->getParams()->get(self::STRICT_REDIRECTS);
-
- // Switch method to GET for 303 redirects. 301 and 302 redirects also switch to GET unless we are forcing RFC
- // compliance to emulate what most browsers do. NOTE: IE only switches methods on 301/302 when coming from a POST.
- if ($request instanceof EntityEnclosingRequestInterface && ($statusCode == 303 || (!$strict && $statusCode <= 302))) {
- $redirectRequest = RequestFactory::getInstance()->cloneRequestWithMethod($request, 'GET');
- } else {
- $redirectRequest = clone $request;
- }
-
- $redirectRequest->setIsRedirect(true);
- // Always use the same response body when redirecting
- $redirectRequest->setResponseBody($request->getResponseBody());
-
- $location = Url::factory($location);
- // If the location is not absolute, then combine it with the original URL
- if (!$location->isAbsolute()) {
- $originalUrl = $redirectRequest->getUrl(true);
- // Remove query string parameters and just take what is present on the redirect Location header
- $originalUrl->getQuery()->clear();
- $location = $originalUrl->combine((string) $location, true);
- }
-
- $redirectRequest->setUrl($location);
-
- // Add the parent request to the request before it sends (make sure it's before the onRequestClone event too)
- $redirectRequest->getEventDispatcher()->addListener(
- 'request.before_send',
- $func = function ($e) use (&$func, $request, $redirectRequest) {
- $redirectRequest->getEventDispatcher()->removeListener('request.before_send', $func);
- $e['request']->getParams()->set(RedirectPlugin::PARENT_REQUEST, $request);
- }
- );
-
- // Rewind the entity body of the request if needed
- if ($redirectRequest instanceof EntityEnclosingRequestInterface && $redirectRequest->getBody()) {
- $body = $redirectRequest->getBody();
- // Only rewind the body if some of it has been read already, and throw an exception if the rewind fails
- if ($body->ftell() && !$body->rewind()) {
- throw new CouldNotRewindStreamException(
- 'Unable to rewind the non-seekable entity body of the request after redirecting. cURL probably '
- . 'sent part of body before the redirect occurred. Try adding acustom rewind function using on the '
- . 'entity body of the request using setRewindFunction().'
- );
- }
- }
-
- return $redirectRequest;
- }
-
- /**
- * Prepare the request for redirection and enforce the maximum number of allowed redirects per client
- *
- * @param RequestInterface $original Original request
- * @param RequestInterface $request Request to prepare and validate
- * @param Response $response The current response
- *
- * @return RequestInterface
- */
- protected function prepareRedirection(RequestInterface $original, RequestInterface $request, Response $response)
- {
- $params = $original->getParams();
- // This is a new redirect, so increment the redirect counter
- $current = $params[self::REDIRECT_COUNT] + 1;
- $params[self::REDIRECT_COUNT] = $current;
- // Use a provided maximum value or default to a max redirect count of 5
- $max = isset($params[self::MAX_REDIRECTS]) ? $params[self::MAX_REDIRECTS] : $this->defaultMaxRedirects;
-
- // Throw an exception if the redirect count is exceeded
- if ($current > $max) {
- $this->throwTooManyRedirectsException($original, $max);
- return false;
- } else {
- // Create a redirect request based on the redirect rules set on the request
- return $this->createRedirectRequest(
- $request,
- $response->getStatusCode(),
- trim($response->getLocation()),
- $original
- );
- }
- }
-
- /**
- * Send a redirect request and handle any errors
- *
- * @param RequestInterface $original The originating request
- * @param RequestInterface $request The current request being redirected
- * @param Response $response The response of the current request
- *
- * @throws BadResponseException|\Exception
- */
- protected function sendRedirectRequest(RequestInterface $original, RequestInterface $request, Response $response)
- {
- // Validate and create a redirect request based on the original request and current response
- if ($redirectRequest = $this->prepareRedirection($original, $request, $response)) {
- try {
- $redirectRequest->send();
- } catch (BadResponseException $e) {
- $e->getResponse();
- if (!$e->getResponse()) {
- throw $e;
- }
- }
- }
- }
-
- /**
- * Throw a too many redirects exception for a request
- *
- * @param RequestInterface $original Request
- * @param int $max Max allowed redirects
- *
- * @throws TooManyRedirectsException when too many redirects have been issued
- */
- protected function throwTooManyRedirectsException(RequestInterface $original, $max)
- {
- $original->getEventDispatcher()->addListener(
- 'request.complete',
- $func = function ($e) use (&$func, $original, $max) {
- $original->getEventDispatcher()->removeListener('request.complete', $func);
- $str = "{$max} redirects were issued for this request:\n" . $e['request']->getRawHeaders();
- throw new TooManyRedirectsException($str);
- }
- );
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Resources/cacert.pem b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Resources/cacert.pem
deleted file mode 100644
index 9794dfb70f4..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Resources/cacert.pem
+++ /dev/null
@@ -1,3866 +0,0 @@
-##
-## ca-bundle.crt -- Bundle of CA Root Certificates
-##
-## Certificate data from Mozilla as of: Tue Apr 22 08:29:31 2014
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://mxr.mozilla.org/mozilla-release/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-
-
-GTE CyberTrust Global Root
-==========================
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
-Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
-A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
-MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
-Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
-IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
-sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
-HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
-AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
-M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
-NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-
-Thawte Server CA
-================
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
-AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
-b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
-BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
-c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
-A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
-ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
-/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
-1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
-GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
-GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
-Thawte Premium Server CA
-========================
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
-AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
-ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
-AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
-VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
-aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
-cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
-aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
-Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
-qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
-SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
-8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
-UCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
-TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
-WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
-Tqj/ZA1k
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
-FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
-lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
-1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
-Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-ValiCert Class 1 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
-MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
-GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
-DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
-lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
-icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
-Orf1LXLI
------END CERTIFICATE-----
-
-ValiCert Class 2 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
-CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
-ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
-SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
-UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
-W9ViH0Pd
------END CERTIFICATE-----
-
-RSA Root Certificate 1
-======================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
-3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
-BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
-3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
-V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
-on+jjBXu
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Secure Server CA
-============================
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
-cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
-ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
-A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
-eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
-dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
-aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
-gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
-ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
-CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
-dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
-NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
-HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
-BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
-Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
-n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
-KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
-T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
-J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
-nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
-bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
-b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
-PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
-qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
-hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
-BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
-MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
-I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
-NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 1
-=============================
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
-LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
-ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
-IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
-1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
-IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
-MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
-Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
-AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
-lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
-KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-America Online Root Certification Authority 1
-=============================================
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
-v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
-DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
-sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
-8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
-AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
-o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
-GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
-VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
-3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
-Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
-sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
-
-America Online Root Certification Authority 2
-=============================================
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en
-fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8
-f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO
-qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN
-RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0
-gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn
-6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid
-FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6
-Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj
-B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
-aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY
-T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p
-+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg
-JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy
-zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO
-ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh
-1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf
-GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff
-Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP
-cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
-ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
-XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
-lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
-lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
-lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
-66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
-wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
-D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
-BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
-J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
-DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
-a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
-Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
-UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
-VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
-+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
-IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
-WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
-f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
-4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
-VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
-OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
-DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
-KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
-DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
-BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
-p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
-nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
-MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
-Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
-uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
-BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
-BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
-VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
-ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
-AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
-qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
-hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
-POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
-Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
-8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
-bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
-g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
-vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
-qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-TDC Internet Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
-ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
-NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
-ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
-xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
-znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
-5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
-otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
-AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
-VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
-MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
-AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
-UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
-CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
-gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
-2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
-O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
-Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-NetLock Business (Class B) Root
-===============================
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
-VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
-VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
-bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
-VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
-o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
-1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
-RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
-dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
-ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
-c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
-YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
-Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
-bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
-IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
-YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
-cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
-43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
-stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
-
-NetLock Express (Class C) Root
-==============================
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
-BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
-ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
-W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
-euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
-DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
-RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
-YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
-IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
-aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
-ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
-emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
-IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
-UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
-YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
-xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
-gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
-MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
-MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
-NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
-AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
-b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
-7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
-cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
-WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
-haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
-MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
-MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
-jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
-MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
-VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
-vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
-OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
-1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
-nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
-x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
-MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
-acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
-MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
-U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
-TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
-aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
-yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
-Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
-8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
-W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
-BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
-sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
-q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
-nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
-EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
-MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
-c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
-t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
-jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
-vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
-ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
-AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
-jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
-peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
-7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
-GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
-OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
-5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
-44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
-Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
-Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
-mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
-vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
-KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
-NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
-viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-COMODO ECC Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
-GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
-4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
-wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
-FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
-U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-IGC/A
-=====
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
-VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
-Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
-MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
-EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
-STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
-TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
-So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
-HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
-frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
-tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
-egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
-iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
-q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
-MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
-lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
-0mBWWg==
------END CERTIFICATE-----
-
-Security Communication EV RootCA1
-=================================
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
-BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
-Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
-/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
-WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
-ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
-bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
-9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
-iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
-Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
-mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
-T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-OISTE WISeKey Global Root GA CA
-===============================
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
-BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
-A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
-bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
-VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
-IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
-IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
-Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
-Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
-d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
-/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
-LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
-MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
-+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
-okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA
-=========================
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
-BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
-EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
-MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
-dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
-GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
-d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
-oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
-QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
-PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
-MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
-IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
-VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
-LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
-dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
-4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
-AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
-egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
-Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
-PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
-c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
-cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
-IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
-WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
-MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
-Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
-HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
-nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
-aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
-yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
-S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-Certigna
-========
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
-EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
-MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
-Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
-XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
-GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
-ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
-DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
-Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
-tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
-BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
-SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
-hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
-ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
-PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
-1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
-======================================
------BEGIN CERTIFICATE-----
-MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT
-AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg
-LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w
-HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+
-U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh
-IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN
-yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU
-2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3
-4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP
-2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm
-8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf
-HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa
-Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK
-5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b
-czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g
-ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF
-BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug
-cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf
-AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX
-EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v
-/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3
-MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4
-3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk
-eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f
-/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h
-RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU
-Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 2 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
-MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
-IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
-xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
-Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
-SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
-dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
-KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
-TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
-JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
-vQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 3 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
-MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
-yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
-6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
-uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
-2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
-O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
-yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
-IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
-092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
-5A==
------END CERTIFICATE-----
-
-TC TrustCenter Universal CA I
-=============================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
-IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
-MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
-VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
-JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
-qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
-xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
-ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
-gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
-BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
-1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
-vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
-ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
-ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
-7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
------END CERTIFICATE-----
-
-Deutsche Telekom Root CA 2
-==========================
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
-RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
-A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
-MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
-A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
-b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
-bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
-KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
-AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
-Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
-jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
-HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
-E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
-zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
-rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
-dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-ComSign Secured CA
-==================
------BEGIN CERTIFICATE-----
-MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
-AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
-NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
-QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
-49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
-7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
-kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
-9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
-AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
-U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
-j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
-AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
-BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
-FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
-51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
-OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
------END CERTIFICATE-----
-
-Cybertrust Global Root
-======================
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
-ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
-MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
-ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
-0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
-AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
-89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
-8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
-MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
-A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
-lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
-5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
-hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
-X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-ePKI Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
-EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
-MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
-MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
-IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
-lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
-qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
-12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
-WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
-ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
-lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
-vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
-Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
-MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
-1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
-KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
-xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
-NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
-GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
-xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
-gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
-sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
-BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
-=============================================================================================================================
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
-DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
-aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
-b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
-BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
-S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
-MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
-IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
-n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
-IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
-dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
-cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
-Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
-xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
-6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
-BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
-N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
-y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
-LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
-dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-Buypass Class 2 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
-MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
-cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
-0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
-0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
-uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
-1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
-7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
-fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
-wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-Buypass Class 3 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
-MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
-ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
-n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
-AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
-1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
-pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
-EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
-htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
-el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
------END CERTIFICATE-----
-
-EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
-==========================================================================
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
-QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
-Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
-IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
-X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
-gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
-eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
-TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
-Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
-uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
-qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
-ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
-Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
-Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
-FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
-zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
-XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
-bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
-RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
-1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
-2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
-Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
-AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-certSIGN ROOT CA
-================
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
-VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
-Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
-CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
-JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
-rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
-ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
-0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
-AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
-Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
-AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
-SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
-x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
-vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
-TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-CNNIC ROOT
-==========
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
-ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
-OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
-o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
-VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
-VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
-czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
-y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
-wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
-lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
-Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
-O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
-BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
-G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
-mxE=
------END CERTIFICATE-----
-
-ApplicationCA - Japanese Government
-===================================
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
-SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
-MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
-cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
-fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
-wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
-jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
-nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
-WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
-BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
-vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
-o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
-/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
-io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
-dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G3
-=============================================
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
-NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
-YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
-LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
-K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
-c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
-IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
-dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
-2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
-cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
-Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
-t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-thawte Primary Root CA - G2
-===========================
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
-VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
-IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
-Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
-MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
-b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
-IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
-LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
-8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
-mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
-G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
-rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-thawte Primary Root CA - G3
-===========================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
-ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
-VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
-A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
-P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
-+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
-7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
-vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
-KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
-A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
-8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
-er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G2
-=============================================
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
-OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
-b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
-BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
-KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
-EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
-ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
-npaqBA+K
------END CERTIFICATE-----
-
-VeriSign Universal Root Certification Authority
-===============================================
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
-1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
-MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
-9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
-AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
-tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
-CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
-a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
-Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
-Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
-P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
-wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
-mJO37M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G4
-============================================================
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
-VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
-b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
-ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
-b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
-Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
-rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
-HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
-Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
-A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
-AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-NetLock Arany (Class Gold) Főtanúsítvány
-============================================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
-A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
-dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
-cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
-MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
-ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
-c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
-0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
-/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
-H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
-fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
-neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
-qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
-YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
-NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
-dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G2
-==================================
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
-5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
-vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
-CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
-e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
-OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
-CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
-48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
-trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
-qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
-AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
-ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
-A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
-+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
-f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
-kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
-CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
-URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
-CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
-oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
-IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
-66+KAQ==
------END CERTIFICATE-----
-
-CA Disig
-========
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
-QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
-MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
-bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
-GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
-Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
-hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
-ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
-gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
-AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
-aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
-ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
-BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
-WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
-mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
-ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
-4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-Juur-SK
-=======
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
-c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
-DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
-SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
-aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
-TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
-+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
-UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
-Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
-MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
-HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
-AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
-cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
-AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
-cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
-A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
-ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
-abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
-IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
-Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
-yyqcjg==
------END CERTIFICATE-----
-
-Hongkong Post Root CA 1
-=======================
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
-DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
-NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
-IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
-ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
-auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
-qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
-V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
-HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
-h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
-l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
-IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
-T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
-c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
------END CERTIFICATE-----
-
-SecureSign RootCA11
-===================
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
-SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
-b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
-KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
-cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
-TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
-wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
-g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
-O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
-bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
-t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
-OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
-bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
-Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
-y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
-lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-ACEDICOM Root
-=============
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
-T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
-MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
-A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
-WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
-YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
-MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
-m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
-HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
-xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
-3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
-2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
-TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
-4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
-9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
-aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
-eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
-zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
-ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
-KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
-nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
-I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
-MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
-tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
-CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
-bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
-D/xwzoiQ
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
-MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
-c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
-BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
-U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
-fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
-0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
-pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
-1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
-AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
-QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
-FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
-lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
-I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
-yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
-LXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
-===================================================
------BEGIN CERTIFICATE-----
-MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
-ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
-MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
-cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
-aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
-8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
-jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
-JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
-9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
-AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
-SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
-F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
-D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
-Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
-fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
------END CERTIFICATE-----
-
-GlobalSign Root CA - R3
-=======================
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
-iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
-0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
-rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
-OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
-xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
-lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
-EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
-bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
-YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
-kpeDMdmztcpHWD9f
------END CERTIFICATE-----
-
-Autoridad de Certificacion Firmaprofesional CIF A62634068
-=========================================================
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
-BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
-QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
-NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
-Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
-B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
-7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
-ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
-plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
-MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
-LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
-bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
-vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
-EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
-DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
-bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
-ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
-51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
-R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
-T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
-Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
-osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
-crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
-saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
-KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
-6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-Izenpe.com
-==========
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
-EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
-MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
-QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
-03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
-ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
-+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
-PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
-OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
-F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
-0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
-0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
-leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
-AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
-SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
-NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
-BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
-Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
-kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
-hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
-g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
-aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
-nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
-ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
-Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
-WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-Chambers of Commerce Root - 2008
-================================
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
-Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
-ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
-EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
-cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
-XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
-h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
-ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
-NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
-D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
-lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
-0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
-EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
-G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
-BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
-bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
-bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
-CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
-AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
-wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
-3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
-RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
-M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
-YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
-9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
-zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
-nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
------END CERTIFICATE-----
-
-Global Chambersign Root - 2008
-==============================
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
-NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
-Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
-QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
-VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
-XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
-ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
-/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
-TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
-H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
-Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
-HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
-AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
-BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
-BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
-aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
-aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
-1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
-dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
-/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
-ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
-dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
-9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
-foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
-qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
-P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
-c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-Go Daddy Root Certificate Authority - G2
-========================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
-MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
-A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
-9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
-+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
-fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
-NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
-BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
-vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
-5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
-N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
------END CERTIFICATE-----
-
-Starfield Root Certificate Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
-eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
-DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
-VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
-dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
-W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
-bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
-N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
-ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
-JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
-TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
-4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
-F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
-c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-Starfield Services Root Certificate Authority - G2
-==================================================
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
-IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
-dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
-h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
-hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
-LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
-rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
-SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
-E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
-xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
-YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
------END CERTIFICATE-----
-
-AffirmTrust Commercial
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
-MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
-DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
-C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
-BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
-MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
-HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
-hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
-qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
-0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
-sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-AffirmTrust Networking
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
-MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
-Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
-dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
-/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
-h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
-HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
-UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
-12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
-WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
-/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-AffirmTrust Premium
-===================
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
-OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
-dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
-BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
-5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
-+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
-GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
-p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
-S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
-6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
-/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
-+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
-MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
-6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
-L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
-+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
-BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
-IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
-g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
-zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-AffirmTrust Premium ECC
-=======================
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
-MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
-cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
-IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
-N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
-BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
-BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
-57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
-eQ==
------END CERTIFICATE-----
-
-Certum Trusted Network CA
-=========================
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
-ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
-MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
-ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
-l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
-J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
-fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
-cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
-Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
-DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
-jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
-mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
-Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-Certinomis - Autorité Racine
-=============================
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
-LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
-A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
-JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
-wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
-Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
-2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
-jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
-c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
-lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
-xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
-530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
-4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
-WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
-R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
-nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
-CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
-JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
-qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
-WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
-wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
-vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-Root CA Generalitat Valenciana
-==============================
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
-ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
-IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
-WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
-CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
-F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
-ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
-D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
-JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
-AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
-dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
-ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
-AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
-YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
-AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
-AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
-YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
-AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
-OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
-dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
-BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
-b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
-TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
-Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
-NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
-iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
-+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-A-Trust-nQual-03
-================
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
-Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
-a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
-dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
-RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
-ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
-c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
-zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
-yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
-SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
-iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
-cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
-eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
-ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
-sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
-JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
-ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-TWCA Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
-VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
-EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
-IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
-QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
-oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
-4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
-y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
-9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
-mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
-QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
-T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
-Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-Security Communication RootCA2
-==============================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
-SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
-aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
-+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
-3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
-spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
-EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
-QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
-CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
-u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
-3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
-tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
-mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-EC-ACC
-======
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
-BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
-ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
-VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
-CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
-BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
-MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
-SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
-Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
-cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
-w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
-ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
-HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
-E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
-0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
-VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
-Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
-dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
-lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
-Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
-l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
-E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
-5EI=
------END CERTIFICATE-----
-
-Hellenic Academic and Research Institutions RootCA 2011
-=======================================================
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
-O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
-aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
-AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
-IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
-1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
-71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
-8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
-3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
-MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
-MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
-b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
-XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
-/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
-7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-Actalis Authentication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
-BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
-AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
-MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
-IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
-wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
-by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
-zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
-YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
-oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
-EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
-hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
-EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
-jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
-iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
-WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
-JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
-K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
-Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
-4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
-2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
-lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
-OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
-vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-Trustis FPS Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
-EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
-IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
-BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
-RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
-H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
-cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
-o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
-AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
-BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
-GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
-yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
-8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
-l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
-iB6XzCGcKQENZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
-Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
-dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
-c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
-bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
-aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
-cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
-fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
-N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
-Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
-tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
-e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
-2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
-HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
-D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-StartCom Certification Authority G2
-===================================
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
-ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
-o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
-4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
-Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
-Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
-O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
-vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
-nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
-FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
-z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
-KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
-J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
-JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
-/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
-nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
-blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
-l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
-7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
-obp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-Buypass Class 2 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
-DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
-g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
-9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
-/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
-CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
-awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
-zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
-Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
-Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
-M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
-osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
-aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
-DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
-LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
-oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
-wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
-CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
-rJgWVqA=
------END CERTIFICATE-----
-
-Buypass Class 3 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
-DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
-sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
-5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
-7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
-ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
-2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
-/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
-RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
-Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
-j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
-uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
-Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
-ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
-KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
-6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
-UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
-eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
-Cp/HuZc=
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 3
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
-MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
-9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
-NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
-iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
-0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
-AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
-fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
-ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
-P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
------END CERTIFICATE-----
-
-EE Certification Centre Root CA
-===============================
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
-dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
-MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
-UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
-ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
-TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
-rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
-93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
-P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
-MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
-BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
-xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
-lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
-3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
-dcGWxZ0=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2007
-=================================================
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
-DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
-a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
-YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
-KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
-KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
-rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
-AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
-Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
-Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
-BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
-poRq0Tl9
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
-Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
-LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
-ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
-BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
-KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
-p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
-AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
-4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
-eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
-MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
-PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
-OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
-2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
-dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
-X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 EV 2009
-=================================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
-egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
-zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
-7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
-sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
-11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
-cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
-ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
-MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
-b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
-c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
-PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
-ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
-NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
-w9y4AyHqnxbxLFS1
------END CERTIFICATE-----
-
-PSCProcert
-==========
------BEGIN CERTIFICATE-----
-MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
-ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
-MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
-dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
-cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
-IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
-MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
-DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
-ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
-Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
-wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
-3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
-RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
-EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
-0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
-0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
-td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
-Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
-r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
-AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
-Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
-xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
-ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
-EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
-Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
-ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
-9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
-MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
-LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
-ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
-YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
-Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
-dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
-T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
-g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
-uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
-n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
-FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
-5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
-3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
-poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
-eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
------END CERTIFICATE-----
-
-China Internet Network Information Center EV Certificates Root
-==============================================================
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
-BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
-aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
-Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
-A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
-PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
-cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
-jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
-98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
-klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
-KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
-7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
-glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
-0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
-7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
-5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
------END CERTIFICATE-----
-
-Swisscom Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
-MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
-LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
-ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
-wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
-Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
-SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
-NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
-mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
-Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
-qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
-MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
-v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
-82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
-o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
-a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
-OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
-mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
-+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
-rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
-5OfNeOI5wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
-
-Swisscom Root EV CA 2
-=====================
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
-BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
-cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
-MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
-HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
-Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
-o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
-Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
-GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
-qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
-Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
-alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
-m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
-bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
-xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
-bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
-j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
-wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
-XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
-59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
-23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
-J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
-HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
-uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
-l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
-
-CA Disig Root R1
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
-3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
-u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
-m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
-CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
-YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
-vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
-LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
-ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
-XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
-04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
-LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
-CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
-VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
-YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
-ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
-lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
-UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
-a7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
-
-CA Disig Root R2
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
-w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
-xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
-A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
-GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
-g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
-5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
-koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
-Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
-Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
-Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
-sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
-dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
-1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
-mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
-utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
-sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
-UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
-7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
-
-ACCVRAIZ1
-=========
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
-SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
-MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
-UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
-jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
-RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
-aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
-0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
-WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
-8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
-5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
-9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
-Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
-Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
-Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
-Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
-QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
-AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
-YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
-AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
-IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
-aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
-dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
-MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
-hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
-R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
-YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
-nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
-TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
-sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
-Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
-3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
-EfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
-
-TWCA Global Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
-CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
-QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
-EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
-Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
-nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
-r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
-Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
-tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
-KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
-sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
-yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
-kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
-zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
-cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
-8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
-/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
-lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
-A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
-i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
-EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
-zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
------END CERTIFICATE-----
-
-TeliaSonera Root CA v1
-======================
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
-CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
-MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
-VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
-6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
-3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
-B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
-Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
-oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
-F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
-oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
-gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
-TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
-AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
-DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
-zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
-pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
-G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
-c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
-JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
-qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
-Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
-WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
-
-E-Tugra Certification Authority
-===============================
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
-DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
-ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
-NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
-QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
-cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
-DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
-hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
-CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
-ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
-BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
-E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
-rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
-jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
-dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
-/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
-MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
-kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
-XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
-VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
-a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
-dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
-KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
-Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
-8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
-C7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 2
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
-MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
-SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
-vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
-2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
-WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
-YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
-r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
-vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
-3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
------END CERTIFICATE-----
-
-Atos TrustedRoot 2011
-=====================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
-cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
-MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
-A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
-hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
-54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
-DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
-HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
-z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
-l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
-bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
-CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
-k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
-TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
-61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
-3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/StaticClient.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/StaticClient.php
deleted file mode 100644
index dbd4c18413a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/StaticClient.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Http\Client;
-use Guzzle\Http\ClientInterface;
-use Guzzle\Stream\StreamRequestFactoryInterface;
-use Guzzle\Stream\PhpStreamRequestFactory;
-
-/**
- * Simplified interface to Guzzle that does not require a class to be instantiated
- */
-final class StaticClient
-{
- /** @var Client Guzzle client */
- private static $client;
-
- /**
- * Mount the client to a simpler class name for a specific client
- *
- * @param string $className Class name to use to mount
- * @param ClientInterface $client Client used to send requests
- */
- public static function mount($className = 'Guzzle', ClientInterface $client = null)
- {
- class_alias(__CLASS__, $className);
- if ($client) {
- self::$client = $client;
- }
- }
-
- /**
- * @param string $method HTTP request method (GET, POST, HEAD, DELETE, PUT, etc)
- * @param string $url URL of the request
- * @param array $options Options to use with the request. See: Guzzle\Http\Message\RequestFactory::applyOptions()
- * @return \Guzzle\Http\Message\Response|\Guzzle\Stream\Stream
- */
- public static function request($method, $url, $options = array())
- {
- // @codeCoverageIgnoreStart
- if (!self::$client) {
- self::$client = new Client();
- }
- // @codeCoverageIgnoreEnd
-
- $request = self::$client->createRequest($method, $url, null, null, $options);
-
- if (isset($options['stream'])) {
- if ($options['stream'] instanceof StreamRequestFactoryInterface) {
- return $options['stream']->fromRequest($request);
- } elseif ($options['stream'] == true) {
- $streamFactory = new PhpStreamRequestFactory();
- return $streamFactory->fromRequest($request);
- }
- }
-
- return $request->send();
- }
-
- /**
- * Send a GET request
- *
- * @param string $url URL of the request
- * @param array $options Array of request options
- *
- * @return \Guzzle\Http\Message\Response
- * @see Guzzle::request for a list of available options
- */
- public static function get($url, $options = array())
- {
- return self::request('GET', $url, $options);
- }
-
- /**
- * Send a HEAD request
- *
- * @param string $url URL of the request
- * @param array $options Array of request options
- *
- * @return \Guzzle\Http\Message\Response
- * @see Guzzle::request for a list of available options
- */
- public static function head($url, $options = array())
- {
- return self::request('HEAD', $url, $options);
- }
-
- /**
- * Send a DELETE request
- *
- * @param string $url URL of the request
- * @param array $options Array of request options
- *
- * @return \Guzzle\Http\Message\Response
- * @see Guzzle::request for a list of available options
- */
- public static function delete($url, $options = array())
- {
- return self::request('DELETE', $url, $options);
- }
-
- /**
- * Send a POST request
- *
- * @param string $url URL of the request
- * @param array $options Array of request options
- *
- * @return \Guzzle\Http\Message\Response
- * @see Guzzle::request for a list of available options
- */
- public static function post($url, $options = array())
- {
- return self::request('POST', $url, $options);
- }
-
- /**
- * Send a PUT request
- *
- * @param string $url URL of the request
- * @param array $options Array of request options
- *
- * @return \Guzzle\Http\Message\Response
- * @see Guzzle::request for a list of available options
- */
- public static function put($url, $options = array())
- {
- return self::request('PUT', $url, $options);
- }
-
- /**
- * Send a PATCH request
- *
- * @param string $url URL of the request
- * @param array $options Array of request options
- *
- * @return \Guzzle\Http\Message\Response
- * @see Guzzle::request for a list of available options
- */
- public static function patch($url, $options = array())
- {
- return self::request('PATCH', $url, $options);
- }
-
- /**
- * Send an OPTIONS request
- *
- * @param string $url URL of the request
- * @param array $options Array of request options
- *
- * @return \Guzzle\Http\Message\Response
- * @see Guzzle::request for a list of available options
- */
- public static function options($url, $options = array())
- {
- return self::request('OPTIONS', $url, $options);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Url.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Url.php
deleted file mode 100644
index 6a4e7724514..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/Url.php
+++ /dev/null
@@ -1,554 +0,0 @@
-<?php
-
-namespace Guzzle\Http;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * Parses and generates URLs based on URL parts. In favor of performance, URL parts are not validated.
- */
-class Url
-{
- protected $scheme;
- protected $host;
- protected $port;
- protected $username;
- protected $password;
- protected $path = '';
- protected $fragment;
-
- /** @var QueryString Query part of the URL */
- protected $query;
-
- /**
- * Factory method to create a new URL from a URL string
- *
- * @param string $url Full URL used to create a Url object
- *
- * @return Url
- * @throws InvalidArgumentException
- */
- public static function factory($url)
- {
- static $defaults = array('scheme' => null, 'host' => null, 'path' => null, 'port' => null, 'query' => null,
- 'user' => null, 'pass' => null, 'fragment' => null);
-
- if (false === ($parts = parse_url($url))) {
- throw new InvalidArgumentException('Was unable to parse malformed url: ' . $url);
- }
-
- $parts += $defaults;
-
- // Convert the query string into a QueryString object
- if ($parts['query'] || 0 !== strlen($parts['query'])) {
- $parts['query'] = QueryString::fromString($parts['query']);
- }
-
- return new static($parts['scheme'], $parts['host'], $parts['user'],
- $parts['pass'], $parts['port'], $parts['path'], $parts['query'],
- $parts['fragment']);
- }
-
- /**
- * Build a URL from parse_url parts. The generated URL will be a relative URL if a scheme or host are not provided.
- *
- * @param array $parts Array of parse_url parts
- *
- * @return string
- */
- public static function buildUrl(array $parts)
- {
- $url = $scheme = '';
-
- if (isset($parts['scheme'])) {
- $scheme = $parts['scheme'];
- $url .= $scheme . ':';
- }
-
- if (isset($parts['host'])) {
- $url .= '//';
- if (isset($parts['user'])) {
- $url .= $parts['user'];
- if (isset($parts['pass'])) {
- $url .= ':' . $parts['pass'];
- }
- $url .= '@';
- }
-
- $url .= $parts['host'];
-
- // Only include the port if it is not the default port of the scheme
- if (isset($parts['port'])
- && !(($scheme == 'http' && $parts['port'] == 80) || ($scheme == 'https' && $parts['port'] == 443))
- ) {
- $url .= ':' . $parts['port'];
- }
- }
-
- // Add the path component if present
- if (isset($parts['path']) && 0 !== strlen($parts['path'])) {
- // Always ensure that the path begins with '/' if set and something is before the path
- if ($url && $parts['path'][0] != '/' && substr($url, -1) != '/') {
- $url .= '/';
- }
- $url .= $parts['path'];
- }
-
- // Add the query string if present
- if (isset($parts['query'])) {
- $url .= '?' . $parts['query'];
- }
-
- // Ensure that # is only added to the url if fragment contains anything.
- if (isset($parts['fragment'])) {
- $url .= '#' . $parts['fragment'];
- }
-
- return $url;
- }
-
- /**
- * Create a new URL from URL parts
- *
- * @param string $scheme Scheme of the URL
- * @param string $host Host of the URL
- * @param string $username Username of the URL
- * @param string $password Password of the URL
- * @param int $port Port of the URL
- * @param string $path Path of the URL
- * @param QueryString|array|string $query Query string of the URL
- * @param string $fragment Fragment of the URL
- */
- public function __construct($scheme, $host, $username = null, $password = null, $port = null, $path = null, QueryString $query = null, $fragment = null)
- {
- $this->scheme = $scheme;
- $this->host = $host;
- $this->port = $port;
- $this->username = $username;
- $this->password = $password;
- $this->fragment = $fragment;
- if (!$query) {
- $this->query = new QueryString();
- } else {
- $this->setQuery($query);
- }
- $this->setPath($path);
- }
-
- /**
- * Clone the URL
- */
- public function __clone()
- {
- $this->query = clone $this->query;
- }
-
- /**
- * Returns the URL as a URL string
- *
- * @return string
- */
- public function __toString()
- {
- return self::buildUrl($this->getParts());
- }
-
- /**
- * Get the parts of the URL as an array
- *
- * @return array
- */
- public function getParts()
- {
- $query = (string) $this->query;
-
- return array(
- 'scheme' => $this->scheme,
- 'user' => $this->username,
- 'pass' => $this->password,
- 'host' => $this->host,
- 'port' => $this->port,
- 'path' => $this->getPath(),
- 'query' => $query !== '' ? $query : null,
- 'fragment' => $this->fragment,
- );
- }
-
- /**
- * Set the host of the request.
- *
- * @param string $host Host to set (e.g. www.yahoo.com, yahoo.com)
- *
- * @return Url
- */
- public function setHost($host)
- {
- if (strpos($host, ':') === false) {
- $this->host = $host;
- } else {
- list($host, $port) = explode(':', $host);
- $this->host = $host;
- $this->setPort($port);
- }
-
- return $this;
- }
-
- /**
- * Get the host part of the URL
- *
- * @return string
- */
- public function getHost()
- {
- return $this->host;
- }
-
- /**
- * Set the scheme part of the URL (http, https, ftp, etc)
- *
- * @param string $scheme Scheme to set
- *
- * @return Url
- */
- public function setScheme($scheme)
- {
- if ($this->scheme == 'http' && $this->port == 80) {
- $this->port = null;
- } elseif ($this->scheme == 'https' && $this->port == 443) {
- $this->port = null;
- }
-
- $this->scheme = $scheme;
-
- return $this;
- }
-
- /**
- * Get the scheme part of the URL
- *
- * @return string
- */
- public function getScheme()
- {
- return $this->scheme;
- }
-
- /**
- * Set the port part of the URL
- *
- * @param int $port Port to set
- *
- * @return Url
- */
- public function setPort($port)
- {
- $this->port = $port;
-
- return $this;
- }
-
- /**
- * Get the port part of the URl. Will return the default port for a given scheme if no port has been set.
- *
- * @return int|null
- */
- public function getPort()
- {
- if ($this->port) {
- return $this->port;
- } elseif ($this->scheme == 'http') {
- return 80;
- } elseif ($this->scheme == 'https') {
- return 443;
- }
-
- return null;
- }
-
- /**
- * Set the path part of the URL
- *
- * @param array|string $path Path string or array of path segments
- *
- * @return Url
- */
- public function setPath($path)
- {
- static $pathReplace = array(' ' => '%20', '?' => '%3F');
- if (is_array($path)) {
- $path = '/' . implode('/', $path);
- }
-
- $this->path = strtr($path, $pathReplace);
-
- return $this;
- }
-
- /**
- * Normalize the URL so that double slashes and relative paths are removed
- *
- * @return Url
- */
- public function normalizePath()
- {
- if (!$this->path || $this->path == '/' || $this->path == '*') {
- return $this;
- }
-
- $results = array();
- $segments = $this->getPathSegments();
- foreach ($segments as $segment) {
- if ($segment == '..') {
- array_pop($results);
- } elseif ($segment != '.' && $segment != '') {
- $results[] = $segment;
- }
- }
-
- // Combine the normalized parts and add the leading slash if needed
- $this->path = ($this->path[0] == '/' ? '/' : '') . implode('/', $results);
-
- // Add the trailing slash if necessary
- if ($this->path != '/' && end($segments) == '') {
- $this->path .= '/';
- }
-
- return $this;
- }
-
- /**
- * Add a relative path to the currently set path.
- *
- * @param string $relativePath Relative path to add
- *
- * @return Url
- */
- public function addPath($relativePath)
- {
- if ($relativePath != '/' && is_string($relativePath) && strlen($relativePath) > 0) {
- // Add a leading slash if needed
- if ($relativePath[0] != '/') {
- $relativePath = '/' . $relativePath;
- }
- $this->setPath(str_replace('//', '/', $this->path . $relativePath));
- }
-
- return $this;
- }
-
- /**
- * Get the path part of the URL
- *
- * @return string
- */
- public function getPath()
- {
- return $this->path;
- }
-
- /**
- * Get the path segments of the URL as an array
- *
- * @return array
- */
- public function getPathSegments()
- {
- return array_slice(explode('/', $this->getPath()), 1);
- }
-
- /**
- * Set the password part of the URL
- *
- * @param string $password Password to set
- *
- * @return Url
- */
- public function setPassword($password)
- {
- $this->password = $password;
-
- return $this;
- }
-
- /**
- * Get the password part of the URL
- *
- * @return null|string
- */
- public function getPassword()
- {
- return $this->password;
- }
-
- /**
- * Set the username part of the URL
- *
- * @param string $username Username to set
- *
- * @return Url
- */
- public function setUsername($username)
- {
- $this->username = $username;
-
- return $this;
- }
-
- /**
- * Get the username part of the URl
- *
- * @return null|string
- */
- public function getUsername()
- {
- return $this->username;
- }
-
- /**
- * Get the query part of the URL as a QueryString object
- *
- * @return QueryString
- */
- public function getQuery()
- {
- return $this->query;
- }
-
- /**
- * Set the query part of the URL
- *
- * @param QueryString|string|array $query Query to set
- *
- * @return Url
- */
- public function setQuery($query)
- {
- if (is_string($query)) {
- $output = null;
- parse_str($query, $output);
- $this->query = new QueryString($output);
- } elseif (is_array($query)) {
- $this->query = new QueryString($query);
- } elseif ($query instanceof QueryString) {
- $this->query = $query;
- }
-
- return $this;
- }
-
- /**
- * Get the fragment part of the URL
- *
- * @return null|string
- */
- public function getFragment()
- {
- return $this->fragment;
- }
-
- /**
- * Set the fragment part of the URL
- *
- * @param string $fragment Fragment to set
- *
- * @return Url
- */
- public function setFragment($fragment)
- {
- $this->fragment = $fragment;
-
- return $this;
- }
-
- /**
- * Check if this is an absolute URL
- *
- * @return bool
- */
- public function isAbsolute()
- {
- return $this->scheme && $this->host;
- }
-
- /**
- * Combine the URL with another URL. Follows the rules specific in RFC 3986 section 5.4.
- *
- * @param string $url Relative URL to combine with
- * @param bool $strictRfc3986 Set to true to use strict RFC 3986 compliance when merging paths. When first
- * released, Guzzle used an incorrect algorithm for combining relative URL paths. In
- * order to not break users, we introduced this flag to allow the merging of URLs based
- * on strict RFC 3986 section 5.4.1. This means that "http://a.com/foo/baz" merged with
- * "bar" would become "http://a.com/foo/bar". When this value is set to false, it would
- * become "http://a.com/foo/baz/bar".
- * @return Url
- * @throws InvalidArgumentException
- * @link http://tools.ietf.org/html/rfc3986#section-5.4
- */
- public function combine($url, $strictRfc3986 = false)
- {
- $url = self::factory($url);
-
- // Use the more absolute URL as the base URL
- if (!$this->isAbsolute() && $url->isAbsolute()) {
- $url = $url->combine($this);
- }
-
- // Passing a URL with a scheme overrides everything
- if ($buffer = $url->getScheme()) {
- $this->scheme = $buffer;
- $this->host = $url->getHost();
- $this->port = $url->getPort();
- $this->username = $url->getUsername();
- $this->password = $url->getPassword();
- $this->path = $url->getPath();
- $this->query = $url->getQuery();
- $this->fragment = $url->getFragment();
- return $this;
- }
-
- // Setting a host overrides the entire rest of the URL
- if ($buffer = $url->getHost()) {
- $this->host = $buffer;
- $this->port = $url->getPort();
- $this->username = $url->getUsername();
- $this->password = $url->getPassword();
- $this->path = $url->getPath();
- $this->query = $url->getQuery();
- $this->fragment = $url->getFragment();
- return $this;
- }
-
- $path = $url->getPath();
- $query = $url->getQuery();
-
- if (!$path) {
- if (count($query)) {
- $this->addQuery($query, $strictRfc3986);
- }
- } else {
- if ($path[0] == '/') {
- $this->path = $path;
- } elseif ($strictRfc3986) {
- $this->path .= '/../' . $path;
- } else {
- $this->path .= '/' . $path;
- }
- $this->normalizePath();
- $this->addQuery($query, $strictRfc3986);
- }
-
- $this->fragment = $url->getFragment();
-
- return $this;
- }
-
- private function addQuery(QueryString $new, $strictRfc386)
- {
- if (!$strictRfc386) {
- $new->merge($this->query);
- }
-
- $this->query = $new;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/composer.json
deleted file mode 100644
index 9384a5bf918..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Http/composer.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "guzzle/http",
- "description": "HTTP libraries used by Guzzle",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["http client", "http", "client", "Guzzle", "curl"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/common": "self.version",
- "guzzle/parser": "self.version",
- "guzzle/stream": "self.version"
- },
- "suggest": {
- "ext-curl": "*"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Http": "" }
- },
- "target-dir": "Guzzle/Http",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/Inflector.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/Inflector.php
deleted file mode 100644
index c6997734ce4..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/Inflector.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Guzzle\Inflection;
-
-/**
- * Default inflection implementation
- */
-class Inflector implements InflectorInterface
-{
- /** @var InflectorInterface */
- protected static $default;
-
- /**
- * Get the default inflector object that has support for caching
- *
- * @return MemoizingInflector
- */
- public static function getDefault()
- {
- // @codeCoverageIgnoreStart
- if (!self::$default) {
- self::$default = new MemoizingInflector(new self());
- }
- // @codeCoverageIgnoreEnd
-
- return self::$default;
- }
-
- public function snake($word)
- {
- return ctype_lower($word) ? $word : strtolower(preg_replace('/(.)([A-Z])/', "$1_$2", $word));
- }
-
- public function camel($word)
- {
- return str_replace(' ', '', ucwords(strtr($word, '_-', ' ')));
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/InflectorInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/InflectorInterface.php
deleted file mode 100644
index 321d71810eb..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/InflectorInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Guzzle\Inflection;
-
-/**
- * Inflector interface used to convert the casing of words
- */
-interface InflectorInterface
-{
- /**
- * Converts strings from camel case to snake case (e.g. CamelCase camel_case).
- *
- * @param string $word Word to convert to snake case
- *
- * @return string
- */
- public function snake($word);
-
- /**
- * Converts strings from snake_case to upper CamelCase
- *
- * @param string $word Value to convert into upper CamelCase
- *
- * @return string
- */
- public function camel($word);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/MemoizingInflector.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/MemoizingInflector.php
deleted file mode 100644
index 32968d667bd..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/MemoizingInflector.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Guzzle\Inflection;
-
-/**
- * Decorator used to add memoization to previously inflected words
- */
-class MemoizingInflector implements InflectorInterface
-{
- /** @var array Array of cached inflections */
- protected $cache = array(
- 'snake' => array(),
- 'camel' => array()
- );
-
- /** @var int Max entries per cache */
- protected $maxCacheSize;
-
- /** @var InflectorInterface Decorated inflector */
- protected $decoratedInflector;
-
- /**
- * @param InflectorInterface $inflector Inflector being decorated
- * @param int $maxCacheSize Maximum number of cached items to hold per cache
- */
- public function __construct(InflectorInterface $inflector, $maxCacheSize = 500)
- {
- $this->decoratedInflector = $inflector;
- $this->maxCacheSize = $maxCacheSize;
- }
-
- public function snake($word)
- {
- if (!isset($this->cache['snake'][$word])) {
- $this->pruneCache('snake');
- $this->cache['snake'][$word] = $this->decoratedInflector->snake($word);
- }
-
- return $this->cache['snake'][$word];
- }
-
- /**
- * Converts strings from snake_case to upper CamelCase
- *
- * @param string $word Value to convert into upper CamelCase
- *
- * @return string
- */
- public function camel($word)
- {
- if (!isset($this->cache['camel'][$word])) {
- $this->pruneCache('camel');
- $this->cache['camel'][$word] = $this->decoratedInflector->camel($word);
- }
-
- return $this->cache['camel'][$word];
- }
-
- /**
- * Prune one of the named caches by removing 20% of the cache if it is full
- *
- * @param string $cache Type of cache to prune
- */
- protected function pruneCache($cache)
- {
- if (count($this->cache[$cache]) == $this->maxCacheSize) {
- $this->cache[$cache] = array_slice($this->cache[$cache], $this->maxCacheSize * 0.2);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/PreComputedInflector.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/PreComputedInflector.php
deleted file mode 100644
index db37e4fe4a5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/PreComputedInflector.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Guzzle\Inflection;
-
-/**
- * Decorator used to add pre-computed inflection mappings to an inflector
- */
-class PreComputedInflector implements InflectorInterface
-{
- /** @var array Array of pre-computed inflections */
- protected $mapping = array(
- 'snake' => array(),
- 'camel' => array()
- );
-
- /** @var InflectorInterface Decorated inflector */
- protected $decoratedInflector;
-
- /**
- * @param InflectorInterface $inflector Inflector being decorated
- * @param array $snake Hash of pre-computed camel to snake
- * @param array $camel Hash of pre-computed snake to camel
- * @param bool $mirror Mirror snake and camel reflections
- */
- public function __construct(InflectorInterface $inflector, array $snake = array(), array $camel = array(), $mirror = false)
- {
- if ($mirror) {
- $camel = array_merge(array_flip($snake), $camel);
- $snake = array_merge(array_flip($camel), $snake);
- }
-
- $this->decoratedInflector = $inflector;
- $this->mapping = array(
- 'snake' => $snake,
- 'camel' => $camel
- );
- }
-
- public function snake($word)
- {
- return isset($this->mapping['snake'][$word])
- ? $this->mapping['snake'][$word]
- : $this->decoratedInflector->snake($word);
- }
-
- /**
- * Converts strings from snake_case to upper CamelCase
- *
- * @param string $word Value to convert into upper CamelCase
- *
- * @return string
- */
- public function camel($word)
- {
- return isset($this->mapping['camel'][$word])
- ? $this->mapping['camel'][$word]
- : $this->decoratedInflector->camel($word);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/composer.json
deleted file mode 100644
index 93f9e7b725b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Inflection/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "guzzle/inflection",
- "description": "Guzzle inflection component",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["inflection", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Inflection": "" }
- },
- "target-dir": "Guzzle/Inflection",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/AppendIterator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/AppendIterator.php
deleted file mode 100644
index 1b6bd7e5374..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/AppendIterator.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Guzzle\Iterator;
-
-/**
- * AppendIterator that is not affected by https://bugs.php.net/bug.php?id=49104
- */
-class AppendIterator extends \AppendIterator
-{
- /**
- * Works around the bug in which PHP calls rewind() and next() when appending
- *
- * @param \Iterator $iterator Iterator to append
- */
- public function append(\Iterator $iterator)
- {
- $this->getArrayIterator()->append($iterator);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/ChunkedIterator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/ChunkedIterator.php
deleted file mode 100644
index d76cdd439ff..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/ChunkedIterator.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Guzzle\Iterator;
-
-/**
- * Pulls out chunks from an inner iterator and yields the chunks as arrays
- */
-class ChunkedIterator extends \IteratorIterator
-{
- /** @var int Size of each chunk */
- protected $chunkSize;
-
- /** @var array Current chunk */
- protected $chunk;
-
- /**
- * @param \Traversable $iterator Traversable iterator
- * @param int $chunkSize Size to make each chunk
- * @throws \InvalidArgumentException
- */
- public function __construct(\Traversable $iterator, $chunkSize)
- {
- $chunkSize = (int) $chunkSize;
- if ($chunkSize < 0 ) {
- throw new \InvalidArgumentException("The chunk size must be equal or greater than zero; $chunkSize given");
- }
-
- parent::__construct($iterator);
- $this->chunkSize = $chunkSize;
- }
-
- public function rewind()
- {
- parent::rewind();
- $this->next();
- }
-
- public function next()
- {
- $this->chunk = array();
- for ($i = 0; $i < $this->chunkSize && parent::valid(); $i++) {
- $this->chunk[] = parent::current();
- parent::next();
- }
- }
-
- public function current()
- {
- return $this->chunk;
- }
-
- public function valid()
- {
- return (bool) $this->chunk;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/FilterIterator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/FilterIterator.php
deleted file mode 100644
index b103367b6ea..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/FilterIterator.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Guzzle\Iterator;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * Filters values using a callback
- *
- * Used when PHP 5.4's {@see \CallbackFilterIterator} is not available
- */
-class FilterIterator extends \FilterIterator
-{
- /** @var mixed Callback used for filtering */
- protected $callback;
-
- /**
- * @param \Iterator $iterator Traversable iterator
- * @param array|\Closure $callback Callback used for filtering. Return true to keep or false to filter.
- *
- * @throws InvalidArgumentException if the callback if not callable
- */
- public function __construct(\Iterator $iterator, $callback)
- {
- parent::__construct($iterator);
- if (!is_callable($callback)) {
- throw new InvalidArgumentException('The callback must be callable');
- }
- $this->callback = $callback;
- }
-
- public function accept()
- {
- return call_user_func($this->callback, $this->current());
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MapIterator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MapIterator.php
deleted file mode 100644
index 7e586bda6a7..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MapIterator.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Guzzle\Iterator;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * Maps values before yielding
- */
-class MapIterator extends \IteratorIterator
-{
- /** @var mixed Callback */
- protected $callback;
-
- /**
- * @param \Traversable $iterator Traversable iterator
- * @param array|\Closure $callback Callback used for iterating
- *
- * @throws InvalidArgumentException if the callback if not callable
- */
- public function __construct(\Traversable $iterator, $callback)
- {
- parent::__construct($iterator);
- if (!is_callable($callback)) {
- throw new InvalidArgumentException('The callback must be callable');
- }
- $this->callback = $callback;
- }
-
- public function current()
- {
- return call_user_func($this->callback, parent::current());
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MethodProxyIterator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MethodProxyIterator.php
deleted file mode 100644
index de4ab036044..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/MethodProxyIterator.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Guzzle\Iterator;
-
-/**
- * Proxies missing method calls to the innermost iterator
- */
-class MethodProxyIterator extends \IteratorIterator
-{
- /**
- * Proxy method calls to the wrapped iterator
- *
- * @param string $name Name of the method
- * @param array $args Arguments to proxy
- *
- * @return mixed
- */
- public function __call($name, array $args)
- {
- $i = $this->getInnerIterator();
- while ($i instanceof \OuterIterator) {
- $i = $i->getInnerIterator();
- }
-
- return call_user_func_array(array($i, $name), $args);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/README.md b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/README.md
deleted file mode 100644
index 8bb7e08e26b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-Guzzle Iterator
-===============
-
-Provides useful Iterators and Iterator decorators
-
-- ChunkedIterator: Pulls out chunks from an inner iterator and yields the chunks as arrays
-- FilterIterator: Used when PHP 5.4's CallbackFilterIterator is not available
-- MapIterator: Maps values before yielding
-- MethodProxyIterator: Proxies missing method calls to the innermost iterator
-
-### Installing via Composer
-
-```bash
-# Install Composer
-curl -sS https://getcomposer.org/installer | php
-
-# Add Guzzle as a dependency
-php composer.phar require guzzle/iterator:~3.0
-```
-
-After installing, you need to require Composer's autoloader:
-
-```php
-require 'vendor/autoload.php';
-```
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/composer.json
deleted file mode 100644
index ee1737987bb..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Iterator/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/iterator",
- "description": "Provides helpful iterators and iterator decorators",
- "keywords": ["iterator", "guzzle"],
- "homepage": "http://guzzlephp.org/",
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/common": ">=2.8.0"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Iterator": "/" }
- },
- "target-dir": "Guzzle/Iterator",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/AbstractLogAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/AbstractLogAdapter.php
deleted file mode 100644
index 7f6271bcb5f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/AbstractLogAdapter.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-/**
- * Adapter class that allows Guzzle to log data using various logging implementations
- */
-abstract class AbstractLogAdapter implements LogAdapterInterface
-{
- protected $log;
-
- public function getLogObject()
- {
- return $this->log;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ArrayLogAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ArrayLogAdapter.php
deleted file mode 100644
index a70fc8d4230..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ArrayLogAdapter.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-/**
- * Stores all log messages in an array
- */
-class ArrayLogAdapter implements LogAdapterInterface
-{
- protected $logs = array();
-
- public function log($message, $priority = LOG_INFO, $extras = array())
- {
- $this->logs[] = array('message' => $message, 'priority' => $priority, 'extras' => $extras);
- }
-
- /**
- * Get logged entries
- *
- * @return array
- */
- public function getLogs()
- {
- return $this->logs;
- }
-
- /**
- * Clears logged entries
- */
- public function clearLogs()
- {
- $this->logs = array();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ClosureLogAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ClosureLogAdapter.php
deleted file mode 100644
index d4bb73f2198..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/ClosureLogAdapter.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-/**
- * Logs messages using Closures. Closures combined with filtering can trigger application events based on log messages.
- */
-class ClosureLogAdapter extends AbstractLogAdapter
-{
- public function __construct($logObject)
- {
- if (!is_callable($logObject)) {
- throw new \InvalidArgumentException('Object must be callable');
- }
-
- $this->log = $logObject;
- }
-
- public function log($message, $priority = LOG_INFO, $extras = array())
- {
- call_user_func($this->log, $message, $priority, $extras);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/LogAdapterInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/LogAdapterInterface.php
deleted file mode 100644
index d7ac4ea7c72..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/LogAdapterInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-/**
- * Adapter class that allows Guzzle to log data to various logging implementations.
- */
-interface LogAdapterInterface
-{
- /**
- * Log a message at a priority
- *
- * @param string $message Message to log
- * @param integer $priority Priority of message (use the \LOG_* constants of 0 - 7)
- * @param array $extras Extra information to log in event
- */
- public function log($message, $priority = LOG_INFO, $extras = array());
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MessageFormatter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MessageFormatter.php
deleted file mode 100644
index b5cfe9d1f33..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MessageFormatter.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-use Guzzle\Http\Curl\CurlHandle;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Message formatter used in various places in the framework
- *
- * Format messages using a template that can contain the the following variables:
- *
- * - {request}: Full HTTP request message
- * - {response}: Full HTTP response message
- * - {ts}: Timestamp
- * - {host}: Host of the request
- * - {method}: Method of the request
- * - {url}: URL of the request
- * - {host}: Host of the request
- * - {protocol}: Request protocol
- * - {version}: Protocol version
- * - {resource}: Resource of the request (path + query + fragment)
- * - {port}: Port of the request
- * - {hostname}: Hostname of the machine that sent the request
- * - {code}: Status code of the response (if available)
- * - {phrase}: Reason phrase of the response (if available)
- * - {curl_error}: Curl error message (if available)
- * - {curl_code}: Curl error code (if available)
- * - {curl_stderr}: Curl standard error (if available)
- * - {connect_time}: Time in seconds it took to establish the connection (if available)
- * - {total_time}: Total transaction time in seconds for last transfer (if available)
- * - {req_header_*}: Replace `*` with the lowercased name of a request header to add to the message
- * - {res_header_*}: Replace `*` with the lowercased name of a response header to add to the message
- * - {req_body}: Request body
- * - {res_body}: Response body
- */
-class MessageFormatter
-{
- const DEFAULT_FORMAT = "{hostname} {req_header_User-Agent} - [{ts}] \"{method} {resource} {protocol}/{version}\" {code} {res_header_Content-Length}";
- const DEBUG_FORMAT = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{curl_stderr}";
- const SHORT_FORMAT = '[{ts}] "{method} {resource} {protocol}/{version}" {code}';
-
- /**
- * @var string Template used to format log messages
- */
- protected $template;
-
- /**
- * @param string $template Log message template
- */
- public function __construct($template = self::DEFAULT_FORMAT)
- {
- $this->template = $template ?: self::DEFAULT_FORMAT;
- }
-
- /**
- * Set the template to use for logging
- *
- * @param string $template Log message template
- *
- * @return self
- */
- public function setTemplate($template)
- {
- $this->template = $template;
-
- return $this;
- }
-
- /**
- * Returns a formatted message
- *
- * @param RequestInterface $request Request that was sent
- * @param Response $response Response that was received
- * @param CurlHandle $handle Curl handle associated with the message
- * @param array $customData Associative array of custom template data
- *
- * @return string
- */
- public function format(
- RequestInterface $request,
- Response $response = null,
- CurlHandle $handle = null,
- array $customData = array()
- ) {
- $cache = $customData;
-
- return preg_replace_callback(
- '/{\s*([A-Za-z_\-\.0-9]+)\s*}/',
- function (array $matches) use ($request, $response, $handle, &$cache) {
-
- if (array_key_exists($matches[1], $cache)) {
- return $cache[$matches[1]];
- }
-
- $result = '';
- switch ($matches[1]) {
- case 'request':
- $result = (string) $request;
- break;
- case 'response':
- $result = (string) $response;
- break;
- case 'req_body':
- $result = $request instanceof EntityEnclosingRequestInterface
- ? (string) $request->getBody() : '';
- break;
- case 'res_body':
- $result = $response ? $response->getBody(true) : '';
- break;
- case 'ts':
- $result = gmdate('c');
- break;
- case 'method':
- $result = $request->getMethod();
- break;
- case 'url':
- $result = (string) $request->getUrl();
- break;
- case 'resource':
- $result = $request->getResource();
- break;
- case 'protocol':
- $result = 'HTTP';
- break;
- case 'version':
- $result = $request->getProtocolVersion();
- break;
- case 'host':
- $result = $request->getHost();
- break;
- case 'hostname':
- $result = gethostname();
- break;
- case 'port':
- $result = $request->getPort();
- break;
- case 'code':
- $result = $response ? $response->getStatusCode() : '';
- break;
- case 'phrase':
- $result = $response ? $response->getReasonPhrase() : '';
- break;
- case 'connect_time':
- $result = $handle && $handle->getInfo(CURLINFO_CONNECT_TIME)
- ? $handle->getInfo(CURLINFO_CONNECT_TIME)
- : ($response ? $response->getInfo('connect_time') : '');
- break;
- case 'total_time':
- $result = $handle && $handle->getInfo(CURLINFO_TOTAL_TIME)
- ? $handle->getInfo(CURLINFO_TOTAL_TIME)
- : ($response ? $response->getInfo('total_time') : '');
- break;
- case 'curl_error':
- $result = $handle ? $handle->getError() : '';
- break;
- case 'curl_code':
- $result = $handle ? $handle->getErrorNo() : '';
- break;
- case 'curl_stderr':
- $result = $handle ? $handle->getStderr() : '';
- break;
- default:
- if (strpos($matches[1], 'req_header_') === 0) {
- $result = $request->getHeader(substr($matches[1], 11));
- } elseif ($response && strpos($matches[1], 'res_header_') === 0) {
- $result = $response->getHeader(substr($matches[1], 11));
- }
- }
-
- $cache[$matches[1]] = $result;
- return $result;
- },
- $this->template
- );
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MonologLogAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MonologLogAdapter.php
deleted file mode 100644
index 6afe7b62af1..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/MonologLogAdapter.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-use Monolog\Logger;
-
-/**
- * @deprecated
- * @codeCoverageIgnore
- */
-class MonologLogAdapter extends AbstractLogAdapter
-{
- /**
- * syslog to Monolog mappings
- */
- private static $mapping = array(
- LOG_DEBUG => Logger::DEBUG,
- LOG_INFO => Logger::INFO,
- LOG_WARNING => Logger::WARNING,
- LOG_ERR => Logger::ERROR,
- LOG_CRIT => Logger::CRITICAL,
- LOG_ALERT => Logger::ALERT
- );
-
- public function __construct(Logger $logObject)
- {
- $this->log = $logObject;
- }
-
- public function log($message, $priority = LOG_INFO, $extras = array())
- {
- $this->log->addRecord(self::$mapping[$priority], $message, $extras);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/PsrLogAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/PsrLogAdapter.php
deleted file mode 100644
index 38a2b600d63..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/PsrLogAdapter.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-use Psr\Log\LogLevel;
-use Psr\Log\LoggerInterface;
-
-/**
- * PSR-3 log adapter
- *
- * @link https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
- */
-class PsrLogAdapter extends AbstractLogAdapter
-{
- /**
- * syslog to PSR-3 mappings
- */
- private static $mapping = array(
- LOG_DEBUG => LogLevel::DEBUG,
- LOG_INFO => LogLevel::INFO,
- LOG_WARNING => LogLevel::WARNING,
- LOG_ERR => LogLevel::ERROR,
- LOG_CRIT => LogLevel::CRITICAL,
- LOG_ALERT => LogLevel::ALERT
- );
-
- public function __construct(LoggerInterface $logObject)
- {
- $this->log = $logObject;
- }
-
- public function log($message, $priority = LOG_INFO, $extras = array())
- {
- $this->log->log(self::$mapping[$priority], $message, $extras);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf1LogAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf1LogAdapter.php
deleted file mode 100644
index 0ea8e3b1d02..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf1LogAdapter.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-use Guzzle\Common\Version;
-
-/**
- * Adapts a Zend Framework 1 logger object
- * @deprecated
- * @codeCoverageIgnore
- */
-class Zf1LogAdapter extends AbstractLogAdapter
-{
- public function __construct(\Zend_Log $logObject)
- {
- $this->log = $logObject;
- Version::warn(__CLASS__ . ' is deprecated');
- }
-
- public function log($message, $priority = LOG_INFO, $extras = array())
- {
- $this->log->log($message, $priority, $extras);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf2LogAdapter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf2LogAdapter.php
deleted file mode 100644
index 863f6a1c415..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/Zf2LogAdapter.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Guzzle\Log;
-
-use Zend\Log\Logger;
-
-/**
- * Adapts a Zend Framework 2 logger object
- */
-class Zf2LogAdapter extends AbstractLogAdapter
-{
- public function __construct(Logger $logObject)
- {
- $this->log = $logObject;
- }
-
- public function log($message, $priority = LOG_INFO, $extras = array())
- {
- $this->log->log($priority, $message, $extras);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/composer.json
deleted file mode 100644
index a8213e8b451..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Log/composer.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "guzzle/log",
- "description": "Guzzle log adapter component",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["log", "adapter", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Log": "" }
- },
- "suggest": {
- "guzzle/http": "self.version"
- },
- "target-dir": "Guzzle/Log",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParser.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParser.php
deleted file mode 100644
index 4349eeb38bf..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParser.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Cookie;
-
-/**
- * Default Guzzle implementation of a Cookie parser
- */
-class CookieParser implements CookieParserInterface
-{
- /** @var array Cookie part names to snake_case array values */
- protected static $cookieParts = array(
- 'domain' => 'Domain',
- 'path' => 'Path',
- 'max_age' => 'Max-Age',
- 'expires' => 'Expires',
- 'version' => 'Version',
- 'secure' => 'Secure',
- 'port' => 'Port',
- 'discard' => 'Discard',
- 'comment' => 'Comment',
- 'comment_url' => 'Comment-Url',
- 'http_only' => 'HttpOnly'
- );
-
- public function parseCookie($cookie, $host = null, $path = null, $decode = false)
- {
- // Explode the cookie string using a series of semicolons
- $pieces = array_filter(array_map('trim', explode(';', $cookie)));
-
- // The name of the cookie (first kvp) must include an equal sign.
- if (empty($pieces) || !strpos($pieces[0], '=')) {
- return false;
- }
-
- // Create the default return array
- $data = array_merge(array_fill_keys(array_keys(self::$cookieParts), null), array(
- 'cookies' => array(),
- 'data' => array(),
- 'path' => null,
- 'http_only' => false,
- 'discard' => false,
- 'domain' => $host
- ));
- $foundNonCookies = 0;
-
- // Add the cookie pieces into the parsed data array
- foreach ($pieces as $part) {
-
- $cookieParts = explode('=', $part, 2);
- $key = trim($cookieParts[0]);
-
- if (count($cookieParts) == 1) {
- // Can be a single value (e.g. secure, httpOnly)
- $value = true;
- } else {
- // Be sure to strip wrapping quotes
- $value = trim($cookieParts[1], " \n\r\t\0\x0B\"");
- if ($decode) {
- $value = urldecode($value);
- }
- }
-
- // Only check for non-cookies when cookies have been found
- if (!empty($data['cookies'])) {
- foreach (self::$cookieParts as $mapValue => $search) {
- if (!strcasecmp($search, $key)) {
- $data[$mapValue] = $mapValue == 'port' ? array_map('trim', explode(',', $value)) : $value;
- $foundNonCookies++;
- continue 2;
- }
- }
- }
-
- // If cookies have not yet been retrieved, or this value was not found in the pieces array, treat it as a
- // cookie. IF non-cookies have been parsed, then this isn't a cookie, it's cookie data. Cookies then data.
- $data[$foundNonCookies ? 'data' : 'cookies'][$key] = $value;
- }
-
- // Calculate the expires date
- if (!$data['expires'] && $data['max_age']) {
- $data['expires'] = time() + (int) $data['max_age'];
- }
-
- // Check path attribute according RFC6265 http://tools.ietf.org/search/rfc6265#section-5.2.4
- // "If the attribute-value is empty or if the first character of the
- // attribute-value is not %x2F ("/"):
- // Let cookie-path be the default-path.
- // Otherwise:
- // Let cookie-path be the attribute-value."
- if (!$data['path'] || substr($data['path'], 0, 1) !== '/') {
- $data['path'] = $this->getDefaultPath($path);
- }
-
- return $data;
- }
-
- /**
- * Get default cookie path according to RFC 6265
- * http://tools.ietf.org/search/rfc6265#section-5.1.4 Paths and Path-Match
- *
- * @param string $path Request uri-path
- *
- * @return string
- */
- protected function getDefaultPath($path) {
- // "The user agent MUST use an algorithm equivalent to the following algorithm
- // to compute the default-path of a cookie:"
-
- // "2. If the uri-path is empty or if the first character of the uri-path is not
- // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps.
- if (empty($path) || substr($path, 0, 1) !== '/') {
- return '/';
- }
-
- // "3. If the uri-path contains no more than one %x2F ("/") character, output
- // %x2F ("/") and skip the remaining step."
- if ($path === "/") {
- return $path;
- }
-
- $rightSlashPos = strrpos($path, '/');
- if ($rightSlashPos === 0) {
- return "/";
- }
-
- // "4. Output the characters of the uri-path from the first character up to,
- // but not including, the right-most %x2F ("/")."
- return substr($path, 0, $rightSlashPos);
-
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParserInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParserInterface.php
deleted file mode 100644
index d21ffe21c1c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Cookie/CookieParserInterface.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Cookie;
-
-/**
- * Cookie parser interface
- */
-interface CookieParserInterface
-{
- /**
- * Parse a cookie string as set in a Set-Cookie HTTP header and return an associative array of data.
- *
- * @param string $cookie Cookie header value to parse
- * @param string $host Host of an associated request
- * @param string $path Path of an associated request
- * @param bool $decode Set to TRUE to urldecode cookie values
- *
- * @return array|bool Returns FALSE on failure or returns an array of arrays, with each of the sub arrays including:
- * - domain (string) - Domain of the cookie
- * - path (string) - Path of the cookie
- * - cookies (array) - Associative array of cookie names and values
- * - max_age (int) - Lifetime of the cookie in seconds
- * - version (int) - Version of the cookie specification. RFC 2965 is 1
- * - secure (bool) - Whether or not this is a secure cookie
- * - discard (bool) - Whether or not this is a discardable cookie
- * - custom (string) - Custom cookie data array
- * - comment (string) - How the cookie is intended to be used
- * - comment_url (str)- URL that contains info on how it will be used
- * - port (array|str) - Array of ports or null
- * - http_only (bool) - HTTP only cookie
- */
- public function parseCookie($cookie, $host = null, $path = null, $decode = false);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/AbstractMessageParser.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/AbstractMessageParser.php
deleted file mode 100644
index d25f9cceee0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/AbstractMessageParser.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Message;
-
-/**
- * Implements shared message parsing functionality
- */
-abstract class AbstractMessageParser implements MessageParserInterface
-{
- /**
- * Create URL parts from HTTP message parts
- *
- * @param string $requestUrl Associated URL
- * @param array $parts HTTP message parts
- *
- * @return array
- */
- protected function getUrlPartsFromMessage($requestUrl, array $parts)
- {
- // Parse the URL information from the message
- $urlParts = array(
- 'path' => $requestUrl,
- 'scheme' => 'http'
- );
-
- // Check for the Host header
- if (isset($parts['headers']['Host'])) {
- $urlParts['host'] = $parts['headers']['Host'];
- } elseif (isset($parts['headers']['host'])) {
- $urlParts['host'] = $parts['headers']['host'];
- } else {
- $urlParts['host'] = null;
- }
-
- if (false === strpos($urlParts['host'], ':')) {
- $urlParts['port'] = '';
- } else {
- $hostParts = explode(':', $urlParts['host']);
- $urlParts['host'] = trim($hostParts[0]);
- $urlParts['port'] = (int) trim($hostParts[1]);
- if ($urlParts['port'] == 443) {
- $urlParts['scheme'] = 'https';
- }
- }
-
- // Check if a query is present
- $path = $urlParts['path'];
- $qpos = strpos($path, '?');
- if ($qpos) {
- $urlParts['query'] = substr($path, $qpos + 1);
- $urlParts['path'] = substr($path, 0, $qpos);
- } else {
- $urlParts['query'] = '';
- }
-
- return $urlParts;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParser.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParser.php
deleted file mode 100644
index 104740068e8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParser.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Message;
-
-/**
- * Default request and response parser used by Guzzle. Optimized for speed.
- */
-class MessageParser extends AbstractMessageParser
-{
- public function parseRequest($message)
- {
- if (!$message) {
- return false;
- }
-
- $parts = $this->parseMessage($message);
-
- // Parse the protocol and protocol version
- if (isset($parts['start_line'][2])) {
- $startParts = explode('/', $parts['start_line'][2]);
- $protocol = strtoupper($startParts[0]);
- $version = isset($startParts[1]) ? $startParts[1] : '1.1';
- } else {
- $protocol = 'HTTP';
- $version = '1.1';
- }
-
- $parsed = array(
- 'method' => strtoupper($parts['start_line'][0]),
- 'protocol' => $protocol,
- 'version' => $version,
- 'headers' => $parts['headers'],
- 'body' => $parts['body']
- );
-
- $parsed['request_url'] = $this->getUrlPartsFromMessage($parts['start_line'][1], $parsed);
-
- return $parsed;
- }
-
- public function parseResponse($message)
- {
- if (!$message) {
- return false;
- }
-
- $parts = $this->parseMessage($message);
- list($protocol, $version) = explode('/', trim($parts['start_line'][0]));
-
- return array(
- 'protocol' => $protocol,
- 'version' => $version,
- 'code' => $parts['start_line'][1],
- 'reason_phrase' => isset($parts['start_line'][2]) ? $parts['start_line'][2] : '',
- 'headers' => $parts['headers'],
- 'body' => $parts['body']
- );
- }
-
- /**
- * Parse a message into parts
- *
- * @param string $message Message to parse
- *
- * @return array
- */
- protected function parseMessage($message)
- {
- $startLine = null;
- $headers = array();
- $body = '';
-
- // Iterate over each line in the message, accounting for line endings
- $lines = preg_split('/(\\r?\\n)/', $message, -1, PREG_SPLIT_DELIM_CAPTURE);
- for ($i = 0, $totalLines = count($lines); $i < $totalLines; $i += 2) {
-
- $line = $lines[$i];
-
- // If two line breaks were encountered, then this is the end of body
- if (empty($line)) {
- if ($i < $totalLines - 1) {
- $body = implode('', array_slice($lines, $i + 2));
- }
- break;
- }
-
- // Parse message headers
- if (!$startLine) {
- $startLine = explode(' ', $line, 3);
- } elseif (strpos($line, ':')) {
- $parts = explode(':', $line, 2);
- $key = trim($parts[0]);
- $value = isset($parts[1]) ? trim($parts[1]) : '';
- if (!isset($headers[$key])) {
- $headers[$key] = $value;
- } elseif (!is_array($headers[$key])) {
- $headers[$key] = array($headers[$key], $value);
- } else {
- $headers[$key][] = $value;
- }
- }
- }
-
- return array(
- 'start_line' => $startLine,
- 'headers' => $headers,
- 'body' => $body
- );
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParserInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParserInterface.php
deleted file mode 100644
index cc448088dbd..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/MessageParserInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Message;
-
-/**
- * HTTP message parser interface used to parse HTTP messages into an array
- */
-interface MessageParserInterface
-{
- /**
- * Parse an HTTP request message into an associative array of parts.
- *
- * @param string $message HTTP request to parse
- *
- * @return array|bool Returns false if the message is invalid
- */
- public function parseRequest($message);
-
- /**
- * Parse an HTTP response message into an associative array of parts.
- *
- * @param string $message HTTP response to parse
- *
- * @return array|bool Returns false if the message is invalid
- */
- public function parseResponse($message);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/PeclHttpMessageParser.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/PeclHttpMessageParser.php
deleted file mode 100644
index 944aaa25828..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Message/PeclHttpMessageParser.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Message;
-
-/**
- * Pecl HTTP message parser
- */
-class PeclHttpMessageParser extends AbstractMessageParser
-{
- public function parseRequest($message)
- {
- if (!$message) {
- return false;
- }
-
- $parts = http_parse_message($message);
-
- $parsed = array(
- 'method' => $parts->requestMethod,
- 'protocol' => 'HTTP',
- 'version' => number_format($parts->httpVersion, 1),
- 'headers' => $parts->headers,
- 'body' => $parts->body
- );
-
- $parsed['request_url'] = $this->getUrlPartsFromMessage($parts->requestUrl, $parsed);
-
- return $parsed;
- }
-
- public function parseResponse($message)
- {
- if (!$message) {
- return false;
- }
-
- $parts = http_parse_message($message);
-
- return array(
- 'protocol' => 'HTTP',
- 'version' => number_format($parts->httpVersion, 1),
- 'code' => $parts->responseCode,
- 'reason_phrase' => $parts->responseStatus,
- 'headers' => $parts->headers,
- 'body' => $parts->body
- );
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/ParserRegistry.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/ParserRegistry.php
deleted file mode 100644
index f8386831c22..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/ParserRegistry.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Guzzle\Parser;
-
-/**
- * Registry of parsers used by the application
- */
-class ParserRegistry
-{
- /** @var ParserRegistry Singleton instance */
- protected static $instance;
-
- /** @var array Array of parser instances */
- protected $instances = array();
-
- /** @var array Mapping of parser name to default class */
- protected $mapping = array(
- 'message' => 'Guzzle\\Parser\\Message\\MessageParser',
- 'cookie' => 'Guzzle\\Parser\\Cookie\\CookieParser',
- 'url' => 'Guzzle\\Parser\\Url\\UrlParser',
- 'uri_template' => 'Guzzle\\Parser\\UriTemplate\\UriTemplate',
- );
-
- /**
- * @return self
- * @codeCoverageIgnore
- */
- public static function getInstance()
- {
- if (!self::$instance) {
- self::$instance = new static;
- }
-
- return self::$instance;
- }
-
- public function __construct()
- {
- // Use the PECL URI template parser if available
- if (extension_loaded('uri_template')) {
- $this->mapping['uri_template'] = 'Guzzle\\Parser\\UriTemplate\\PeclUriTemplate';
- }
- }
-
- /**
- * Get a parser by name from an instance
- *
- * @param string $name Name of the parser to retrieve
- *
- * @return mixed|null
- */
- public function getParser($name)
- {
- if (!isset($this->instances[$name])) {
- if (!isset($this->mapping[$name])) {
- return null;
- }
- $class = $this->mapping[$name];
- $this->instances[$name] = new $class();
- }
-
- return $this->instances[$name];
- }
-
- /**
- * Register a custom parser by name with the register
- *
- * @param string $name Name or handle of the parser to register
- * @param mixed $parser Instantiated parser to register
- */
- public function registerParser($name, $parser)
- {
- $this->instances[$name] = $parser;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/PeclUriTemplate.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/PeclUriTemplate.php
deleted file mode 100644
index b0764e8377c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/PeclUriTemplate.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\UriTemplate;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-/**
- * Expands URI templates using the uri_template pecl extension (pecl install uri_template-beta)
- *
- * @link http://pecl.php.net/package/uri_template
- * @link https://github.com/ioseb/uri-template
- */
-class PeclUriTemplate implements UriTemplateInterface
-{
- public function __construct()
- {
- if (!extension_loaded('uri_template')) {
- throw new RuntimeException('uri_template PECL extension must be installed to use PeclUriTemplate');
- }
- }
-
- public function expand($template, array $variables)
- {
- return uri_template($template, $variables);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplate.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplate.php
deleted file mode 100644
index 0df032f0ff8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplate.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\UriTemplate;
-
-/**
- * Expands URI templates using an array of variables
- *
- * @link http://tools.ietf.org/html/draft-gregorio-uritemplate-08
- */
-class UriTemplate implements UriTemplateInterface
-{
- const DEFAULT_PATTERN = '/\{([^\}]+)\}/';
-
- /** @var string URI template */
- private $template;
-
- /** @var array Variables to use in the template expansion */
- private $variables;
-
- /** @var string Regex used to parse expressions */
- private $regex = self::DEFAULT_PATTERN;
-
- /** @var array Hash for quick operator lookups */
- private static $operatorHash = array(
- '+' => true, '#' => true, '.' => true, '/' => true, ';' => true, '?' => true, '&' => true
- );
-
- /** @var array Delimiters */
- private static $delims = array(
- ':', '/', '?', '#', '[', ']', '@', '!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '='
- );
-
- /** @var array Percent encoded delimiters */
- private static $delimsPct = array(
- '%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C',
- '%3B', '%3D'
- );
-
- public function expand($template, array $variables)
- {
- if ($this->regex == self::DEFAULT_PATTERN && false === strpos($template, '{')) {
- return $template;
- }
-
- $this->template = $template;
- $this->variables = $variables;
-
- return preg_replace_callback($this->regex, array($this, 'expandMatch'), $this->template);
- }
-
- /**
- * Set the regex patten used to expand URI templates
- *
- * @param string $regexPattern
- */
- public function setRegex($regexPattern)
- {
- $this->regex = $regexPattern;
- }
-
- /**
- * Parse an expression into parts
- *
- * @param string $expression Expression to parse
- *
- * @return array Returns an associative array of parts
- */
- private function parseExpression($expression)
- {
- // Check for URI operators
- $operator = '';
-
- if (isset(self::$operatorHash[$expression[0]])) {
- $operator = $expression[0];
- $expression = substr($expression, 1);
- }
-
- $values = explode(',', $expression);
- foreach ($values as &$value) {
- $value = trim($value);
- $varspec = array();
- $substrPos = strpos($value, ':');
- if ($substrPos) {
- $varspec['value'] = substr($value, 0, $substrPos);
- $varspec['modifier'] = ':';
- $varspec['position'] = (int) substr($value, $substrPos + 1);
- } elseif (substr($value, -1) == '*') {
- $varspec['modifier'] = '*';
- $varspec['value'] = substr($value, 0, -1);
- } else {
- $varspec['value'] = (string) $value;
- $varspec['modifier'] = '';
- }
- $value = $varspec;
- }
-
- return array(
- 'operator' => $operator,
- 'values' => $values
- );
- }
-
- /**
- * Process an expansion
- *
- * @param array $matches Matches met in the preg_replace_callback
- *
- * @return string Returns the replacement string
- */
- private function expandMatch(array $matches)
- {
- static $rfc1738to3986 = array(
- '+' => '%20',
- '%7e' => '~'
- );
-
- $parsed = self::parseExpression($matches[1]);
- $replacements = array();
-
- $prefix = $parsed['operator'];
- $joiner = $parsed['operator'];
- $useQueryString = false;
- if ($parsed['operator'] == '?') {
- $joiner = '&';
- $useQueryString = true;
- } elseif ($parsed['operator'] == '&') {
- $useQueryString = true;
- } elseif ($parsed['operator'] == '#') {
- $joiner = ',';
- } elseif ($parsed['operator'] == ';') {
- $useQueryString = true;
- } elseif ($parsed['operator'] == '' || $parsed['operator'] == '+') {
- $joiner = ',';
- $prefix = '';
- }
-
- foreach ($parsed['values'] as $value) {
-
- if (!array_key_exists($value['value'], $this->variables) || $this->variables[$value['value']] === null) {
- continue;
- }
-
- $variable = $this->variables[$value['value']];
- $actuallyUseQueryString = $useQueryString;
- $expanded = '';
-
- if (is_array($variable)) {
-
- $isAssoc = $this->isAssoc($variable);
- $kvp = array();
- foreach ($variable as $key => $var) {
-
- if ($isAssoc) {
- $key = rawurlencode($key);
- $isNestedArray = is_array($var);
- } else {
- $isNestedArray = false;
- }
-
- if (!$isNestedArray) {
- $var = rawurlencode($var);
- if ($parsed['operator'] == '+' || $parsed['operator'] == '#') {
- $var = $this->decodeReserved($var);
- }
- }
-
- if ($value['modifier'] == '*') {
- if ($isAssoc) {
- if ($isNestedArray) {
- // Nested arrays must allow for deeply nested structures
- $var = strtr(http_build_query(array($key => $var)), $rfc1738to3986);
- } else {
- $var = $key . '=' . $var;
- }
- } elseif ($key > 0 && $actuallyUseQueryString) {
- $var = $value['value'] . '=' . $var;
- }
- }
-
- $kvp[$key] = $var;
- }
-
- if (empty($variable)) {
- $actuallyUseQueryString = false;
- } elseif ($value['modifier'] == '*') {
- $expanded = implode($joiner, $kvp);
- if ($isAssoc) {
- // Don't prepend the value name when using the explode modifier with an associative array
- $actuallyUseQueryString = false;
- }
- } else {
- if ($isAssoc) {
- // When an associative array is encountered and the explode modifier is not set, then the
- // result must be a comma separated list of keys followed by their respective values.
- foreach ($kvp as $k => &$v) {
- $v = $k . ',' . $v;
- }
- }
- $expanded = implode(',', $kvp);
- }
-
- } else {
- if ($value['modifier'] == ':') {
- $variable = substr($variable, 0, $value['position']);
- }
- $expanded = rawurlencode($variable);
- if ($parsed['operator'] == '+' || $parsed['operator'] == '#') {
- $expanded = $this->decodeReserved($expanded);
- }
- }
-
- if ($actuallyUseQueryString) {
- if (!$expanded && $joiner != '&') {
- $expanded = $value['value'];
- } else {
- $expanded = $value['value'] . '=' . $expanded;
- }
- }
-
- $replacements[] = $expanded;
- }
-
- $ret = implode($joiner, $replacements);
- if ($ret && $prefix) {
- return $prefix . $ret;
- }
-
- return $ret;
- }
-
- /**
- * Determines if an array is associative
- *
- * @param array $array Array to check
- *
- * @return bool
- */
- private function isAssoc(array $array)
- {
- return (bool) count(array_filter(array_keys($array), 'is_string'));
- }
-
- /**
- * Removes percent encoding on reserved characters (used with + and # modifiers)
- *
- * @param string $string String to fix
- *
- * @return string
- */
- private function decodeReserved($string)
- {
- return str_replace(self::$delimsPct, self::$delims, $string);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplateInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplateInterface.php
deleted file mode 100644
index c81d51548e8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/UriTemplate/UriTemplateInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\UriTemplate;
-
-/**
- * Expands URI templates using an array of variables
- *
- * @link http://tools.ietf.org/html/rfc6570
- */
-interface UriTemplateInterface
-{
- /**
- * Expand the URI template using the supplied variables
- *
- * @param string $template URI Template to expand
- * @param array $variables Variables to use with the expansion
- *
- * @return string Returns the expanded template
- */
- public function expand($template, array $variables);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParser.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParser.php
deleted file mode 100644
index c4cc896088e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParser.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Url;
-
-use Guzzle\Common\Version;
-
-/**
- * Parses URLs into parts using PHP's built-in parse_url() function
- * @deprecated Just use parse_url. UTF-8 characters should be percent encoded anyways.
- * @codeCoverageIgnore
- */
-class UrlParser implements UrlParserInterface
-{
- /** @var bool Whether or not to work with UTF-8 strings */
- protected $utf8 = false;
-
- /**
- * Set whether or not to attempt to handle UTF-8 strings (still WIP)
- *
- * @param bool $utf8 Set to TRUE to handle UTF string
- */
- public function setUtf8Support($utf8)
- {
- $this->utf8 = $utf8;
- }
-
- public function parseUrl($url)
- {
- Version::warn(__CLASS__ . ' is deprecated. Just use parse_url()');
-
- static $defaults = array('scheme' => null, 'host' => null, 'path' => null, 'port' => null, 'query' => null,
- 'user' => null, 'pass' => null, 'fragment' => null);
-
- $parts = parse_url($url);
-
- // Need to handle query parsing specially for UTF-8 requirements
- if ($this->utf8 && isset($parts['query'])) {
- $queryPos = strpos($url, '?');
- if (isset($parts['fragment'])) {
- $parts['query'] = substr($url, $queryPos + 1, strpos($url, '#') - $queryPos - 1);
- } else {
- $parts['query'] = substr($url, $queryPos + 1);
- }
- }
-
- return $parts + $defaults;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParserInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParserInterface.php
deleted file mode 100644
index 89ac4b30771..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/Url/UrlParserInterface.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Guzzle\Parser\Url;
-
-/**
- * URL parser interface
- */
-interface UrlParserInterface
-{
- /**
- * Parse a URL using special handling for a subset of UTF-8 characters in the query string if needed.
- *
- * @param string $url URL to parse
- *
- * @return array Returns an array identical to what is returned from parse_url(). When an array key is missing from
- * this array, you must fill it in with NULL to avoid warnings in calling code.
- */
- public function parseUrl($url);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/composer.json
deleted file mode 100644
index 378b281971a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Parser/composer.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "guzzle/parser",
- "homepage": "http://guzzlephp.org/",
- "description": "Interchangeable parsers used by Guzzle",
- "keywords": ["HTTP", "message", "cookie", "URL", "URI Template"],
- "license": "MIT",
- "require": {
- "php": ">=5.3.2"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Parser": "" }
- },
- "target-dir": "Guzzle/Parser",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/AsyncPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/AsyncPlugin.php
deleted file mode 100644
index ae594187346..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/AsyncPlugin.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Async;
-
-use Guzzle\Common\Event;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\CurlException;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Sends requests but does not wait for the response
- */
-class AsyncPlugin implements EventSubscriberInterface
-{
- public static function getSubscribedEvents()
- {
- return array(
- 'request.before_send' => 'onBeforeSend',
- 'request.exception' => 'onRequestTimeout',
- 'request.sent' => 'onRequestSent',
- 'curl.callback.progress' => 'onCurlProgress'
- );
- }
-
- /**
- * Event used to ensure that progress callback are emitted from the curl handle's request mediator.
- *
- * @param Event $event
- */
- public function onBeforeSend(Event $event)
- {
- // Ensure that progress callbacks are dispatched
- $event['request']->getCurlOptions()->set('progress', true);
- }
-
- /**
- * Event emitted when a curl progress function is called. When the amount of data uploaded == the amount of data to
- * upload OR any bytes have been downloaded, then time the request out after 1ms because we're done with
- * transmitting the request, and tell curl not download a body.
- *
- * @param Event $event
- */
- public function onCurlProgress(Event $event)
- {
- if ($event['handle'] &&
- ($event['downloaded'] || (isset($event['uploaded']) && $event['upload_size'] === $event['uploaded']))
- ) {
- // Timeout after 1ms
- curl_setopt($event['handle'], CURLOPT_TIMEOUT_MS, 1);
- // Even if the response is quick, tell curl not to download the body.
- // - Note that we can only perform this shortcut if the request transmitted a body so as to ensure that the
- // request method is not converted to a HEAD request before the request was sent via curl.
- if ($event['uploaded']) {
- curl_setopt($event['handle'], CURLOPT_NOBODY, true);
- }
- }
- }
-
- /**
- * Event emitted when a curl exception occurs. Ignore the exception and set a mock response.
- *
- * @param Event $event
- */
- public function onRequestTimeout(Event $event)
- {
- if ($event['exception'] instanceof CurlException) {
- $event['request']->setResponse(new Response(200, array(
- 'X-Guzzle-Async' => 'Did not wait for the response'
- )));
- }
- }
-
- /**
- * Event emitted when a request completes because it took less than 1ms. Add an X-Guzzle-Async header to notify the
- * caller that there is no body in the message.
- *
- * @param Event $event
- */
- public function onRequestSent(Event $event)
- {
- // Let the caller know this was meant to be async
- $event['request']->getResponse()->setHeader('X-Guzzle-Async', 'Did not wait for the response');
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/composer.json
deleted file mode 100644
index dc3fc5bf882..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Async/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-async",
- "description": "Guzzle async request plugin",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Async": "" }
- },
- "target-dir": "Guzzle/Plugin/Async",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php
deleted file mode 100644
index 0a85983452b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Abstract backoff strategy that allows for a chain of responsibility
- */
-abstract class AbstractBackoffStrategy implements BackoffStrategyInterface
-{
- /** @var AbstractBackoffStrategy Next strategy in the chain */
- protected $next;
-
- /** @param AbstractBackoffStrategy $next Next strategy in the chain */
- public function setNext(AbstractBackoffStrategy $next)
- {
- $this->next = $next;
- }
-
- /**
- * Get the next backoff strategy in the chain
- *
- * @return AbstractBackoffStrategy|null
- */
- public function getNext()
- {
- return $this->next;
- }
-
- public function getBackoffPeriod(
- $retries,
- RequestInterface $request,
- Response $response = null,
- HttpException $e = null
- ) {
- $delay = $this->getDelay($retries, $request, $response, $e);
- if ($delay === false) {
- // The strategy knows that this must not be retried
- return false;
- } elseif ($delay === null) {
- // If the strategy is deferring a decision and the next strategy will not make a decision then return false
- return !$this->next || !$this->next->makesDecision()
- ? false
- : $this->next->getBackoffPeriod($retries, $request, $response, $e);
- } elseif ($delay === true) {
- // if the strategy knows that it must retry but is deferring to the next to determine the delay
- if (!$this->next) {
- return 0;
- } else {
- $next = $this->next;
- while ($next->makesDecision() && $next->getNext()) {
- $next = $next->getNext();
- }
- return !$next->makesDecision() ? $next->getBackoffPeriod($retries, $request, $response, $e) : 0;
- }
- } else {
- return $delay;
- }
- }
-
- /**
- * Check if the strategy does filtering and makes decisions on whether or not to retry.
- *
- * Strategies that return false will never retry if all of the previous strategies in a chain defer on a backoff
- * decision.
- *
- * @return bool
- */
- abstract public function makesDecision();
-
- /**
- * Implement the concrete strategy
- *
- * @param int $retries Number of retries of the request
- * @param RequestInterface $request Request that was sent
- * @param Response $response Response that was received. Note that there may not be a response
- * @param HttpException $e Exception that was encountered if any
- *
- * @return bool|int|null Returns false to not retry or the number of seconds to delay between retries. Return true
- * or null to defer to the next strategy if available, and if not, return 0.
- */
- abstract protected function getDelay(
- $retries,
- RequestInterface $request,
- Response $response = null,
- HttpException $e = null
- );
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php
deleted file mode 100644
index 6ebee6c1a37..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-/**
- * Strategy used to retry when certain error codes are encountered
- */
-abstract class AbstractErrorCodeBackoffStrategy extends AbstractBackoffStrategy
-{
- /** @var array Default cURL errors to retry */
- protected static $defaultErrorCodes = array();
-
- /** @var array Error codes that can be retried */
- protected $errorCodes;
-
- /**
- * @param array $codes Array of codes that should be retried
- * @param BackoffStrategyInterface $next The optional next strategy
- */
- public function __construct(array $codes = null, BackoffStrategyInterface $next = null)
- {
- $this->errorCodes = array_fill_keys($codes ?: static::$defaultErrorCodes, 1);
- $this->next = $next;
- }
-
- /**
- * Get the default failure codes to retry
- *
- * @return array
- */
- public static function getDefaultFailureCodes()
- {
- return static::$defaultErrorCodes;
- }
-
- public function makesDecision()
- {
- return true;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffLogger.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffLogger.php
deleted file mode 100644
index ec54c289eb2..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffLogger.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Common\Event;
-use Guzzle\Log\LogAdapterInterface;
-use Guzzle\Log\MessageFormatter;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Logs backoff retries triggered from the BackoffPlugin
- *
- * Format your log messages using a template that can contain template substitutions found in {@see MessageFormatter}.
- * In addition to the default template substitutions, there is also:
- *
- * - retries: The number of times the request has been retried
- * - delay: The amount of time the request is being delayed
- */
-class BackoffLogger implements EventSubscriberInterface
-{
- /** @var string Default log message template */
- const DEFAULT_FORMAT = '[{ts}] {method} {url} - {code} {phrase} - Retries: {retries}, Delay: {delay}, Time: {connect_time}, {total_time}, cURL: {curl_code} {curl_error}';
-
- /** @var LogAdapterInterface Logger used to log retries */
- protected $logger;
-
- /** @var MessageFormatter Formatter used to format log messages */
- protected $formatter;
-
- /**
- * @param LogAdapterInterface $logger Logger used to log the retries
- * @param MessageFormatter $formatter Formatter used to format log messages
- */
- public function __construct(LogAdapterInterface $logger, MessageFormatter $formatter = null)
- {
- $this->logger = $logger;
- $this->formatter = $formatter ?: new MessageFormatter(self::DEFAULT_FORMAT);
- }
-
- public static function getSubscribedEvents()
- {
- return array(BackoffPlugin::RETRY_EVENT => 'onRequestRetry');
- }
-
- /**
- * Set the template to use for logging
- *
- * @param string $template Log message template
- *
- * @return self
- */
- public function setTemplate($template)
- {
- $this->formatter->setTemplate($template);
-
- return $this;
- }
-
- /**
- * Called when a request is being retried
- *
- * @param Event $event Event emitted
- */
- public function onRequestRetry(Event $event)
- {
- $this->logger->log($this->formatter->format(
- $event['request'],
- $event['response'],
- $event['handle'],
- array(
- 'retries' => $event['retries'],
- 'delay' => $event['delay']
- )
- ));
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffPlugin.php
deleted file mode 100644
index 99ace053826..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffPlugin.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Common\Event;
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Curl\CurlMultiInterface;
-use Guzzle\Http\Exception\CurlException;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Plugin to automatically retry failed HTTP requests using a backoff strategy
- */
-class BackoffPlugin extends AbstractHasDispatcher implements EventSubscriberInterface
-{
- const DELAY_PARAM = CurlMultiInterface::BLOCKING;
- const RETRY_PARAM = 'plugins.backoff.retry_count';
- const RETRY_EVENT = 'plugins.backoff.retry';
-
- /** @var BackoffStrategyInterface Backoff strategy */
- protected $strategy;
-
- /**
- * @param BackoffStrategyInterface $strategy The backoff strategy used to determine whether or not to retry and
- * the amount of delay between retries.
- */
- public function __construct(BackoffStrategyInterface $strategy = null)
- {
- $this->strategy = $strategy;
- }
-
- /**
- * Retrieve a basic truncated exponential backoff plugin that will retry HTTP errors and cURL errors
- *
- * @param int $maxRetries Maximum number of retries
- * @param array $httpCodes HTTP response codes to retry
- * @param array $curlCodes cURL error codes to retry
- *
- * @return self
- */
- public static function getExponentialBackoff(
- $maxRetries = 3,
- array $httpCodes = null,
- array $curlCodes = null
- ) {
- return new self(new TruncatedBackoffStrategy($maxRetries,
- new HttpBackoffStrategy($httpCodes,
- new CurlBackoffStrategy($curlCodes,
- new ExponentialBackoffStrategy()
- )
- )
- ));
- }
-
- public static function getAllEvents()
- {
- return array(self::RETRY_EVENT);
- }
-
- public static function getSubscribedEvents()
- {
- return array(
- 'request.sent' => 'onRequestSent',
- 'request.exception' => 'onRequestSent',
- CurlMultiInterface::POLLING_REQUEST => 'onRequestPoll'
- );
- }
-
- /**
- * Called when a request has been sent and isn't finished processing
- *
- * @param Event $event
- */
- public function onRequestSent(Event $event)
- {
- $request = $event['request'];
- $response = $event['response'];
- $exception = $event['exception'];
-
- $params = $request->getParams();
- $retries = (int) $params->get(self::RETRY_PARAM);
- $delay = $this->strategy->getBackoffPeriod($retries, $request, $response, $exception);
-
- if ($delay !== false) {
- // Calculate how long to wait until the request should be retried
- $params->set(self::RETRY_PARAM, ++$retries)
- ->set(self::DELAY_PARAM, microtime(true) + $delay);
- // Send the request again
- $request->setState(RequestInterface::STATE_TRANSFER);
- $this->dispatch(self::RETRY_EVENT, array(
- 'request' => $request,
- 'response' => $response,
- 'handle' => ($exception && $exception instanceof CurlException) ? $exception->getCurlHandle() : null,
- 'retries' => $retries,
- 'delay' => $delay
- ));
- }
- }
-
- /**
- * Called when a request is polling in the curl multi object
- *
- * @param Event $event
- */
- public function onRequestPoll(Event $event)
- {
- $request = $event['request'];
- $delay = $request->getParams()->get(self::DELAY_PARAM);
-
- // If the duration of the delay has passed, retry the request using the pool
- if (null !== $delay && microtime(true) >= $delay) {
- // Remove the request from the pool and then add it back again. This is required for cURL to know that we
- // want to retry sending the easy handle.
- $request->getParams()->remove(self::DELAY_PARAM);
- // Rewind the request body if possible
- if ($request instanceof EntityEnclosingRequestInterface && $request->getBody()) {
- $request->getBody()->seek(0);
- }
- $multi = $event['curl_multi'];
- $multi->remove($request);
- $multi->add($request);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php
deleted file mode 100644
index 4e590dbe0f1..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Strategy to determine if a request should be retried and how long to delay between retries
- */
-interface BackoffStrategyInterface
-{
- /**
- * Get the amount of time to delay in seconds before retrying a request
- *
- * @param int $retries Number of retries of the request
- * @param RequestInterface $request Request that was sent
- * @param Response $response Response that was received. Note that there may not be a response
- * @param HttpException $e Exception that was encountered if any
- *
- * @return bool|int Returns false to not retry or the number of seconds to delay between retries
- */
- public function getBackoffPeriod(
- $retries,
- RequestInterface $request,
- Response $response = null,
- HttpException $e = null
- );
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CallbackBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CallbackBackoffStrategy.php
deleted file mode 100644
index b4f77c3df9d..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CallbackBackoffStrategy.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Strategy that will invoke a closure to determine whether or not to retry with a delay
- */
-class CallbackBackoffStrategy extends AbstractBackoffStrategy
-{
- /** @var \Closure|array|mixed Callable method to invoke */
- protected $callback;
-
- /** @var bool Whether or not this strategy makes a retry decision */
- protected $decision;
-
- /**
- * @param \Closure|array|mixed $callback Callable method to invoke
- * @param bool $decision Set to true if this strategy makes a backoff decision
- * @param BackoffStrategyInterface $next The optional next strategy
- *
- * @throws InvalidArgumentException
- */
- public function __construct($callback, $decision, BackoffStrategyInterface $next = null)
- {
- if (!is_callable($callback)) {
- throw new InvalidArgumentException('The callback must be callable');
- }
- $this->callback = $callback;
- $this->decision = (bool) $decision;
- $this->next = $next;
- }
-
- public function makesDecision()
- {
- return $this->decision;
- }
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- return call_user_func($this->callback, $retries, $request, $response, $e);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php
deleted file mode 100644
index 061d2a407f0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Will retry the request using the same amount of delay for each retry.
- *
- * Warning: If no decision making strategies precede this strategy in the the chain, then all requests will be retried
- */
-class ConstantBackoffStrategy extends AbstractBackoffStrategy
-{
- /** @var int Amount of time for each delay */
- protected $delay;
-
- /** @param int $delay Amount of time to delay between each additional backoff */
- public function __construct($delay)
- {
- $this->delay = $delay;
- }
-
- public function makesDecision()
- {
- return false;
- }
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- return $this->delay;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php
deleted file mode 100644
index a584ed4a2be..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-use Guzzle\Http\Exception\CurlException;
-
-/**
- * Strategy used to retry when certain cURL error codes are encountered.
- */
-class CurlBackoffStrategy extends AbstractErrorCodeBackoffStrategy
-{
- /** @var array Default cURL errors to retry */
- protected static $defaultErrorCodes = array(
- CURLE_COULDNT_RESOLVE_HOST, CURLE_COULDNT_CONNECT, CURLE_PARTIAL_FILE, CURLE_WRITE_ERROR, CURLE_READ_ERROR,
- CURLE_OPERATION_TIMEOUTED, CURLE_SSL_CONNECT_ERROR, CURLE_HTTP_PORT_FAILED, CURLE_GOT_NOTHING,
- CURLE_SEND_ERROR, CURLE_RECV_ERROR
- );
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- if ($e && $e instanceof CurlException) {
- return isset($this->errorCodes[$e->getErrorNo()]) ? true : null;
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php
deleted file mode 100644
index fb2912d50e8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Implements an exponential backoff retry strategy.
- *
- * Warning: If no decision making strategies precede this strategy in the the chain, then all requests will be retried
- */
-class ExponentialBackoffStrategy extends AbstractBackoffStrategy
-{
- public function makesDecision()
- {
- return false;
- }
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- return (int) pow(2, $retries);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/HttpBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/HttpBackoffStrategy.php
deleted file mode 100644
index 9c63a14e2a6..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/HttpBackoffStrategy.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Strategy used to retry HTTP requests based on the response code.
- *
- * Retries 500 and 503 error by default.
- */
-class HttpBackoffStrategy extends AbstractErrorCodeBackoffStrategy
-{
- /** @var array Default cURL errors to retry */
- protected static $defaultErrorCodes = array(500, 503);
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- if ($response) {
- //Short circuit the rest of the checks if it was successful
- if ($response->isSuccessful()) {
- return false;
- } else {
- return isset($this->errorCodes[$response->getStatusCode()]) ? true : null;
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php
deleted file mode 100644
index b35e8a490d6..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Implements a linear backoff retry strategy.
- *
- * Warning: If no decision making strategies precede this strategy in the the chain, then all requests will be retried
- */
-class LinearBackoffStrategy extends AbstractBackoffStrategy
-{
- /** @var int Amount of time to progress each delay */
- protected $step;
-
- /**
- * @param int $step Amount of time to increase the delay each additional backoff
- */
- public function __construct($step = 1)
- {
- $this->step = $step;
- }
-
- public function makesDecision()
- {
- return false;
- }
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- return $retries * $this->step;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php
deleted file mode 100644
index 4fd73fedfb9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Strategy used to retry HTTP requests when the response's reason phrase matches one of the registered phrases.
- */
-class ReasonPhraseBackoffStrategy extends AbstractErrorCodeBackoffStrategy
-{
- public function makesDecision()
- {
- return true;
- }
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- if ($response) {
- return isset($this->errorCodes[$response->getReasonPhrase()]) ? true : null;
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php
deleted file mode 100644
index 3608f358428..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Backoff;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\HttpException;
-
-/**
- * Strategy that will not retry more than a certain number of times.
- */
-class TruncatedBackoffStrategy extends AbstractBackoffStrategy
-{
- /** @var int Maximum number of retries per request */
- protected $max;
-
- /**
- * @param int $maxRetries Maximum number of retries per request
- * @param BackoffStrategyInterface $next The optional next strategy
- */
- public function __construct($maxRetries, BackoffStrategyInterface $next = null)
- {
- $this->max = $maxRetries;
- $this->next = $next;
- }
-
- public function makesDecision()
- {
- return true;
- }
-
- protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
- {
- return $retries < $this->max ? null : false;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/composer.json
deleted file mode 100644
index 91c122cb43a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Backoff/composer.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "guzzle/plugin-backoff",
- "description": "Guzzle backoff retry plugins",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version",
- "guzzle/log": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Backoff": "" }
- },
- "target-dir": "Guzzle/Plugin/Backoff",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php
deleted file mode 100644
index 7790f884429..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-\Guzzle\Common\Version::warn('Guzzle\Plugin\Cache\CacheKeyProviderInterface is no longer used');
-
-/**
- * @deprecated This is no longer used
- * @codeCoverageIgnore
- */
-interface CacheKeyProviderInterface {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CachePlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CachePlugin.php
deleted file mode 100644
index ce4b317420f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CachePlugin.php
+++ /dev/null
@@ -1,353 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Cache\CacheAdapterFactory;
-use Guzzle\Cache\CacheAdapterInterface;
-use Guzzle\Common\Event;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Version;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Cache\DoctrineCacheAdapter;
-use Guzzle\Http\Exception\CurlException;
-use Doctrine\Common\Cache\ArrayCache;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Plugin to enable the caching of GET and HEAD requests. Caching can be done on all requests passing through this
- * plugin or only after retrieving resources with cacheable response headers.
- *
- * This is a simple implementation of RFC 2616 and should be considered a private transparent proxy cache, meaning
- * authorization and private data can be cached.
- *
- * It also implements RFC 5861's `stale-if-error` Cache-Control extension, allowing stale cache responses to be used
- * when an error is encountered (such as a `500 Internal Server Error` or DNS failure).
- */
-class CachePlugin implements EventSubscriberInterface
-{
- /** @var RevalidationInterface Cache revalidation strategy */
- protected $revalidation;
-
- /** @var CanCacheStrategyInterface Object used to determine if a request can be cached */
- protected $canCache;
-
- /** @var CacheStorageInterface $cache Object used to cache responses */
- protected $storage;
-
- /** @var bool */
- protected $autoPurge;
-
- /**
- * @param array|CacheAdapterInterface|CacheStorageInterface $options Array of options for the cache plugin,
- * cache adapter, or cache storage object.
- * - CacheStorageInterface storage: Adapter used to cache responses
- * - RevalidationInterface revalidation: Cache revalidation strategy
- * - CanCacheInterface can_cache: Object used to determine if a request can be cached
- * - bool auto_purge Set to true to automatically PURGE resources when non-idempotent
- * requests are sent to a resource. Defaults to false.
- * @throws InvalidArgumentException if no cache is provided and Doctrine cache is not installed
- */
- public function __construct($options = null)
- {
- if (!is_array($options)) {
- if ($options instanceof CacheAdapterInterface) {
- $options = array('storage' => new DefaultCacheStorage($options));
- } elseif ($options instanceof CacheStorageInterface) {
- $options = array('storage' => $options);
- } elseif ($options) {
- $options = array('storage' => new DefaultCacheStorage(CacheAdapterFactory::fromCache($options)));
- } elseif (!class_exists('Doctrine\Common\Cache\ArrayCache')) {
- // @codeCoverageIgnoreStart
- throw new InvalidArgumentException('No cache was provided and Doctrine is not installed');
- // @codeCoverageIgnoreEnd
- }
- }
-
- $this->autoPurge = isset($options['auto_purge']) ? $options['auto_purge'] : false;
-
- // Add a cache storage if a cache adapter was provided
- $this->storage = isset($options['storage'])
- ? $options['storage']
- : new DefaultCacheStorage(new DoctrineCacheAdapter(new ArrayCache()));
-
- if (!isset($options['can_cache'])) {
- $this->canCache = new DefaultCanCacheStrategy();
- } else {
- $this->canCache = is_callable($options['can_cache'])
- ? new CallbackCanCacheStrategy($options['can_cache'])
- : $options['can_cache'];
- }
-
- // Use the provided revalidation strategy or the default
- $this->revalidation = isset($options['revalidation'])
- ? $options['revalidation']
- : new DefaultRevalidation($this->storage, $this->canCache);
- }
-
- public static function getSubscribedEvents()
- {
- return array(
- 'request.before_send' => array('onRequestBeforeSend', -255),
- 'request.sent' => array('onRequestSent', 255),
- 'request.error' => array('onRequestError', 0),
- 'request.exception' => array('onRequestException', 0),
- );
- }
-
- /**
- * Check if a response in cache will satisfy the request before sending
- *
- * @param Event $event
- */
- public function onRequestBeforeSend(Event $event)
- {
- $request = $event['request'];
- $request->addHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION));
-
- if (!$this->canCache->canCacheRequest($request)) {
- switch ($request->getMethod()) {
- case 'PURGE':
- $this->purge($request);
- $request->setResponse(new Response(200, array(), 'purged'));
- break;
- case 'PUT':
- case 'POST':
- case 'DELETE':
- case 'PATCH':
- if ($this->autoPurge) {
- $this->purge($request);
- }
- }
- return;
- }
-
- if ($response = $this->storage->fetch($request)) {
- $params = $request->getParams();
- $params['cache.lookup'] = true;
- $response->setHeader(
- 'Age',
- time() - strtotime($response->getDate() ? : $response->getLastModified() ?: 'now')
- );
- // Validate that the response satisfies the request
- if ($this->canResponseSatisfyRequest($request, $response)) {
- if (!isset($params['cache.hit'])) {
- $params['cache.hit'] = true;
- }
- $request->setResponse($response);
- }
- }
- }
-
- /**
- * If possible, store a response in cache after sending
- *
- * @param Event $event
- */
- public function onRequestSent(Event $event)
- {
- $request = $event['request'];
- $response = $event['response'];
-
- if ($request->getParams()->get('cache.hit') === null &&
- $this->canCache->canCacheRequest($request) &&
- $this->canCache->canCacheResponse($response)
- ) {
- $this->storage->cache($request, $response);
- }
-
- $this->addResponseHeaders($request, $response);
- }
-
- /**
- * If possible, return a cache response on an error
- *
- * @param Event $event
- */
- public function onRequestError(Event $event)
- {
- $request = $event['request'];
-
- if (!$this->canCache->canCacheRequest($request)) {
- return;
- }
-
- if ($response = $this->storage->fetch($request)) {
- $response->setHeader(
- 'Age',
- time() - strtotime($response->getLastModified() ? : $response->getDate() ?: 'now')
- );
-
- if ($this->canResponseSatisfyFailedRequest($request, $response)) {
- $request->getParams()->set('cache.hit', 'error');
- $this->addResponseHeaders($request, $response);
- $event['response'] = $response;
- $event->stopPropagation();
- }
- }
- }
-
- /**
- * If possible, set a cache response on a cURL exception
- *
- * @param Event $event
- *
- * @return null
- */
- public function onRequestException(Event $event)
- {
- if (!$event['exception'] instanceof CurlException) {
- return;
- }
-
- $request = $event['request'];
- if (!$this->canCache->canCacheRequest($request)) {
- return;
- }
-
- if ($response = $this->storage->fetch($request)) {
- $response->setHeader('Age', time() - strtotime($response->getDate() ? : 'now'));
- if (!$this->canResponseSatisfyFailedRequest($request, $response)) {
- return;
- }
- $request->getParams()->set('cache.hit', 'error');
- $request->setResponse($response);
- $this->addResponseHeaders($request, $response);
- $event->stopPropagation();
- }
- }
-
- /**
- * Check if a cache response satisfies a request's caching constraints
- *
- * @param RequestInterface $request Request to validate
- * @param Response $response Response to validate
- *
- * @return bool
- */
- public function canResponseSatisfyRequest(RequestInterface $request, Response $response)
- {
- $responseAge = $response->calculateAge();
- $reqc = $request->getHeader('Cache-Control');
- $resc = $response->getHeader('Cache-Control');
-
- // Check the request's max-age header against the age of the response
- if ($reqc && $reqc->hasDirective('max-age') &&
- $responseAge > $reqc->getDirective('max-age')) {
- return false;
- }
-
- // Check the response's max-age header
- if ($response->isFresh() === false) {
- $maxStale = $reqc ? $reqc->getDirective('max-stale') : null;
- if (null !== $maxStale) {
- if ($maxStale !== true && $response->getFreshness() < (-1 * $maxStale)) {
- return false;
- }
- } elseif ($resc && $resc->hasDirective('max-age')
- && $responseAge > $resc->getDirective('max-age')
- ) {
- return false;
- }
- }
-
- if ($this->revalidation->shouldRevalidate($request, $response)) {
- try {
- return $this->revalidation->revalidate($request, $response);
- } catch (CurlException $e) {
- $request->getParams()->set('cache.hit', 'error');
- return $this->canResponseSatisfyFailedRequest($request, $response);
- }
- }
-
- return true;
- }
-
- /**
- * Check if a cache response satisfies a failed request's caching constraints
- *
- * @param RequestInterface $request Request to validate
- * @param Response $response Response to validate
- *
- * @return bool
- */
- public function canResponseSatisfyFailedRequest(RequestInterface $request, Response $response)
- {
- $reqc = $request->getHeader('Cache-Control');
- $resc = $response->getHeader('Cache-Control');
- $requestStaleIfError = $reqc ? $reqc->getDirective('stale-if-error') : null;
- $responseStaleIfError = $resc ? $resc->getDirective('stale-if-error') : null;
-
- if (!$requestStaleIfError && !$responseStaleIfError) {
- return false;
- }
-
- if (is_numeric($requestStaleIfError) && $response->getAge() - $response->getMaxAge() > $requestStaleIfError) {
- return false;
- }
-
- if (is_numeric($responseStaleIfError) && $response->getAge() - $response->getMaxAge() > $responseStaleIfError) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Purge all cache entries for a given URL
- *
- * @param string $url URL to purge
- */
- public function purge($url)
- {
- // BC compatibility with previous version that accepted a Request object
- $url = $url instanceof RequestInterface ? $url->getUrl() : $url;
- $this->storage->purge($url);
- }
-
- /**
- * Add the plugin's headers to a response
- *
- * @param RequestInterface $request Request
- * @param Response $response Response to add headers to
- */
- protected function addResponseHeaders(RequestInterface $request, Response $response)
- {
- $params = $request->getParams();
- $response->setHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION));
-
- $lookup = ($params['cache.lookup'] === true ? 'HIT' : 'MISS') . ' from GuzzleCache';
- if ($header = $response->getHeader('X-Cache-Lookup')) {
- // Don't add duplicates
- $values = $header->toArray();
- $values[] = $lookup;
- $response->setHeader('X-Cache-Lookup', array_unique($values));
- } else {
- $response->setHeader('X-Cache-Lookup', $lookup);
- }
-
- if ($params['cache.hit'] === true) {
- $xcache = 'HIT from GuzzleCache';
- } elseif ($params['cache.hit'] == 'error') {
- $xcache = 'HIT_ERROR from GuzzleCache';
- } else {
- $xcache = 'MISS from GuzzleCache';
- }
-
- if ($header = $response->getHeader('X-Cache')) {
- // Don't add duplicates
- $values = $header->toArray();
- $values[] = $xcache;
- $response->setHeader('X-Cache', array_unique($values));
- } else {
- $response->setHeader('X-Cache', $xcache);
- }
-
- if ($response->isFresh() === false) {
- $response->addHeader('Warning', sprintf('110 GuzzleCache/%s "Response is stale"', Version::VERSION));
- if ($params['cache.hit'] === 'error') {
- $response->addHeader('Warning', sprintf('111 GuzzleCache/%s "Revalidation failed"', Version::VERSION));
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheStorageInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheStorageInterface.php
deleted file mode 100644
index f3d9154584c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CacheStorageInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Interface used to cache HTTP requests
- */
-interface CacheStorageInterface
-{
- /**
- * Get a Response from the cache for a request
- *
- * @param RequestInterface $request
- *
- * @return null|Response
- */
- public function fetch(RequestInterface $request);
-
- /**
- * Cache an HTTP request
- *
- * @param RequestInterface $request Request being cached
- * @param Response $response Response to cache
- */
- public function cache(RequestInterface $request, Response $response);
-
- /**
- * Deletes cache entries that match a request
- *
- * @param RequestInterface $request Request to delete from cache
- */
- public function delete(RequestInterface $request);
-
- /**
- * Purge all cache entries for a given URL
- *
- * @param string $url
- */
- public function purge($url);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CallbackCanCacheStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CallbackCanCacheStrategy.php
deleted file mode 100644
index 2d271e31eec..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CallbackCanCacheStrategy.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Determines if a request can be cached using a callback
- */
-class CallbackCanCacheStrategy extends DefaultCanCacheStrategy
-{
- /** @var callable Callback for request */
- protected $requestCallback;
-
- /** @var callable Callback for response */
- protected $responseCallback;
-
- /**
- * @param \Closure|array|mixed $requestCallback Callable method to invoke for requests
- * @param \Closure|array|mixed $responseCallback Callable method to invoke for responses
- *
- * @throws InvalidArgumentException
- */
- public function __construct($requestCallback = null, $responseCallback = null)
- {
- if ($requestCallback && !is_callable($requestCallback)) {
- throw new InvalidArgumentException('Method must be callable');
- }
-
- if ($responseCallback && !is_callable($responseCallback)) {
- throw new InvalidArgumentException('Method must be callable');
- }
-
- $this->requestCallback = $requestCallback;
- $this->responseCallback = $responseCallback;
- }
-
- public function canCacheRequest(RequestInterface $request)
- {
- return $this->requestCallback
- ? call_user_func($this->requestCallback, $request)
- : parent::canCacheRequest($request);
- }
-
- public function canCacheResponse(Response $response)
- {
- return $this->responseCallback
- ? call_user_func($this->responseCallback, $response)
- : parent::canCacheResponse($response);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php
deleted file mode 100644
index 6e01a8e74a7..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Strategy used to determine if a request can be cached
- */
-interface CanCacheStrategyInterface
-{
- /**
- * Determine if a request can be cached
- *
- * @param RequestInterface $request Request to determine
- *
- * @return bool
- */
- public function canCacheRequest(RequestInterface $request);
-
- /**
- * Determine if a response can be cached
- *
- * @param Response $response Response to determine
- *
- * @return bool
- */
- public function canCacheResponse(Response $response);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php
deleted file mode 100644
index ec0dc4ed141..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-
-\Guzzle\Common\Version::warn('Guzzle\Plugin\Cache\DefaultCacheKeyProvider is no longer used');
-
-/**
- * @deprecated This class is no longer used
- * @codeCoverageIgnore
- */
-class DefaultCacheKeyProvider implements CacheKeyProviderInterface
-{
- public function getCacheKey(RequestInterface $request)
- {
- // See if the key has already been calculated
- $key = $request->getParams()->get(self::CACHE_KEY);
-
- if (!$key) {
-
- $cloned = clone $request;
- $cloned->removeHeader('Cache-Control');
-
- // Check to see how and if the key should be filtered
- foreach (explode(';', $request->getParams()->get(self::CACHE_KEY_FILTER)) as $part) {
- $pieces = array_map('trim', explode('=', $part));
- if (isset($pieces[1])) {
- foreach (array_map('trim', explode(',', $pieces[1])) as $remove) {
- if ($pieces[0] == 'header') {
- $cloned->removeHeader($remove);
- } elseif ($pieces[0] == 'query') {
- $cloned->getQuery()->remove($remove);
- }
- }
- }
- }
-
- $raw = (string) $cloned;
- $key = 'GZ' . md5($raw);
- $request->getParams()->set(self::CACHE_KEY, $key)->set(self::CACHE_KEY_RAW, $raw);
- }
-
- return $key;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheStorage.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheStorage.php
deleted file mode 100644
index 555c9b79c7c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCacheStorage.php
+++ /dev/null
@@ -1,251 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Cache\CacheAdapterFactory;
-use Guzzle\Cache\CacheAdapterInterface;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Http\Message\MessageInterface;
-use Guzzle\Http\Message\Request;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Default cache storage implementation
- */
-class DefaultCacheStorage implements CacheStorageInterface
-{
- /** @var string */
- protected $keyPrefix;
-
- /** @var CacheAdapterInterface Cache used to store cache data */
- protected $cache;
-
- /** @var int Default cache TTL */
- protected $defaultTtl;
-
- /**
- * @param mixed $cache Cache used to store cache data
- * @param string $keyPrefix Provide an optional key prefix to prefix on all cache keys
- * @param int $defaultTtl Default cache TTL
- */
- public function __construct($cache, $keyPrefix = '', $defaultTtl = 3600)
- {
- $this->cache = CacheAdapterFactory::fromCache($cache);
- $this->defaultTtl = $defaultTtl;
- $this->keyPrefix = $keyPrefix;
- }
-
- public function cache(RequestInterface $request, Response $response)
- {
- $currentTime = time();
- $ttl = $request->getParams()->get('cache.override_ttl') ?: $response->getMaxAge() ?: $this->defaultTtl;
-
- if ($cacheControl = $response->getHeader('Cache-Control')) {
- $stale = $cacheControl->getDirective('stale-if-error');
- $ttl += $stale == true ? $ttl : $stale;
- }
-
- // Determine which manifest key should be used
- $key = $this->getCacheKey($request);
- $persistedRequest = $this->persistHeaders($request);
- $entries = array();
-
- if ($manifest = $this->cache->fetch($key)) {
- // Determine which cache entries should still be in the cache
- $vary = $response->getVary();
- foreach (unserialize($manifest) as $entry) {
- // Check if the entry is expired
- if ($entry[4] < $currentTime) {
- continue;
- }
- $entry[1]['vary'] = isset($entry[1]['vary']) ? $entry[1]['vary'] : '';
- if ($vary != $entry[1]['vary'] || !$this->requestsMatch($vary, $entry[0], $persistedRequest)) {
- $entries[] = $entry;
- }
- }
- }
-
- // Persist the response body if needed
- $bodyDigest = null;
- if ($response->getBody() && $response->getBody()->getContentLength() > 0) {
- $bodyDigest = $this->getBodyKey($request->getUrl(), $response->getBody());
- $this->cache->save($bodyDigest, (string) $response->getBody(), $ttl);
- }
-
- array_unshift($entries, array(
- $persistedRequest,
- $this->persistHeaders($response),
- $response->getStatusCode(),
- $bodyDigest,
- $currentTime + $ttl
- ));
-
- $this->cache->save($key, serialize($entries));
- }
-
- public function delete(RequestInterface $request)
- {
- $key = $this->getCacheKey($request);
- if ($entries = $this->cache->fetch($key)) {
- // Delete each cached body
- foreach (unserialize($entries) as $entry) {
- if ($entry[3]) {
- $this->cache->delete($entry[3]);
- }
- }
- $this->cache->delete($key);
- }
- }
-
- public function purge($url)
- {
- foreach (array('GET', 'HEAD', 'POST', 'PUT', 'DELETE') as $method) {
- $this->delete(new Request($method, $url));
- }
- }
-
- public function fetch(RequestInterface $request)
- {
- $key = $this->getCacheKey($request);
- if (!($entries = $this->cache->fetch($key))) {
- return null;
- }
-
- $match = null;
- $headers = $this->persistHeaders($request);
- $entries = unserialize($entries);
- foreach ($entries as $index => $entry) {
- if ($this->requestsMatch(isset($entry[1]['vary']) ? $entry[1]['vary'] : '', $headers, $entry[0])) {
- $match = $entry;
- break;
- }
- }
-
- if (!$match) {
- return null;
- }
-
- // Ensure that the response is not expired
- $response = null;
- if ($match[4] < time()) {
- $response = -1;
- } else {
- $response = new Response($match[2], $match[1]);
- if ($match[3]) {
- if ($body = $this->cache->fetch($match[3])) {
- $response->setBody($body);
- } else {
- // The response is not valid because the body was somehow deleted
- $response = -1;
- }
- }
- }
-
- if ($response === -1) {
- // Remove the entry from the metadata and update the cache
- unset($entries[$index]);
- if ($entries) {
- $this->cache->save($key, serialize($entries));
- } else {
- $this->cache->delete($key);
- }
- return null;
- }
-
- return $response;
- }
-
- /**
- * Hash a request URL into a string that returns cache metadata
- *
- * @param RequestInterface $request
- *
- * @return string
- */
- protected function getCacheKey(RequestInterface $request)
- {
- // Allow cache.key_filter to trim down the URL cache key by removing generate query string values (e.g. auth)
- if ($filter = $request->getParams()->get('cache.key_filter')) {
- $url = $request->getUrl(true);
- foreach (explode(',', $filter) as $remove) {
- $url->getQuery()->remove(trim($remove));
- }
- } else {
- $url = $request->getUrl();
- }
-
- return $this->keyPrefix . md5($request->getMethod() . ' ' . $url);
- }
-
- /**
- * Create a cache key for a response's body
- *
- * @param string $url URL of the entry
- * @param EntityBodyInterface $body Response body
- *
- * @return string
- */
- protected function getBodyKey($url, EntityBodyInterface $body)
- {
- return $this->keyPrefix . md5($url) . $body->getContentMd5();
- }
-
- /**
- * Determines whether two Request HTTP header sets are non-varying
- *
- * @param string $vary Response vary header
- * @param array $r1 HTTP header array
- * @param array $r2 HTTP header array
- *
- * @return bool
- */
- private function requestsMatch($vary, $r1, $r2)
- {
- if ($vary) {
- foreach (explode(',', $vary) as $header) {
- $key = trim(strtolower($header));
- $v1 = isset($r1[$key]) ? $r1[$key] : null;
- $v2 = isset($r2[$key]) ? $r2[$key] : null;
- if ($v1 !== $v2) {
- return false;
- }
- }
- }
-
- return true;
- }
-
- /**
- * Creates an array of cacheable and normalized message headers
- *
- * @param MessageInterface $message
- *
- * @return array
- */
- private function persistHeaders(MessageInterface $message)
- {
- // Headers are excluded from the caching (see RFC 2616:13.5.1)
- static $noCache = array(
- 'age' => true,
- 'connection' => true,
- 'keep-alive' => true,
- 'proxy-authenticate' => true,
- 'proxy-authorization' => true,
- 'te' => true,
- 'trailers' => true,
- 'transfer-encoding' => true,
- 'upgrade' => true,
- 'set-cookie' => true,
- 'set-cookie2' => true
- );
-
- // Clone the response to not destroy any necessary headers when caching
- $headers = $message->getHeaders()->getAll();
- $headers = array_diff_key($headers, $noCache);
- // Cast the headers to a string
- $headers = array_map(function ($h) { return (string) $h; }, $headers);
-
- return $headers;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php
deleted file mode 100644
index 3ca1fbf19d6..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Default strategy used to determine of an HTTP request can be cached
- */
-class DefaultCanCacheStrategy implements CanCacheStrategyInterface
-{
- public function canCacheRequest(RequestInterface $request)
- {
- // Only GET and HEAD requests can be cached
- if ($request->getMethod() != RequestInterface::GET && $request->getMethod() != RequestInterface::HEAD) {
- return false;
- }
-
- // Never cache requests when using no-store
- if ($request->hasHeader('Cache-Control') && $request->getHeader('Cache-Control')->hasDirective('no-store')) {
- return false;
- }
-
- return true;
- }
-
- public function canCacheResponse(Response $response)
- {
- return $response->isSuccessful() && $response->canCache();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultRevalidation.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultRevalidation.php
deleted file mode 100644
index af33234eef8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DefaultRevalidation.php
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Exception\BadResponseException;
-
-/**
- * Default revalidation strategy
- */
-class DefaultRevalidation implements RevalidationInterface
-{
- /** @var CacheStorageInterface Cache object storing cache data */
- protected $storage;
-
- /** @var CanCacheStrategyInterface */
- protected $canCache;
-
- /**
- * @param CacheStorageInterface $cache Cache storage
- * @param CanCacheStrategyInterface $canCache Determines if a message can be cached
- */
- public function __construct(CacheStorageInterface $cache, CanCacheStrategyInterface $canCache = null)
- {
- $this->storage = $cache;
- $this->canCache = $canCache ?: new DefaultCanCacheStrategy();
- }
-
- public function revalidate(RequestInterface $request, Response $response)
- {
- try {
- $revalidate = $this->createRevalidationRequest($request, $response);
- $validateResponse = $revalidate->send();
- if ($validateResponse->getStatusCode() == 200) {
- return $this->handle200Response($request, $validateResponse);
- } elseif ($validateResponse->getStatusCode() == 304) {
- return $this->handle304Response($request, $validateResponse, $response);
- }
- } catch (BadResponseException $e) {
- $this->handleBadResponse($e);
- }
-
- // Other exceptions encountered in the revalidation request are ignored
- // in hopes that sending a request to the origin server will fix it
- return false;
- }
-
- public function shouldRevalidate(RequestInterface $request, Response $response)
- {
- if ($request->getMethod() != RequestInterface::GET) {
- return false;
- }
-
- $reqCache = $request->getHeader('Cache-Control');
- $resCache = $response->getHeader('Cache-Control');
-
- $revalidate = $request->getHeader('Pragma') == 'no-cache' ||
- ($reqCache && ($reqCache->hasDirective('no-cache') || $reqCache->hasDirective('must-revalidate'))) ||
- ($resCache && ($resCache->hasDirective('no-cache') || $resCache->hasDirective('must-revalidate')));
-
- // Use the strong ETag validator if available and the response contains no Cache-Control directive
- if (!$revalidate && !$resCache && $response->hasHeader('ETag')) {
- $revalidate = true;
- }
-
- return $revalidate;
- }
-
- /**
- * Handles a bad response when attempting to revalidate
- *
- * @param BadResponseException $e Exception encountered
- *
- * @throws BadResponseException
- */
- protected function handleBadResponse(BadResponseException $e)
- {
- // 404 errors mean the resource no longer exists, so remove from
- // cache, and prevent an additional request by throwing the exception
- if ($e->getResponse()->getStatusCode() == 404) {
- $this->storage->delete($e->getRequest());
- throw $e;
- }
- }
-
- /**
- * Creates a request to use for revalidation
- *
- * @param RequestInterface $request Request
- * @param Response $response Response to revalidate
- *
- * @return RequestInterface returns a revalidation request
- */
- protected function createRevalidationRequest(RequestInterface $request, Response $response)
- {
- $revalidate = clone $request;
- $revalidate->removeHeader('Pragma')->removeHeader('Cache-Control');
-
- if ($response->getLastModified()) {
- $revalidate->setHeader('If-Modified-Since', $response->getLastModified());
- }
-
- if ($response->getEtag()) {
- $revalidate->setHeader('If-None-Match', $response->getEtag());
- }
-
- // Remove any cache plugins that might be on the request to prevent infinite recursive revalidations
- $dispatcher = $revalidate->getEventDispatcher();
- foreach ($dispatcher->getListeners() as $eventName => $listeners) {
- foreach ($listeners as $listener) {
- if (is_array($listener) && $listener[0] instanceof CachePlugin) {
- $dispatcher->removeListener($eventName, $listener);
- }
- }
- }
-
- return $revalidate;
- }
-
- /**
- * Handles a 200 response response from revalidating. The server does not support validation, so use this response.
- *
- * @param RequestInterface $request Request that was sent
- * @param Response $validateResponse Response received
- *
- * @return bool Returns true if valid, false if invalid
- */
- protected function handle200Response(RequestInterface $request, Response $validateResponse)
- {
- $request->setResponse($validateResponse);
- if ($this->canCache->canCacheResponse($validateResponse)) {
- $this->storage->cache($request, $validateResponse);
- }
-
- return false;
- }
-
- /**
- * Handle a 304 response and ensure that it is still valid
- *
- * @param RequestInterface $request Request that was sent
- * @param Response $validateResponse Response received
- * @param Response $response Original cached response
- *
- * @return bool Returns true if valid, false if invalid
- */
- protected function handle304Response(RequestInterface $request, Response $validateResponse, Response $response)
- {
- static $replaceHeaders = array('Date', 'Expires', 'Cache-Control', 'ETag', 'Last-Modified');
-
- // Make sure that this response has the same ETag
- if ($validateResponse->getEtag() != $response->getEtag()) {
- return false;
- }
-
- // Replace cached headers with any of these headers from the
- // origin server that might be more up to date
- $modified = false;
- foreach ($replaceHeaders as $name) {
- if ($validateResponse->hasHeader($name)) {
- $modified = true;
- $response->setHeader($name, $validateResponse->getHeader($name));
- }
- }
-
- // Store the updated response in cache
- if ($modified && $this->canCache->canCacheResponse($response)) {
- $this->storage->cache($request, $response);
- }
-
- return true;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DenyRevalidation.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DenyRevalidation.php
deleted file mode 100644
index 88b86f3ca1d..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/DenyRevalidation.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Never performs cache revalidation and just assumes the request is invalid
- */
-class DenyRevalidation extends DefaultRevalidation
-{
- public function __construct() {}
-
- public function revalidate(RequestInterface $request, Response $response)
- {
- return false;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/RevalidationInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/RevalidationInterface.php
deleted file mode 100644
index 52353d8899f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/RevalidationInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Cache revalidation interface
- */
-interface RevalidationInterface
-{
- /**
- * Performs a cache revalidation
- *
- * @param RequestInterface $request Request to revalidate
- * @param Response $response Response that was received
- *
- * @return bool Returns true if the request can be cached
- */
- public function revalidate(RequestInterface $request, Response $response);
-
- /**
- * Returns true if the response should be revalidated
- *
- * @param RequestInterface $request Request to check
- * @param Response $response Response to check
- *
- * @return bool
- */
- public function shouldRevalidate(RequestInterface $request, Response $response);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/SkipRevalidation.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/SkipRevalidation.php
deleted file mode 100644
index 10b5c115214..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/SkipRevalidation.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cache;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Never performs cache revalidation and just assumes the request is still ok
- */
-class SkipRevalidation extends DefaultRevalidation
-{
- public function __construct() {}
-
- public function revalidate(RequestInterface $request, Response $response)
- {
- return true;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/composer.json
deleted file mode 100644
index 674d8c497e2..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cache/composer.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "guzzle/plugin-cache",
- "description": "Guzzle HTTP cache plugin",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version",
- "guzzle/cache": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Cache": "" }
- },
- "target-dir": "Guzzle/Plugin/Cache",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Cookie.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Cookie.php
deleted file mode 100644
index 5218e5f0e42..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Cookie.php
+++ /dev/null
@@ -1,538 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cookie;
-
-use Guzzle\Common\ToArrayInterface;
-
-/**
- * Set-Cookie object
- */
-class Cookie implements ToArrayInterface
-{
- /** @var array Cookie data */
- protected $data;
-
- /**
- * @var string ASCII codes not valid for for use in a cookie name
- *
- * Cookie names are defined as 'token', according to RFC 2616, Section 2.2
- * A valid token may contain any CHAR except CTLs (ASCII 0 - 31 or 127)
- * or any of the following separators
- */
- protected static $invalidCharString;
-
- /**
- * Gets an array of invalid cookie characters
- *
- * @return array
- */
- protected static function getInvalidCharacters()
- {
- if (!self::$invalidCharString) {
- self::$invalidCharString = implode('', array_map('chr', array_merge(
- range(0, 32),
- array(34, 40, 41, 44, 47),
- array(58, 59, 60, 61, 62, 63, 64, 91, 92, 93, 123, 125, 127)
- )));
- }
-
- return self::$invalidCharString;
- }
-
- /**
- * @param array $data Array of cookie data provided by a Cookie parser
- */
- public function __construct(array $data = array())
- {
- static $defaults = array(
- 'name' => '',
- 'value' => '',
- 'domain' => '',
- 'path' => '/',
- 'expires' => null,
- 'max_age' => 0,
- 'comment' => null,
- 'comment_url' => null,
- 'port' => array(),
- 'version' => null,
- 'secure' => false,
- 'discard' => false,
- 'http_only' => false
- );
-
- $this->data = array_merge($defaults, $data);
- // Extract the expires value and turn it into a UNIX timestamp if needed
- if (!$this->getExpires() && $this->getMaxAge()) {
- // Calculate the expires date
- $this->setExpires(time() + (int) $this->getMaxAge());
- } elseif ($this->getExpires() && !is_numeric($this->getExpires())) {
- $this->setExpires(strtotime($this->getExpires()));
- }
- }
-
- /**
- * Get the cookie as an array
- *
- * @return array
- */
- public function toArray()
- {
- return $this->data;
- }
-
- /**
- * Get the cookie name
- *
- * @return string
- */
- public function getName()
- {
- return $this->data['name'];
- }
-
- /**
- * Set the cookie name
- *
- * @param string $name Cookie name
- *
- * @return Cookie
- */
- public function setName($name)
- {
- return $this->setData('name', $name);
- }
-
- /**
- * Get the cookie value
- *
- * @return string
- */
- public function getValue()
- {
- return $this->data['value'];
- }
-
- /**
- * Set the cookie value
- *
- * @param string $value Cookie value
- *
- * @return Cookie
- */
- public function setValue($value)
- {
- return $this->setData('value', $value);
- }
-
- /**
- * Get the domain
- *
- * @return string|null
- */
- public function getDomain()
- {
- return $this->data['domain'];
- }
-
- /**
- * Set the domain of the cookie
- *
- * @param string $domain
- *
- * @return Cookie
- */
- public function setDomain($domain)
- {
- return $this->setData('domain', $domain);
- }
-
- /**
- * Get the path
- *
- * @return string
- */
- public function getPath()
- {
- return $this->data['path'];
- }
-
- /**
- * Set the path of the cookie
- *
- * @param string $path Path of the cookie
- *
- * @return Cookie
- */
- public function setPath($path)
- {
- return $this->setData('path', $path);
- }
-
- /**
- * Maximum lifetime of the cookie in seconds
- *
- * @return int|null
- */
- public function getMaxAge()
- {
- return $this->data['max_age'];
- }
-
- /**
- * Set the max-age of the cookie
- *
- * @param int $maxAge Max age of the cookie in seconds
- *
- * @return Cookie
- */
- public function setMaxAge($maxAge)
- {
- return $this->setData('max_age', $maxAge);
- }
-
- /**
- * The UNIX timestamp when the cookie expires
- *
- * @return mixed
- */
- public function getExpires()
- {
- return $this->data['expires'];
- }
-
- /**
- * Set the unix timestamp for which the cookie will expire
- *
- * @param int $timestamp Unix timestamp
- *
- * @return Cookie
- */
- public function setExpires($timestamp)
- {
- return $this->setData('expires', $timestamp);
- }
-
- /**
- * Version of the cookie specification. RFC 2965 is 1
- *
- * @return mixed
- */
- public function getVersion()
- {
- return $this->data['version'];
- }
-
- /**
- * Set the cookie version
- *
- * @param string|int $version Version to set
- *
- * @return Cookie
- */
- public function setVersion($version)
- {
- return $this->setData('version', $version);
- }
-
- /**
- * Get whether or not this is a secure cookie
- *
- * @return null|bool
- */
- public function getSecure()
- {
- return $this->data['secure'];
- }
-
- /**
- * Set whether or not the cookie is secure
- *
- * @param bool $secure Set to true or false if secure
- *
- * @return Cookie
- */
- public function setSecure($secure)
- {
- return $this->setData('secure', (bool) $secure);
- }
-
- /**
- * Get whether or not this is a session cookie
- *
- * @return null|bool
- */
- public function getDiscard()
- {
- return $this->data['discard'];
- }
-
- /**
- * Set whether or not this is a session cookie
- *
- * @param bool $discard Set to true or false if this is a session cookie
- *
- * @return Cookie
- */
- public function setDiscard($discard)
- {
- return $this->setData('discard', $discard);
- }
-
- /**
- * Get the comment
- *
- * @return string|null
- */
- public function getComment()
- {
- return $this->data['comment'];
- }
-
- /**
- * Set the comment of the cookie
- *
- * @param string $comment Cookie comment
- *
- * @return Cookie
- */
- public function setComment($comment)
- {
- return $this->setData('comment', $comment);
- }
-
- /**
- * Get the comment URL of the cookie
- *
- * @return string|null
- */
- public function getCommentUrl()
- {
- return $this->data['comment_url'];
- }
-
- /**
- * Set the comment URL of the cookie
- *
- * @param string $commentUrl Cookie comment URL for more information
- *
- * @return Cookie
- */
- public function setCommentUrl($commentUrl)
- {
- return $this->setData('comment_url', $commentUrl);
- }
-
- /**
- * Get an array of acceptable ports this cookie can be used with
- *
- * @return array
- */
- public function getPorts()
- {
- return $this->data['port'];
- }
-
- /**
- * Set a list of acceptable ports this cookie can be used with
- *
- * @param array $ports Array of acceptable ports
- *
- * @return Cookie
- */
- public function setPorts(array $ports)
- {
- return $this->setData('port', $ports);
- }
-
- /**
- * Get whether or not this is an HTTP only cookie
- *
- * @return bool
- */
- public function getHttpOnly()
- {
- return $this->data['http_only'];
- }
-
- /**
- * Set whether or not this is an HTTP only cookie
- *
- * @param bool $httpOnly Set to true or false if this is HTTP only
- *
- * @return Cookie
- */
- public function setHttpOnly($httpOnly)
- {
- return $this->setData('http_only', $httpOnly);
- }
-
- /**
- * Get an array of extra cookie data
- *
- * @return array
- */
- public function getAttributes()
- {
- return $this->data['data'];
- }
-
- /**
- * Get a specific data point from the extra cookie data
- *
- * @param string $name Name of the data point to retrieve
- *
- * @return null|string
- */
- public function getAttribute($name)
- {
- return array_key_exists($name, $this->data['data']) ? $this->data['data'][$name] : null;
- }
-
- /**
- * Set a cookie data attribute
- *
- * @param string $name Name of the attribute to set
- * @param string $value Value to set
- *
- * @return Cookie
- */
- public function setAttribute($name, $value)
- {
- $this->data['data'][$name] = $value;
-
- return $this;
- }
-
- /**
- * Check if the cookie matches a path value
- *
- * @param string $path Path to check against
- *
- * @return bool
- */
- public function matchesPath($path)
- {
- // RFC6265 http://tools.ietf.org/search/rfc6265#section-5.1.4
- // A request-path path-matches a given cookie-path if at least one of
- // the following conditions holds:
-
- // o The cookie-path and the request-path are identical.
- if ($path == $this->getPath()) {
- return true;
- }
-
- $pos = stripos($path, $this->getPath());
- if ($pos === 0) {
- // o The cookie-path is a prefix of the request-path, and the last
- // character of the cookie-path is %x2F ("/").
- if (substr($this->getPath(), -1, 1) === "/") {
- return true;
- }
-
- // o The cookie-path is a prefix of the request-path, and the first
- // character of the request-path that is not included in the cookie-
- // path is a %x2F ("/") character.
- if (substr($path, strlen($this->getPath()), 1) === "/") {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Check if the cookie matches a domain value
- *
- * @param string $domain Domain to check against
- *
- * @return bool
- */
- public function matchesDomain($domain)
- {
- // Remove the leading '.' as per spec in RFC 6265: http://tools.ietf.org/html/rfc6265#section-5.2.3
- $cookieDomain = ltrim($this->getDomain(), '.');
-
- // Domain not set or exact match.
- if (!$cookieDomain || !strcasecmp($domain, $cookieDomain)) {
- return true;
- }
-
- // Matching the subdomain according to RFC 6265: http://tools.ietf.org/html/rfc6265#section-5.1.3
- if (filter_var($domain, FILTER_VALIDATE_IP)) {
- return false;
- }
-
- return (bool) preg_match('/\.' . preg_quote($cookieDomain, '/') . '$/i', $domain);
- }
-
- /**
- * Check if the cookie is compatible with a specific port
- *
- * @param int $port Port to check
- *
- * @return bool
- */
- public function matchesPort($port)
- {
- return count($this->getPorts()) == 0 || in_array($port, $this->getPorts());
- }
-
- /**
- * Check if the cookie is expired
- *
- * @return bool
- */
- public function isExpired()
- {
- return $this->getExpires() && time() > $this->getExpires();
- }
-
- /**
- * Check if the cookie is valid according to RFC 6265
- *
- * @return bool|string Returns true if valid or an error message if invalid
- */
- public function validate()
- {
- // Names must not be empty, but can be 0
- $name = $this->getName();
- if (empty($name) && !is_numeric($name)) {
- return 'The cookie name must not be empty';
- }
-
- // Check if any of the invalid characters are present in the cookie name
- if (strpbrk($name, self::getInvalidCharacters()) !== false) {
- return 'The cookie name must not contain invalid characters: ' . $name;
- }
-
- // Value must not be empty, but can be 0
- $value = $this->getValue();
- if (empty($value) && !is_numeric($value)) {
- return 'The cookie value must not be empty';
- }
-
- // Domains must not be empty, but can be 0
- // A "0" is not a valid internet domain, but may be used as server name in a private network
- $domain = $this->getDomain();
- if (empty($domain) && !is_numeric($domain)) {
- return 'The cookie domain must not be empty';
- }
-
- return true;
- }
-
- /**
- * Set a value and return the cookie object
- *
- * @param string $key Key to set
- * @param string $value Value to set
- *
- * @return Cookie
- */
- private function setData($key, $value)
- {
- $this->data[$key] = $value;
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php
deleted file mode 100644
index 6b675039faf..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php
+++ /dev/null
@@ -1,237 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cookie\CookieJar;
-
-use Guzzle\Plugin\Cookie\Cookie;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Parser\ParserRegistry;
-use Guzzle\Plugin\Cookie\Exception\InvalidCookieException;
-
-/**
- * Cookie cookieJar that stores cookies an an array
- */
-class ArrayCookieJar implements CookieJarInterface, \Serializable
-{
- /** @var array Loaded cookie data */
- protected $cookies = array();
-
- /** @var bool Whether or not strict mode is enabled. When enabled, exceptions will be thrown for invalid cookies */
- protected $strictMode;
-
- /**
- * @param bool $strictMode Set to true to throw exceptions when invalid cookies are added to the cookie jar
- */
- public function __construct($strictMode = false)
- {
- $this->strictMode = $strictMode;
- }
-
- /**
- * Enable or disable strict mode on the cookie jar
- *
- * @param bool $strictMode Set to true to throw exceptions when invalid cookies are added. False to ignore them.
- *
- * @return self
- */
- public function setStrictMode($strictMode)
- {
- $this->strictMode = $strictMode;
- }
-
- public function remove($domain = null, $path = null, $name = null)
- {
- $cookies = $this->all($domain, $path, $name, false, false);
- $this->cookies = array_filter($this->cookies, function (Cookie $cookie) use ($cookies) {
- return !in_array($cookie, $cookies, true);
- });
-
- return $this;
- }
-
- public function removeTemporary()
- {
- $this->cookies = array_filter($this->cookies, function (Cookie $cookie) {
- return !$cookie->getDiscard() && $cookie->getExpires();
- });
-
- return $this;
- }
-
- public function removeExpired()
- {
- $currentTime = time();
- $this->cookies = array_filter($this->cookies, function (Cookie $cookie) use ($currentTime) {
- return !$cookie->getExpires() || $currentTime < $cookie->getExpires();
- });
-
- return $this;
- }
-
- public function all($domain = null, $path = null, $name = null, $skipDiscardable = false, $skipExpired = true)
- {
- return array_values(array_filter($this->cookies, function (Cookie $cookie) use (
- $domain,
- $path,
- $name,
- $skipDiscardable,
- $skipExpired
- ) {
- return false === (($name && $cookie->getName() != $name) ||
- ($skipExpired && $cookie->isExpired()) ||
- ($skipDiscardable && ($cookie->getDiscard() || !$cookie->getExpires())) ||
- ($path && !$cookie->matchesPath($path)) ||
- ($domain && !$cookie->matchesDomain($domain)));
- }));
- }
-
- public function add(Cookie $cookie)
- {
- // Only allow cookies with set and valid domain, name, value
- $result = $cookie->validate();
- if ($result !== true) {
- if ($this->strictMode) {
- throw new InvalidCookieException($result);
- } else {
- $this->removeCookieIfEmpty($cookie);
- return false;
- }
- }
-
- // Resolve conflicts with previously set cookies
- foreach ($this->cookies as $i => $c) {
-
- // Two cookies are identical, when their path, domain, port and name are identical
- if ($c->getPath() != $cookie->getPath() ||
- $c->getDomain() != $cookie->getDomain() ||
- $c->getPorts() != $cookie->getPorts() ||
- $c->getName() != $cookie->getName()
- ) {
- continue;
- }
-
- // The previously set cookie is a discard cookie and this one is not so allow the new cookie to be set
- if (!$cookie->getDiscard() && $c->getDiscard()) {
- unset($this->cookies[$i]);
- continue;
- }
-
- // If the new cookie's expiration is further into the future, then replace the old cookie
- if ($cookie->getExpires() > $c->getExpires()) {
- unset($this->cookies[$i]);
- continue;
- }
-
- // If the value has changed, we better change it
- if ($cookie->getValue() !== $c->getValue()) {
- unset($this->cookies[$i]);
- continue;
- }
-
- // The cookie exists, so no need to continue
- return false;
- }
-
- $this->cookies[] = $cookie;
-
- return true;
- }
-
- /**
- * Serializes the cookie cookieJar
- *
- * @return string
- */
- public function serialize()
- {
- // Only serialize long term cookies and unexpired cookies
- return json_encode(array_map(function (Cookie $cookie) {
- return $cookie->toArray();
- }, $this->all(null, null, null, true, true)));
- }
-
- /**
- * Unserializes the cookie cookieJar
- */
- public function unserialize($data)
- {
- $data = json_decode($data, true);
- if (empty($data)) {
- $this->cookies = array();
- } else {
- $this->cookies = array_map(function (array $cookie) {
- return new Cookie($cookie);
- }, $data);
- }
- }
-
- /**
- * Returns the total number of stored cookies
- *
- * @return int
- */
- public function count()
- {
- return count($this->cookies);
- }
-
- /**
- * Returns an iterator
- *
- * @return \ArrayIterator
- */
- public function getIterator()
- {
- return new \ArrayIterator($this->cookies);
- }
-
- public function addCookiesFromResponse(Response $response, RequestInterface $request = null)
- {
- if ($cookieHeader = $response->getHeader('Set-Cookie')) {
- $parser = ParserRegistry::getInstance()->getParser('cookie');
- foreach ($cookieHeader as $cookie) {
- if ($parsed = $request
- ? $parser->parseCookie($cookie, $request->getHost(), $request->getPath())
- : $parser->parseCookie($cookie)
- ) {
- // Break up cookie v2 into multiple cookies
- foreach ($parsed['cookies'] as $key => $value) {
- $row = $parsed;
- $row['name'] = $key;
- $row['value'] = $value;
- unset($row['cookies']);
- $this->add(new Cookie($row));
- }
- }
- }
- }
- }
-
- public function getMatchingCookies(RequestInterface $request)
- {
- // Find cookies that match this request
- $cookies = $this->all($request->getHost(), $request->getPath());
- // Remove ineligible cookies
- foreach ($cookies as $index => $cookie) {
- if (!$cookie->matchesPort($request->getPort()) || ($cookie->getSecure() && $request->getScheme() != 'https')) {
- unset($cookies[$index]);
- }
- };
-
- return $cookies;
- }
-
- /**
- * If a cookie already exists and the server asks to set it again with a null value, the
- * cookie must be deleted.
- *
- * @param \Guzzle\Plugin\Cookie\Cookie $cookie
- */
- private function removeCookieIfEmpty(Cookie $cookie)
- {
- $cookieValue = $cookie->getValue();
- if ($cookieValue === null || $cookieValue === '') {
- $this->remove($cookie->getDomain(), $cookie->getPath(), $cookie->getName());
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php
deleted file mode 100644
index 7faa7d21f5a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cookie\CookieJar;
-
-use Guzzle\Plugin\Cookie\Cookie;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Interface for persisting cookies
- */
-interface CookieJarInterface extends \Countable, \IteratorAggregate
-{
- /**
- * Remove cookies currently held in the Cookie cookieJar.
- *
- * Invoking this method without arguments will empty the whole Cookie cookieJar. If given a $domain argument only
- * cookies belonging to that domain will be removed. If given a $domain and $path argument, cookies belonging to
- * the specified path within that domain are removed. If given all three arguments, then the cookie with the
- * specified name, path and domain is removed.
- *
- * @param string $domain Set to clear only cookies matching a domain
- * @param string $path Set to clear only cookies matching a domain and path
- * @param string $name Set to clear only cookies matching a domain, path, and name
- *
- * @return CookieJarInterface
- */
- public function remove($domain = null, $path = null, $name = null);
-
- /**
- * Discard all temporary cookies.
- *
- * Scans for all cookies in the cookieJar with either no expire field or a true discard flag. To be called when the
- * user agent shuts down according to RFC 2965.
- *
- * @return CookieJarInterface
- */
- public function removeTemporary();
-
- /**
- * Delete any expired cookies
- *
- * @return CookieJarInterface
- */
- public function removeExpired();
-
- /**
- * Add a cookie to the cookie cookieJar
- *
- * @param Cookie $cookie Cookie to add
- *
- * @return bool Returns true on success or false on failure
- */
- public function add(Cookie $cookie);
-
- /**
- * Add cookies from a {@see Guzzle\Http\Message\Response} object
- *
- * @param Response $response Response object
- * @param RequestInterface $request Request that received the response
- */
- public function addCookiesFromResponse(Response $response, RequestInterface $request = null);
-
- /**
- * Get cookies matching a request object
- *
- * @param RequestInterface $request Request object to match
- *
- * @return array
- */
- public function getMatchingCookies(RequestInterface $request);
-
- /**
- * Get all of the matching cookies
- *
- * @param string $domain Domain of the cookie
- * @param string $path Path of the cookie
- * @param string $name Name of the cookie
- * @param bool $skipDiscardable Set to TRUE to skip cookies with the Discard attribute.
- * @param bool $skipExpired Set to FALSE to include expired
- *
- * @return array Returns an array of Cookie objects
- */
- public function all($domain = null, $path = null, $name = null, $skipDiscardable = false, $skipExpired = true);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/FileCookieJar.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/FileCookieJar.php
deleted file mode 100644
index 99344cd8739..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookieJar/FileCookieJar.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cookie\CookieJar;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-/**
- * Persists non-session cookies using a JSON formatted file
- */
-class FileCookieJar extends ArrayCookieJar
-{
- /** @var string filename */
- protected $filename;
-
- /**
- * Create a new FileCookieJar object
- *
- * @param string $cookieFile File to store the cookie data
- *
- * @throws RuntimeException if the file cannot be found or created
- */
- public function __construct($cookieFile)
- {
- $this->filename = $cookieFile;
- $this->load();
- }
-
- /**
- * Saves the file when shutting down
- */
- public function __destruct()
- {
- $this->persist();
- }
-
- /**
- * Save the contents of the data array to the file
- *
- * @throws RuntimeException if the file cannot be found or created
- */
- protected function persist()
- {
- if (false === file_put_contents($this->filename, $this->serialize())) {
- // @codeCoverageIgnoreStart
- throw new RuntimeException('Unable to open file ' . $this->filename);
- // @codeCoverageIgnoreEnd
- }
- }
-
- /**
- * Load the contents of the json formatted file into the data array and discard any unsaved state
- */
- protected function load()
- {
- $json = file_get_contents($this->filename);
- if (false === $json) {
- // @codeCoverageIgnoreStart
- throw new RuntimeException('Unable to open file ' . $this->filename);
- // @codeCoverageIgnoreEnd
- }
-
- $this->unserialize($json);
- $this->cookies = $this->cookies ?: array();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookiePlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookiePlugin.php
deleted file mode 100644
index df3210ee128..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/CookiePlugin.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cookie;
-
-use Guzzle\Common\Event;
-use Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar;
-use Guzzle\Plugin\Cookie\CookieJar\CookieJarInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Adds, extracts, and persists cookies between HTTP requests
- */
-class CookiePlugin implements EventSubscriberInterface
-{
- /** @var CookieJarInterface Cookie cookieJar used to hold cookies */
- protected $cookieJar;
-
- /**
- * @param CookieJarInterface $cookieJar Cookie jar used to hold cookies. Creates an ArrayCookieJar by default.
- */
- public function __construct(CookieJarInterface $cookieJar = null)
- {
- $this->cookieJar = $cookieJar ?: new ArrayCookieJar();
- }
-
- public static function getSubscribedEvents()
- {
- return array(
- 'request.before_send' => array('onRequestBeforeSend', 125),
- 'request.sent' => array('onRequestSent', 125)
- );
- }
-
- /**
- * Get the cookie cookieJar
- *
- * @return CookieJarInterface
- */
- public function getCookieJar()
- {
- return $this->cookieJar;
- }
-
- /**
- * Add cookies before a request is sent
- *
- * @param Event $event
- */
- public function onRequestBeforeSend(Event $event)
- {
- $request = $event['request'];
- if (!$request->getParams()->get('cookies.disable')) {
- $request->removeHeader('Cookie');
- // Find cookies that match this request
- foreach ($this->cookieJar->getMatchingCookies($request) as $cookie) {
- $request->addCookie($cookie->getName(), $cookie->getValue());
- }
- }
- }
-
- /**
- * Extract cookies from a sent request
- *
- * @param Event $event
- */
- public function onRequestSent(Event $event)
- {
- $this->cookieJar->addCookiesFromResponse($event['response'], $event['request']);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php
deleted file mode 100644
index b1fa6fd8969..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Cookie\Exception;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-class InvalidCookieException extends InvalidArgumentException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/composer.json
deleted file mode 100644
index f0b52308d23..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Cookie/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-cookie",
- "description": "Guzzle cookie plugin",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Cookie": "" }
- },
- "target-dir": "Guzzle/Plugin/Cookie",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php
deleted file mode 100644
index 610e60cad18..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\CurlAuth;
-
-use Guzzle\Common\Event;
-use Guzzle\Common\Version;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Adds specified curl auth to all requests sent from a client. Defaults to CURLAUTH_BASIC if none supplied.
- * @deprecated Use $client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');
- */
-class CurlAuthPlugin implements EventSubscriberInterface
-{
- private $username;
- private $password;
- private $scheme;
-
- /**
- * @param string $username HTTP basic auth username
- * @param string $password Password
- * @param int $scheme Curl auth scheme
- */
- public function __construct($username, $password, $scheme=CURLAUTH_BASIC)
- {
- Version::warn(__CLASS__ . " is deprecated. Use \$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');");
- $this->username = $username;
- $this->password = $password;
- $this->scheme = $scheme;
- }
-
- public static function getSubscribedEvents()
- {
- return array('client.create_request' => array('onRequestCreate', 255));
- }
-
- /**
- * Add basic auth
- *
- * @param Event $event
- */
- public function onRequestCreate(Event $event)
- {
- $event['request']->setAuth($this->username, $this->password, $this->scheme);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/composer.json
deleted file mode 100644
index edc8b24e501..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/CurlAuth/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-curlauth",
- "description": "Guzzle cURL authorization plugin",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "curl", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\CurlAuth": "" }
- },
- "target-dir": "Guzzle/Plugin/CurlAuth",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php
deleted file mode 100644
index 5dce8bd6ce1..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\ErrorResponse;
-
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Http\Message\Response;
-
-/**
- * Interface used to create an exception from an error response
- */
-interface ErrorResponseExceptionInterface
-{
- /**
- * Create an exception for a command based on a command and an error response definition
- *
- * @param CommandInterface $command Command that was sent
- * @param Response $response The error response
- *
- * @return self
- */
- public static function fromCommand(CommandInterface $command, Response $response);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php
deleted file mode 100644
index 588b9c3e376..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\ErrorResponse;
-
-use Guzzle\Common\Event;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Operation;
-use Guzzle\Plugin\ErrorResponse\Exception\ErrorResponseException;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Converts generic Guzzle response exceptions into errorResponse exceptions
- */
-class ErrorResponsePlugin implements EventSubscriberInterface
-{
- public static function getSubscribedEvents()
- {
- return array('command.before_send' => array('onCommandBeforeSend', -1));
- }
-
- /**
- * Adds a listener to requests before they sent from a command
- *
- * @param Event $event Event emitted
- */
- public function onCommandBeforeSend(Event $event)
- {
- $command = $event['command'];
- if ($operation = $command->getOperation()) {
- if ($operation->getErrorResponses()) {
- $request = $command->getRequest();
- $request->getEventDispatcher()
- ->addListener('request.complete', $this->getErrorClosure($request, $command, $operation));
- }
- }
- }
-
- /**
- * @param RequestInterface $request Request that received an error
- * @param CommandInterface $command Command that created the request
- * @param Operation $operation Operation that defines the request and errors
- *
- * @return \Closure Returns a closure
- * @throws ErrorResponseException
- */
- protected function getErrorClosure(RequestInterface $request, CommandInterface $command, Operation $operation)
- {
- return function (Event $event) use ($request, $command, $operation) {
- $response = $event['response'];
- foreach ($operation->getErrorResponses() as $error) {
- if (!isset($error['class'])) {
- continue;
- }
- if (isset($error['code']) && $response->getStatusCode() != $error['code']) {
- continue;
- }
- if (isset($error['reason']) && $response->getReasonPhrase() != $error['reason']) {
- continue;
- }
- $className = $error['class'];
- $errorClassInterface = __NAMESPACE__ . '\\ErrorResponseExceptionInterface';
- if (!class_exists($className)) {
- throw new ErrorResponseException("{$className} does not exist");
- } elseif (!(in_array($errorClassInterface, class_implements($className)))) {
- throw new ErrorResponseException("{$className} must implement {$errorClassInterface}");
- }
- throw $className::fromCommand($command, $response);
- }
- };
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php
deleted file mode 100644
index 1d89e40e741..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\ErrorResponse\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-class ErrorResponseException extends RuntimeException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/composer.json
deleted file mode 100644
index 607e86137ba..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/ErrorResponse/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-error-response",
- "description": "Guzzle errorResponse plugin for creating error exceptions based on a service description",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/service": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\ErrorResponse": "" }
- },
- "target-dir": "Guzzle/Plugin/ErrorResponse",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/HistoryPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/HistoryPlugin.php
deleted file mode 100644
index 7375e892b81..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/HistoryPlugin.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\History;
-
-use Guzzle\Common\Event;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\Response;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Maintains a list of requests and responses sent using a request or client
- */
-class HistoryPlugin implements EventSubscriberInterface, \IteratorAggregate, \Countable
-{
- /** @var int The maximum number of requests to maintain in the history */
- protected $limit = 10;
-
- /** @var array Requests and responses that have passed through the plugin */
- protected $transactions = array();
-
- public static function getSubscribedEvents()
- {
- return array('request.sent' => array('onRequestSent', 9999));
- }
-
- /**
- * Convert to a string that contains all request and response headers
- *
- * @return string
- */
- public function __toString()
- {
- $lines = array();
- foreach ($this->transactions as $entry) {
- $response = isset($entry['response']) ? $entry['response'] : '';
- $lines[] = '> ' . trim($entry['request']) . "\n\n< " . trim($response) . "\n";
- }
-
- return implode("\n", $lines);
- }
-
- /**
- * Add a request to the history
- *
- * @param RequestInterface $request Request to add
- * @param Response $response Response of the request
- *
- * @return HistoryPlugin
- */
- public function add(RequestInterface $request, Response $response = null)
- {
- if (!$response && $request->getResponse()) {
- $response = $request->getResponse();
- }
-
- $this->transactions[] = array('request' => $request, 'response' => $response);
- if (count($this->transactions) > $this->getlimit()) {
- array_shift($this->transactions);
- }
-
- return $this;
- }
-
- /**
- * Set the max number of requests to store
- *
- * @param int $limit Limit
- *
- * @return HistoryPlugin
- */
- public function setLimit($limit)
- {
- $this->limit = (int) $limit;
-
- return $this;
- }
-
- /**
- * Get the request limit
- *
- * @return int
- */
- public function getLimit()
- {
- return $this->limit;
- }
-
- /**
- * Get all of the raw transactions in the form of an array of associative arrays containing
- * 'request' and 'response' keys.
- *
- * @return array
- */
- public function getAll()
- {
- return $this->transactions;
- }
-
- /**
- * Get the requests in the history
- *
- * @return \ArrayIterator
- */
- public function getIterator()
- {
- // Return an iterator just like the old iteration of the HistoryPlugin for BC compatibility (use getAll())
- return new \ArrayIterator(array_map(function ($entry) {
- $entry['request']->getParams()->set('actual_response', $entry['response']);
- return $entry['request'];
- }, $this->transactions));
- }
-
- /**
- * Get the number of requests in the history
- *
- * @return int
- */
- public function count()
- {
- return count($this->transactions);
- }
-
- /**
- * Get the last request sent
- *
- * @return RequestInterface
- */
- public function getLastRequest()
- {
- $last = end($this->transactions);
-
- return $last['request'];
- }
-
- /**
- * Get the last response in the history
- *
- * @return Response|null
- */
- public function getLastResponse()
- {
- $last = end($this->transactions);
-
- return isset($last['response']) ? $last['response'] : null;
- }
-
- /**
- * Clears the history
- *
- * @return HistoryPlugin
- */
- public function clear()
- {
- $this->transactions = array();
-
- return $this;
- }
-
- public function onRequestSent(Event $event)
- {
- $this->add($event['request'], $event['response']);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/composer.json
deleted file mode 100644
index ba0bf2c4d17..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/History/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-history",
- "description": "Guzzle history plugin",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\History": "" }
- },
- "target-dir": "Guzzle/Plugin/History",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/LogPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/LogPlugin.php
deleted file mode 100644
index cabdea854a9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/LogPlugin.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Log;
-
-use Guzzle\Common\Event;
-use Guzzle\Log\LogAdapterInterface;
-use Guzzle\Log\MessageFormatter;
-use Guzzle\Log\ClosureLogAdapter;
-use Guzzle\Http\EntityBody;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Plugin class that will add request and response logging to an HTTP request.
- *
- * The log plugin uses a message formatter that allows custom messages via template variable substitution.
- *
- * @see MessageLogger for a list of available log template variable substitutions
- */
-class LogPlugin implements EventSubscriberInterface
-{
- /** @var LogAdapterInterface Adapter responsible for writing log data */
- protected $logAdapter;
-
- /** @var MessageFormatter Formatter used to format messages before logging */
- protected $formatter;
-
- /** @var bool Whether or not to wire request and response bodies */
- protected $wireBodies;
-
- /**
- * @param LogAdapterInterface $logAdapter Adapter object used to log message
- * @param string|MessageFormatter $formatter Formatter used to format log messages or the formatter template
- * @param bool $wireBodies Set to true to track request and response bodies using a temporary
- * buffer if the bodies are not repeatable.
- */
- public function __construct(
- LogAdapterInterface $logAdapter,
- $formatter = null,
- $wireBodies = false
- ) {
- $this->logAdapter = $logAdapter;
- $this->formatter = $formatter instanceof MessageFormatter ? $formatter : new MessageFormatter($formatter);
- $this->wireBodies = $wireBodies;
- }
-
- /**
- * Get a log plugin that outputs full request, response, and curl error information to stderr
- *
- * @param bool $wireBodies Set to false to disable request/response body output when they use are not repeatable
- * @param resource $stream Stream to write to when logging. Defaults to STDERR when it is available
- *
- * @return self
- */
- public static function getDebugPlugin($wireBodies = true, $stream = null)
- {
- if ($stream === null) {
- if (defined('STDERR')) {
- $stream = STDERR;
- } else {
- $stream = fopen('php://output', 'w');
- }
- }
-
- return new self(new ClosureLogAdapter(function ($m) use ($stream) {
- fwrite($stream, $m . PHP_EOL);
- }), "# Request:\n{request}\n\n# Response:\n{response}\n\n# Errors: {curl_code} {curl_error}", $wireBodies);
- }
-
- public static function getSubscribedEvents()
- {
- return array(
- 'curl.callback.write' => array('onCurlWrite', 255),
- 'curl.callback.read' => array('onCurlRead', 255),
- 'request.before_send' => array('onRequestBeforeSend', 255),
- 'request.sent' => array('onRequestSent', 255)
- );
- }
-
- /**
- * Event triggered when curl data is read from a request
- *
- * @param Event $event
- */
- public function onCurlRead(Event $event)
- {
- // Stream the request body to the log if the body is not repeatable
- if ($wire = $event['request']->getParams()->get('request_wire')) {
- $wire->write($event['read']);
- }
- }
-
- /**
- * Event triggered when curl data is written to a response
- *
- * @param Event $event
- */
- public function onCurlWrite(Event $event)
- {
- // Stream the response body to the log if the body is not repeatable
- if ($wire = $event['request']->getParams()->get('response_wire')) {
- $wire->write($event['write']);
- }
- }
-
- /**
- * Called before a request is sent
- *
- * @param Event $event
- */
- public function onRequestBeforeSend(Event $event)
- {
- if ($this->wireBodies) {
- $request = $event['request'];
- // Ensure that curl IO events are emitted
- $request->getCurlOptions()->set('emit_io', true);
- // We need to make special handling for content wiring and non-repeatable streams.
- if ($request instanceof EntityEnclosingRequestInterface && $request->getBody()
- && (!$request->getBody()->isSeekable() || !$request->getBody()->isReadable())
- ) {
- // The body of the request cannot be recalled so logging the body will require us to buffer it
- $request->getParams()->set('request_wire', EntityBody::factory());
- }
- if (!$request->getResponseBody()->isRepeatable()) {
- // The body of the response cannot be recalled so logging the body will require us to buffer it
- $request->getParams()->set('response_wire', EntityBody::factory());
- }
- }
- }
-
- /**
- * Triggers the actual log write when a request completes
- *
- * @param Event $event
- */
- public function onRequestSent(Event $event)
- {
- $request = $event['request'];
- $response = $event['response'];
- $handle = $event['handle'];
-
- if ($wire = $request->getParams()->get('request_wire')) {
- $request = clone $request;
- $request->setBody($wire);
- }
-
- if ($wire = $request->getParams()->get('response_wire')) {
- $response = clone $response;
- $response->setBody($wire);
- }
-
- // Send the log message to the adapter, adding a category and host
- $priority = $response && $response->isError() ? LOG_ERR : LOG_DEBUG;
- $message = $this->formatter->format($request, $response, $handle);
- $this->logAdapter->log($message, $priority, array(
- 'request' => $request,
- 'response' => $response,
- 'handle' => $handle
- ));
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/composer.json
deleted file mode 100644
index 130e6da0ad9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Log/composer.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "guzzle/plugin-log",
- "description": "Guzzle log plugin for over the wire logging",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "log", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version",
- "guzzle/log": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Log": "" }
- },
- "target-dir": "Guzzle/Plugin/Log",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php
deleted file mode 100644
index 85124243309..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Md5;
-
-use Guzzle\Common\Event;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Listener used to add a ContentMD5 header to the body of a command and adds ContentMD5 validation if the
- * ValidateMD5 option is not set to false on a command
- */
-class CommandContentMd5Plugin implements EventSubscriberInterface
-{
- /** @var string Parameter used to check if the ContentMD5 value is being added */
- protected $contentMd5Param;
-
- /** @var string Parameter used to check if validation should occur on the response */
- protected $validateMd5Param;
-
- /**
- * @param string $contentMd5Param Parameter used to check if the ContentMD5 value is being added
- * @param string $validateMd5Param Parameter used to check if validation should occur on the response
- */
- public function __construct($contentMd5Param = 'ContentMD5', $validateMd5Param = 'ValidateMD5')
- {
- $this->contentMd5Param = $contentMd5Param;
- $this->validateMd5Param = $validateMd5Param;
- }
-
- public static function getSubscribedEvents()
- {
- return array('command.before_send' => array('onCommandBeforeSend', -255));
- }
-
- public function onCommandBeforeSend(Event $event)
- {
- $command = $event['command'];
- $request = $command->getRequest();
-
- // Only add an MD5 is there is a MD5 option on the operation and it has a payload
- if ($request instanceof EntityEnclosingRequestInterface && $request->getBody()
- && $command->getOperation()->hasParam($this->contentMd5Param)) {
- // Check if an MD5 checksum value should be passed along to the request
- if ($command[$this->contentMd5Param] === true) {
- if (false !== ($md5 = $request->getBody()->getContentMd5(true, true))) {
- $request->setHeader('Content-MD5', $md5);
- }
- }
- }
-
- // Check if MD5 validation should be used with the response
- if ($command[$this->validateMd5Param] === true) {
- $request->addSubscriber(new Md5ValidatorPlugin(true, false));
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php
deleted file mode 100644
index 5d7a3785e49..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Md5;
-
-use Guzzle\Common\Event;
-use Guzzle\Common\Exception\UnexpectedValueException;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Ensures that an the MD5 hash of an entity body matches the Content-MD5
- * header (if set) of an HTTP response. An exception is thrown if the
- * calculated MD5 does not match the expected MD5.
- */
-class Md5ValidatorPlugin implements EventSubscriberInterface
-{
- /** @var int Maximum Content-Length in bytes to validate */
- protected $contentLengthCutoff;
-
- /** @var bool Whether or not to compare when a Content-Encoding is present */
- protected $contentEncoded;
-
- /**
- * @param bool $contentEncoded Calculating the MD5 hash of an entity body where a Content-Encoding was
- * applied is a more expensive comparison because the entity body will need to
- * be compressed in order to get the correct hash. Set to FALSE to not
- * validate the MD5 hash of an entity body with an applied Content-Encoding.
- * @param bool|int $contentLengthCutoff Maximum Content-Length (bytes) in which a MD5 hash will be validated. Any
- * response with a Content-Length greater than this value will not be validated
- * because it will be deemed too memory intensive.
- */
- public function __construct($contentEncoded = true, $contentLengthCutoff = false)
- {
- $this->contentLengthCutoff = $contentLengthCutoff;
- $this->contentEncoded = $contentEncoded;
- }
-
- public static function getSubscribedEvents()
- {
- return array('request.complete' => array('onRequestComplete', 255));
- }
-
- /**
- * {@inheritdoc}
- * @throws UnexpectedValueException
- */
- public function onRequestComplete(Event $event)
- {
- $response = $event['response'];
-
- if (!$contentMd5 = $response->getContentMd5()) {
- return;
- }
-
- $contentEncoding = $response->getContentEncoding();
- if ($contentEncoding && !$this->contentEncoded) {
- return false;
- }
-
- // Make sure that the size of the request is under the cutoff size
- if ($this->contentLengthCutoff) {
- $size = $response->getContentLength() ?: $response->getBody()->getSize();
- if (!$size || $size > $this->contentLengthCutoff) {
- return;
- }
- }
-
- if (!$contentEncoding) {
- $hash = $response->getBody()->getContentMd5();
- } elseif ($contentEncoding == 'gzip') {
- $response->getBody()->compress('zlib.deflate');
- $hash = $response->getBody()->getContentMd5();
- $response->getBody()->uncompress();
- } elseif ($contentEncoding == 'compress') {
- $response->getBody()->compress('bzip2.compress');
- $hash = $response->getBody()->getContentMd5();
- $response->getBody()->uncompress();
- } else {
- return;
- }
-
- if ($contentMd5 !== $hash) {
- throw new UnexpectedValueException(
- "The response entity body may have been modified over the wire. The Content-MD5 "
- . "received ({$contentMd5}) did not match the calculated MD5 hash ({$hash})."
- );
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/composer.json
deleted file mode 100644
index 0602d060902..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Md5/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-md5",
- "description": "Guzzle MD5 plugins",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Md5": "" }
- },
- "target-dir": "Guzzle/Plugin/Md5",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/MockPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/MockPlugin.php
deleted file mode 100644
index 2440578cf08..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/MockPlugin.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Mock;
-
-use Guzzle\Common\Event;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Http\Exception\CurlException;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Message\Response;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Queues mock responses or exceptions and delivers mock responses or exceptions in a fifo order.
- */
-class MockPlugin extends AbstractHasDispatcher implements EventSubscriberInterface, \Countable
-{
- /** @var array Array of mock responses / exceptions */
- protected $queue = array();
-
- /** @var bool Whether or not to remove the plugin when the queue is empty */
- protected $temporary = false;
-
- /** @var array Array of requests that were mocked */
- protected $received = array();
-
- /** @var bool Whether or not to consume an entity body when a mock response is served */
- protected $readBodies;
-
- /**
- * @param array $items Array of responses or exceptions to queue
- * @param bool $temporary Set to TRUE to remove the plugin when the queue is empty
- * @param bool $readBodies Set to TRUE to consume the entity body when a mock is served
- */
- public function __construct(array $items = null, $temporary = false, $readBodies = false)
- {
- $this->readBodies = $readBodies;
- $this->temporary = $temporary;
- if ($items) {
- foreach ($items as $item) {
- if ($item instanceof \Exception) {
- $this->addException($item);
- } else {
- $this->addResponse($item);
- }
- }
- }
- }
-
- public static function getSubscribedEvents()
- {
- // Use a number lower than the CachePlugin
- return array('request.before_send' => array('onRequestBeforeSend', -999));
- }
-
- public static function getAllEvents()
- {
- return array('mock.request');
- }
-
- /**
- * Get a mock response from a file
- *
- * @param string $path File to retrieve a mock response from
- *
- * @return Response
- * @throws InvalidArgumentException if the file is not found
- */
- public static function getMockFile($path)
- {
- if (!file_exists($path)) {
- throw new InvalidArgumentException('Unable to open mock file: ' . $path);
- }
-
- return Response::fromMessage(file_get_contents($path));
- }
-
- /**
- * Set whether or not to consume the entity body of a request when a mock
- * response is used
- *
- * @param bool $readBodies Set to true to read and consume entity bodies
- *
- * @return self
- */
- public function readBodies($readBodies)
- {
- $this->readBodies = $readBodies;
-
- return $this;
- }
-
- /**
- * Returns the number of remaining mock responses
- *
- * @return int
- */
- public function count()
- {
- return count($this->queue);
- }
-
- /**
- * Add a response to the end of the queue
- *
- * @param string|Response $response Response object or path to response file
- *
- * @return MockPlugin
- * @throws InvalidArgumentException if a string or Response is not passed
- */
- public function addResponse($response)
- {
- if (!($response instanceof Response)) {
- if (!is_string($response)) {
- throw new InvalidArgumentException('Invalid response');
- }
- $response = self::getMockFile($response);
- }
-
- $this->queue[] = $response;
-
- return $this;
- }
-
- /**
- * Add an exception to the end of the queue
- *
- * @param CurlException $e Exception to throw when the request is executed
- *
- * @return MockPlugin
- */
- public function addException(CurlException $e)
- {
- $this->queue[] = $e;
-
- return $this;
- }
-
- /**
- * Clear the queue
- *
- * @return MockPlugin
- */
- public function clearQueue()
- {
- $this->queue = array();
-
- return $this;
- }
-
- /**
- * Returns an array of mock responses remaining in the queue
- *
- * @return array
- */
- public function getQueue()
- {
- return $this->queue;
- }
-
- /**
- * Check if this is a temporary plugin
- *
- * @return bool
- */
- public function isTemporary()
- {
- return $this->temporary;
- }
-
- /**
- * Get a response from the front of the list and add it to a request
- *
- * @param RequestInterface $request Request to mock
- *
- * @return self
- * @throws CurlException When request.send is called and an exception is queued
- */
- public function dequeue(RequestInterface $request)
- {
- $this->dispatch('mock.request', array('plugin' => $this, 'request' => $request));
-
- $item = array_shift($this->queue);
- if ($item instanceof Response) {
- if ($this->readBodies && $request instanceof EntityEnclosingRequestInterface) {
- $request->getEventDispatcher()->addListener('request.sent', $f = function (Event $event) use (&$f) {
- while ($data = $event['request']->getBody()->read(8096));
- // Remove the listener after one-time use
- $event['request']->getEventDispatcher()->removeListener('request.sent', $f);
- });
- }
- $request->setResponse($item);
- } elseif ($item instanceof CurlException) {
- // Emulates exceptions encountered while transferring requests
- $item->setRequest($request);
- $state = $request->setState(RequestInterface::STATE_ERROR, array('exception' => $item));
- // Only throw if the exception wasn't handled
- if ($state == RequestInterface::STATE_ERROR) {
- throw $item;
- }
- }
-
- return $this;
- }
-
- /**
- * Clear the array of received requests
- */
- public function flush()
- {
- $this->received = array();
- }
-
- /**
- * Get an array of requests that were mocked by this plugin
- *
- * @return array
- */
- public function getReceivedRequests()
- {
- return $this->received;
- }
-
- /**
- * Called when a request is about to be sent
- *
- * @param Event $event
- * @throws \OutOfBoundsException When queue is empty
- */
- public function onRequestBeforeSend(Event $event)
- {
- if (!$this->queue) {
- throw new \OutOfBoundsException('Mock queue is empty');
- }
-
- $request = $event['request'];
- $this->received[] = $request;
- // Detach the filter from the client so it's a one-time use
- if ($this->temporary && count($this->queue) == 1 && $request->getClient()) {
- $request->getClient()->getEventDispatcher()->removeSubscriber($this);
- }
- $this->dequeue($request);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/composer.json
deleted file mode 100644
index f8201e31fee..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Mock/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-mock",
- "description": "Guzzle Mock plugin",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["mock", "plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Mock": "" }
- },
- "target-dir": "Guzzle/Plugin/Mock",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/OauthPlugin.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/OauthPlugin.php
deleted file mode 100644
index 95e0c3e4a84..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/OauthPlugin.php
+++ /dev/null
@@ -1,306 +0,0 @@
-<?php
-
-namespace Guzzle\Plugin\Oauth;
-
-use Guzzle\Common\Event;
-use Guzzle\Common\Collection;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\QueryString;
-use Guzzle\Http\Url;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * OAuth signing plugin
- * @link http://oauth.net/core/1.0/#rfc.section.9.1.1
- */
-class OauthPlugin implements EventSubscriberInterface
-{
- /**
- * Consumer request method constants. See http://oauth.net/core/1.0/#consumer_req_param
- */
- const REQUEST_METHOD_HEADER = 'header';
- const REQUEST_METHOD_QUERY = 'query';
-
- /** @var Collection Configuration settings */
- protected $config;
-
- /**
- * Create a new OAuth 1.0 plugin
- *
- * @param array $config Configuration array containing these parameters:
- * - string 'request_method' Consumer request method. Use the class constants.
- * - string 'callback' OAuth callback
- * - string 'consumer_key' Consumer key
- * - string 'consumer_secret' Consumer secret
- * - string 'token' Token
- * - string 'token_secret' Token secret
- * - string 'verifier' OAuth verifier.
- * - string 'version' OAuth version. Defaults to 1.0
- * - string 'signature_method' Custom signature method
- * - bool 'disable_post_params' Set to true to prevent POST parameters from being signed
- * - array|Closure 'signature_callback' Custom signature callback that accepts a string to sign and a signing key
- */
- public function __construct($config)
- {
- $this->config = Collection::fromConfig($config, array(
- 'version' => '1.0',
- 'request_method' => self::REQUEST_METHOD_HEADER,
- 'consumer_key' => 'anonymous',
- 'consumer_secret' => 'anonymous',
- 'signature_method' => 'HMAC-SHA1',
- 'signature_callback' => function($stringToSign, $key) {
- return hash_hmac('sha1', $stringToSign, $key, true);
- }
- ), array(
- 'signature_method', 'signature_callback', 'version',
- 'consumer_key', 'consumer_secret'
- ));
- }
-
- public static function getSubscribedEvents()
- {
- return array(
- 'request.before_send' => array('onRequestBeforeSend', -1000)
- );
- }
-
- /**
- * Request before-send event handler
- *
- * @param Event $event Event received
- * @return array
- * @throws \InvalidArgumentException
- */
- public function onRequestBeforeSend(Event $event)
- {
- $timestamp = $this->getTimestamp($event);
- $request = $event['request'];
- $nonce = $this->generateNonce($request);
- $authorizationParams = $this->getOauthParams($timestamp, $nonce);
- $authorizationParams['oauth_signature'] = $this->getSignature($request, $timestamp, $nonce);
-
- switch ($this->config['request_method']) {
- case self::REQUEST_METHOD_HEADER:
- $request->setHeader(
- 'Authorization',
- $this->buildAuthorizationHeader($authorizationParams)
- );
- break;
- case self::REQUEST_METHOD_QUERY:
- foreach ($authorizationParams as $key => $value) {
- $request->getQuery()->set($key, $value);
- }
- break;
- default:
- throw new \InvalidArgumentException(sprintf(
- 'Invalid consumer method "%s"',
- $this->config['request_method']
- ));
- }
-
- return $authorizationParams;
- }
-
- /**
- * Builds the Authorization header for a request
- *
- * @param array $authorizationParams Associative array of authorization parameters
- *
- * @return string
- */
- private function buildAuthorizationHeader($authorizationParams)
- {
- $authorizationString = 'OAuth ';
- foreach ($authorizationParams as $key => $val) {
- if ($val) {
- $authorizationString .= $key . '="' . urlencode($val) . '", ';
- }
- }
-
- return substr($authorizationString, 0, -2);
- }
-
- /**
- * Calculate signature for request
- *
- * @param RequestInterface $request Request to generate a signature for
- * @param integer $timestamp Timestamp to use for nonce
- * @param string $nonce
- *
- * @return string
- */
- public function getSignature(RequestInterface $request, $timestamp, $nonce)
- {
- $string = $this->getStringToSign($request, $timestamp, $nonce);
- $key = urlencode($this->config['consumer_secret']) . '&' . urlencode($this->config['token_secret']);
-
- return base64_encode(call_user_func($this->config['signature_callback'], $string, $key));
- }
-
- /**
- * Calculate string to sign
- *
- * @param RequestInterface $request Request to generate a signature for
- * @param int $timestamp Timestamp to use for nonce
- * @param string $nonce
- *
- * @return string
- */
- public function getStringToSign(RequestInterface $request, $timestamp, $nonce)
- {
- $params = $this->getParamsToSign($request, $timestamp, $nonce);
-
- // Convert booleans to strings.
- $params = $this->prepareParameters($params);
-
- // Build signing string from combined params
- $parameterString = clone $request->getQuery();
- $parameterString->replace($params);
-
- $url = Url::factory($request->getUrl())->setQuery('')->setFragment(null);
-
- return strtoupper($request->getMethod()) . '&'
- . rawurlencode($url) . '&'
- . rawurlencode((string) $parameterString);
- }
-
- /**
- * Get the oauth parameters as named by the oauth spec
- *
- * @param $timestamp
- * @param $nonce
- * @return Collection
- */
- protected function getOauthParams($timestamp, $nonce)
- {
- $params = new Collection(array(
- 'oauth_consumer_key' => $this->config['consumer_key'],
- 'oauth_nonce' => $nonce,
- 'oauth_signature_method' => $this->config['signature_method'],
- 'oauth_timestamp' => $timestamp,
- ));
-
- // Optional parameters should not be set if they have not been set in the config as
- // the parameter may be considered invalid by the Oauth service.
- $optionalParams = array(
- 'callback' => 'oauth_callback',
- 'token' => 'oauth_token',
- 'verifier' => 'oauth_verifier',
- 'version' => 'oauth_version'
- );
-
- foreach ($optionalParams as $optionName => $oauthName) {
- if (isset($this->config[$optionName]) == true) {
- $params[$oauthName] = $this->config[$optionName];
- }
- }
-
- return $params;
- }
-
- /**
- * Get all of the parameters required to sign a request including:
- * * The oauth params
- * * The request GET params
- * * The params passed in the POST body (with a content-type of application/x-www-form-urlencoded)
- *
- * @param RequestInterface $request Request to generate a signature for
- * @param integer $timestamp Timestamp to use for nonce
- * @param string $nonce
- *
- * @return array
- */
- public function getParamsToSign(RequestInterface $request, $timestamp, $nonce)
- {
- $params = $this->getOauthParams($timestamp, $nonce);
-
- // Add query string parameters
- $params->merge($request->getQuery());
-
- // Add POST fields to signing string if required
- if ($this->shouldPostFieldsBeSigned($request))
- {
- $params->merge($request->getPostFields());
- }
-
- // Sort params
- $params = $params->toArray();
- uksort($params, 'strcmp');
-
- return $params;
- }
-
- /**
- * Decide whether the post fields should be added to the base string that Oauth signs.
- * This implementation is correct. Non-conformant APIs may require that this method be
- * overwritten e.g. the Flickr API incorrectly adds the post fields when the Content-Type
- * is 'application/x-www-form-urlencoded'
- *
- * @param $request
- * @return bool Whether the post fields should be signed or not
- */
- public function shouldPostFieldsBeSigned($request)
- {
- if (!$this->config->get('disable_post_params') &&
- $request instanceof EntityEnclosingRequestInterface &&
- false !== strpos($request->getHeader('Content-Type'), 'application/x-www-form-urlencoded'))
- {
- return true;
- }
-
- return false;
- }
-
- /**
- * Returns a Nonce Based on the unique id and URL. This will allow for multiple requests in parallel with the same
- * exact timestamp to use separate nonce's.
- *
- * @param RequestInterface $request Request to generate a nonce for
- *
- * @return string
- */
- public function generateNonce(RequestInterface $request)
- {
- return sha1(uniqid('', true) . $request->getUrl());
- }
-
- /**
- * Gets timestamp from event or create new timestamp
- *
- * @param Event $event Event containing contextual information
- *
- * @return int
- */
- public function getTimestamp(Event $event)
- {
- return $event['timestamp'] ?: time();
- }
-
- /**
- * Convert booleans to strings, removed unset parameters, and sorts the array
- *
- * @param array $data Data array
- *
- * @return array
- */
- protected function prepareParameters($data)
- {
- ksort($data);
- foreach ($data as $key => &$value) {
- switch (gettype($value)) {
- case 'NULL':
- unset($data[$key]);
- break;
- case 'array':
- $data[$key] = self::prepareParameters($value);
- break;
- case 'boolean':
- $data[$key] = $value ? 'true' : 'false';
- break;
- }
- }
-
- return $data;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/composer.json
deleted file mode 100644
index c9766ba16e8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/Oauth/composer.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "guzzle/plugin-oauth",
- "description": "Guzzle OAuth plugin",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["oauth", "plugin", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin\\Oauth": "" }
- },
- "target-dir": "Guzzle/Plugin/Oauth",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/composer.json
deleted file mode 100644
index 2bbe64cc5e5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Plugin/composer.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "guzzle/plugin",
- "description": "Guzzle plugin component containing all Guzzle HTTP plugins",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["http", "client", "plugin", "extension", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/http": "self.version"
- },
- "suggest": {
- "guzzle/cache": "self.version",
- "guzzle/log": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Plugin": "" }
- },
- "target-dir": "Guzzle/Plugin",
- "replace": {
- "guzzle/plugin-async": "self.version",
- "guzzle/plugin-backoff": "self.version",
- "guzzle/plugin-cache": "self.version",
- "guzzle/plugin-cookie": "self.version",
- "guzzle/plugin-curlauth": "self.version",
- "guzzle/plugin-error-response": "self.version",
- "guzzle/plugin-history": "self.version",
- "guzzle/plugin-log": "self.version",
- "guzzle/plugin-md5": "self.version",
- "guzzle/plugin-mock": "self.version",
- "guzzle/plugin-oauth": "self.version"
- },
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/AbstractConfigLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/AbstractConfigLoader.php
deleted file mode 100644
index cd06f5722f5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/AbstractConfigLoader.php
+++ /dev/null
@@ -1,177 +0,0 @@
-<?php
-
-namespace Guzzle\Service;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\RuntimeException;
-
-/**
- * Abstract config loader
- */
-abstract class AbstractConfigLoader implements ConfigLoaderInterface
-{
- /** @var array Array of aliases for actual filenames */
- protected $aliases = array();
-
- /** @var array Hash of previously loaded filenames */
- protected $loadedFiles = array();
-
- /** @var array JSON error code mappings */
- protected static $jsonErrors = array(
- JSON_ERROR_NONE => 'JSON_ERROR_NONE - No errors',
- JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH - Maximum stack depth exceeded',
- JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH - Underflow or the modes mismatch',
- JSON_ERROR_CTRL_CHAR => 'JSON_ERROR_CTRL_CHAR - Unexpected control character found',
- JSON_ERROR_SYNTAX => 'JSON_ERROR_SYNTAX - Syntax error, malformed JSON',
- JSON_ERROR_UTF8 => 'JSON_ERROR_UTF8 - Malformed UTF-8 characters, possibly incorrectly encoded'
- );
-
- public function load($config, array $options = array())
- {
- // Reset the array of loaded files because this is a new config
- $this->loadedFiles = array();
-
- if (is_string($config)) {
- $config = $this->loadFile($config);
- } elseif (!is_array($config)) {
- throw new InvalidArgumentException('Unknown type passed to configuration loader: ' . gettype($config));
- } else {
- $this->mergeIncludes($config);
- }
-
- return $this->build($config, $options);
- }
-
- /**
- * Add an include alias to the loader
- *
- * @param string $filename Filename to alias (e.g. _foo)
- * @param string $alias Actual file to use (e.g. /path/to/foo.json)
- *
- * @return self
- */
- public function addAlias($filename, $alias)
- {
- $this->aliases[$filename] = $alias;
-
- return $this;
- }
-
- /**
- * Remove an alias from the loader
- *
- * @param string $alias Alias to remove
- *
- * @return self
- */
- public function removeAlias($alias)
- {
- unset($this->aliases[$alias]);
-
- return $this;
- }
-
- /**
- * Perform the parsing of a config file and create the end result
- *
- * @param array $config Configuration data
- * @param array $options Options to use when building
- *
- * @return mixed
- */
- protected abstract function build($config, array $options);
-
- /**
- * Load a configuration file (can load JSON or PHP files that return an array when included)
- *
- * @param string $filename File to load
- *
- * @return array
- * @throws InvalidArgumentException
- * @throws RuntimeException when the JSON cannot be parsed
- */
- protected function loadFile($filename)
- {
- if (isset($this->aliases[$filename])) {
- $filename = $this->aliases[$filename];
- }
-
- switch (pathinfo($filename, PATHINFO_EXTENSION)) {
- case 'js':
- case 'json':
- $level = error_reporting(0);
- $json = file_get_contents($filename);
- error_reporting($level);
-
- if ($json === false) {
- $err = error_get_last();
- throw new InvalidArgumentException("Unable to open {$filename}: " . $err['message']);
- }
-
- $config = json_decode($json, true);
- // Throw an exception if there was an error loading the file
- if ($error = json_last_error()) {
- $message = isset(self::$jsonErrors[$error]) ? self::$jsonErrors[$error] : 'Unknown error';
- throw new RuntimeException("Error loading JSON data from {$filename}: ({$error}) - {$message}");
- }
- break;
- case 'php':
- if (!is_readable($filename)) {
- throw new InvalidArgumentException("Unable to open {$filename} for reading");
- }
- $config = require $filename;
- if (!is_array($config)) {
- throw new InvalidArgumentException('PHP files must return an array of configuration data');
- }
- break;
- default:
- throw new InvalidArgumentException('Unknown file extension: ' . $filename);
- }
-
- // Keep track of this file being loaded to prevent infinite recursion
- $this->loadedFiles[$filename] = true;
-
- // Merge include files into the configuration array
- $this->mergeIncludes($config, dirname($filename));
-
- return $config;
- }
-
- /**
- * Merges in all include files
- *
- * @param array $config Config data that contains includes
- * @param string $basePath Base path to use when a relative path is encountered
- *
- * @return array Returns the merged and included data
- */
- protected function mergeIncludes(&$config, $basePath = null)
- {
- if (!empty($config['includes'])) {
- foreach ($config['includes'] as &$path) {
- // Account for relative paths
- if ($path[0] != DIRECTORY_SEPARATOR && !isset($this->aliases[$path]) && $basePath) {
- $path = "{$basePath}/{$path}";
- }
- // Don't load the same files more than once
- if (!isset($this->loadedFiles[$path])) {
- $this->loadedFiles[$path] = true;
- $config = $this->mergeData($this->loadFile($path), $config);
- }
- }
- }
- }
-
- /**
- * Default implementation for merging two arrays of data (uses array_merge_recursive)
- *
- * @param array $a Original data
- * @param array $b Data to merge into the original and overwrite existing values
- *
- * @return array
- */
- protected function mergeData(array $a, array $b)
- {
- return array_merge_recursive($a, $b);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilder.php
deleted file mode 100644
index 38150db4b8b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilder.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Builder;
-
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Service\ClientInterface;
-use Guzzle\Service\Exception\ServiceBuilderException;
-use Guzzle\Service\Exception\ServiceNotFoundException;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * {@inheritdoc}
- *
- * Clients and data can be set, retrieved, and removed by accessing the service builder like an associative array.
- */
-class ServiceBuilder extends AbstractHasDispatcher implements ServiceBuilderInterface, \ArrayAccess, \Serializable
-{
- /** @var array Service builder configuration data */
- protected $builderConfig = array();
-
- /** @var array Instantiated client objects */
- protected $clients = array();
-
- /** @var ServiceBuilderLoader Cached instance of the service builder loader */
- protected static $cachedFactory;
-
- /** @var array Plugins to attach to each client created by the service builder */
- protected $plugins = array();
-
- /**
- * Create a new ServiceBuilder using configuration data sourced from an
- * array, .js|.json or .php file.
- *
- * @param array|string $config The full path to an .json|.js or .php file, or an associative array
- * @param array $globalParameters Array of global parameters to pass to every service as it is instantiated.
- *
- * @return ServiceBuilderInterface
- * @throws ServiceBuilderException if a file cannot be opened
- * @throws ServiceNotFoundException when trying to extend a missing client
- */
- public static function factory($config = null, array $globalParameters = array())
- {
- // @codeCoverageIgnoreStart
- if (!static::$cachedFactory) {
- static::$cachedFactory = new ServiceBuilderLoader();
- }
- // @codeCoverageIgnoreEnd
-
- return self::$cachedFactory->load($config, $globalParameters);
- }
-
- /**
- * @param array $serviceBuilderConfig Service configuration settings:
- * - name: Name of the service
- * - class: Client class to instantiate using a factory method
- * - params: array of key value pair configuration settings for the builder
- */
- public function __construct(array $serviceBuilderConfig = array())
- {
- $this->builderConfig = $serviceBuilderConfig;
- }
-
- public static function getAllEvents()
- {
- return array('service_builder.create_client');
- }
-
- public function unserialize($serialized)
- {
- $this->builderConfig = json_decode($serialized, true);
- }
-
- public function serialize()
- {
- return json_encode($this->builderConfig);
- }
-
- /**
- * Attach a plugin to every client created by the builder
- *
- * @param EventSubscriberInterface $plugin Plugin to attach to each client
- *
- * @return self
- */
- public function addGlobalPlugin(EventSubscriberInterface $plugin)
- {
- $this->plugins[] = $plugin;
-
- return $this;
- }
-
- /**
- * Get data from the service builder without triggering the building of a service
- *
- * @param string $name Name of the service to retrieve
- *
- * @return array|null
- */
- public function getData($name)
- {
- return isset($this->builderConfig[$name]) ? $this->builderConfig[$name] : null;
- }
-
- public function get($name, $throwAway = false)
- {
- if (!isset($this->builderConfig[$name])) {
-
- // Check to see if arbitrary data is being referenced
- if (isset($this->clients[$name])) {
- return $this->clients[$name];
- }
-
- // Check aliases and return a match if found
- foreach ($this->builderConfig as $actualName => $config) {
- if (isset($config['alias']) && $config['alias'] == $name) {
- return $this->get($actualName, $throwAway);
- }
- }
- throw new ServiceNotFoundException('No service is registered as ' . $name);
- }
-
- if (!$throwAway && isset($this->clients[$name])) {
- return $this->clients[$name];
- }
-
- $builder =& $this->builderConfig[$name];
-
- // Convert references to the actual client
- foreach ($builder['params'] as &$v) {
- if (is_string($v) && substr($v, 0, 1) == '{' && substr($v, -1) == '}') {
- $v = $this->get(trim($v, '{} '));
- }
- }
-
- // Get the configured parameters and merge in any parameters provided for throw-away clients
- $config = $builder['params'];
- if (is_array($throwAway)) {
- $config = $throwAway + $config;
- }
-
- $client = $builder['class']::factory($config);
-
- if (!$throwAway) {
- $this->clients[$name] = $client;
- }
-
- if ($client instanceof ClientInterface) {
- foreach ($this->plugins as $plugin) {
- $client->addSubscriber($plugin);
- }
- // Dispatch an event letting listeners know a client was created
- $this->dispatch('service_builder.create_client', array('client' => $client));
- }
-
- return $client;
- }
-
- public function set($key, $service)
- {
- if (is_array($service) && isset($service['class']) && isset($service['params'])) {
- $this->builderConfig[$key] = $service;
- } else {
- $this->clients[$key] = $service;
- }
-
- return $this;
- }
-
- public function offsetSet($offset, $value)
- {
- $this->set($offset, $value);
- }
-
- public function offsetUnset($offset)
- {
- unset($this->builderConfig[$offset]);
- unset($this->clients[$offset]);
- }
-
- public function offsetExists($offset)
- {
- return isset($this->builderConfig[$offset]) || isset($this->clients[$offset]);
- }
-
- public function offsetGet($offset)
- {
- return $this->get($offset);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderInterface.php
deleted file mode 100644
index 4fc310a4727..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderInterface.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Builder;
-
-use Guzzle\Service\Exception\ServiceNotFoundException;
-
-/**
- * Service builder used to store and build clients or arbitrary data. Client configuration data can be supplied to tell
- * the service builder how to create and cache {@see \Guzzle\Service\ClientInterface} objects. Arbitrary data can be
- * supplied and accessed from a service builder. Arbitrary data and other clients can be referenced by name in client
- * configuration arrays to make them input for building other clients (e.g. "{key}").
- */
-interface ServiceBuilderInterface
-{
- /**
- * Get a ClientInterface object or arbitrary data from the service builder
- *
- * @param string $name Name of the registered service or data to retrieve
- * @param bool|array $throwAway Only pertains to retrieving client objects built using a configuration array.
- * Set to TRUE to not store the client for later retrieval from the ServiceBuilder.
- * If an array is specified, that data will overwrite the configured params of the
- * client if the client implements {@see \Guzzle\Common\FromConfigInterface} and will
- * not store the client for later retrieval.
- *
- * @return \Guzzle\Service\ClientInterface|mixed
- * @throws ServiceNotFoundException when a client or data cannot be found by the given name
- */
- public function get($name, $throwAway = false);
-
- /**
- * Register a service or arbitrary data by name with the service builder
- *
- * @param string $key Name of the client or data to register
- * @param mixed $service Client configuration array or arbitrary data to register. The client configuration array
- * must include a 'class' (string) and 'params' (array) key.
- *
- * @return ServiceBuilderInterface
- */
- public function set($key, $service);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderLoader.php
deleted file mode 100644
index c561a3d56b9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Builder/ServiceBuilderLoader.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Builder;
-
-use Guzzle\Service\AbstractConfigLoader;
-use Guzzle\Service\Exception\ServiceNotFoundException;
-
-/**
- * Service builder config loader
- */
-class ServiceBuilderLoader extends AbstractConfigLoader
-{
- protected function build($config, array $options)
- {
- // A service builder class can be specified in the class field
- $class = !empty($config['class']) ? $config['class'] : __NAMESPACE__ . '\\ServiceBuilder';
-
- // Account for old style configs that do not have a services array
- $services = isset($config['services']) ? $config['services'] : $config;
-
- // Validate the configuration and handle extensions
- foreach ($services as $name => &$service) {
-
- $service['params'] = isset($service['params']) ? $service['params'] : array();
-
- // Check if this client builder extends another client
- if (!empty($service['extends'])) {
-
- // Make sure that the service it's extending has been defined
- if (!isset($services[$service['extends']])) {
- throw new ServiceNotFoundException(
- "{$name} is trying to extend a non-existent service: {$service['extends']}"
- );
- }
-
- $extended = &$services[$service['extends']];
-
- // Use the correct class attribute
- if (empty($service['class'])) {
- $service['class'] = isset($extended['class']) ? $extended['class'] : '';
- }
- if ($extendsParams = isset($extended['params']) ? $extended['params'] : false) {
- $service['params'] = $service['params'] + $extendsParams;
- }
- }
-
- // Overwrite default values with global parameter values
- if (!empty($options)) {
- $service['params'] = $options + $service['params'];
- }
-
- $service['class'] = isset($service['class']) ? $service['class'] : '';
- }
-
- return new $class($services);
- }
-
- protected function mergeData(array $a, array $b)
- {
- $result = $b + $a;
-
- // Merge services using a recursive union of arrays
- if (isset($a['services']) && $b['services']) {
-
- // Get a union of the services of the two arrays
- $result['services'] = $b['services'] + $a['services'];
-
- // Merge each service in using a union of the two arrays
- foreach ($result['services'] as $name => &$service) {
-
- // By default, services completely override a previously defined service unless it extends itself
- if (isset($a['services'][$name]['extends'])
- && isset($b['services'][$name]['extends'])
- && $b['services'][$name]['extends'] == $name
- ) {
- $service += $a['services'][$name];
- // Use the `extends` attribute of the parent
- $service['extends'] = $a['services'][$name]['extends'];
- // Merge parameters using a union if both have parameters
- if (isset($a['services'][$name]['params'])) {
- $service['params'] += $a['services'][$name]['params'];
- }
- }
- }
- }
-
- return $result;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/CachingConfigLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/CachingConfigLoader.php
deleted file mode 100644
index 26f8360cc66..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/CachingConfigLoader.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Guzzle\Service;
-
-use Guzzle\Cache\CacheAdapterInterface;
-
-/**
- * Decorator that adds caching to a service description loader
- */
-class CachingConfigLoader implements ConfigLoaderInterface
-{
- /** @var ConfigLoaderInterface */
- protected $loader;
-
- /** @var CacheAdapterInterface */
- protected $cache;
-
- /**
- * @param ConfigLoaderInterface $loader Loader used to load the config when there is a cache miss
- * @param CacheAdapterInterface $cache Object used to cache the loaded result
- */
- public function __construct(ConfigLoaderInterface $loader, CacheAdapterInterface $cache)
- {
- $this->loader = $loader;
- $this->cache = $cache;
- }
-
- public function load($config, array $options = array())
- {
- if (!is_string($config)) {
- $key = false;
- } else {
- $key = 'loader_' . crc32($config);
- if ($result = $this->cache->fetch($key)) {
- return $result;
- }
- }
-
- $result = $this->loader->load($config, $options);
- if ($key) {
- $this->cache->save($key, $result);
- }
-
- return $result;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Client.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Client.php
deleted file mode 100644
index 3e5f8e53da1..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Client.php
+++ /dev/null
@@ -1,297 +0,0 @@
-<?php
-
-namespace Guzzle\Service;
-
-use Guzzle\Common\Collection;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\BadMethodCallException;
-use Guzzle\Common\Version;
-use Guzzle\Inflection\InflectorInterface;
-use Guzzle\Inflection\Inflector;
-use Guzzle\Http\Client as HttpClient;
-use Guzzle\Http\Exception\MultiTransferException;
-use Guzzle\Service\Exception\CommandTransferException;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Command\Factory\CompositeFactory;
-use Guzzle\Service\Command\Factory\FactoryInterface as CommandFactoryInterface;
-use Guzzle\Service\Resource\ResourceIteratorClassFactory;
-use Guzzle\Service\Resource\ResourceIteratorFactoryInterface;
-use Guzzle\Service\Description\ServiceDescriptionInterface;
-
-/**
- * Client object for executing commands on a web service.
- */
-class Client extends HttpClient implements ClientInterface
-{
- const COMMAND_PARAMS = 'command.params';
-
- /** @var ServiceDescriptionInterface Description of the service and possible commands */
- protected $serviceDescription;
-
- /** @var CommandFactoryInterface */
- protected $commandFactory;
-
- /** @var ResourceIteratorFactoryInterface */
- protected $resourceIteratorFactory;
-
- /** @var InflectorInterface Inflector associated with the service/client */
- protected $inflector;
-
- /**
- * Basic factory method to create a new client. Extend this method in subclasses to build more complex clients.
- *
- * @param array|Collection $config Configuration data
- *
- * @return Client
- */
- public static function factory($config = array())
- {
- return new static(isset($config['base_url']) ? $config['base_url'] : null, $config);
- }
-
- public static function getAllEvents()
- {
- return array_merge(HttpClient::getAllEvents(), array(
- 'client.command.create',
- 'command.before_prepare',
- 'command.after_prepare',
- 'command.before_send',
- 'command.after_send',
- 'command.parse_response'
- ));
- }
-
- /**
- * Magic method used to retrieve a command
- *
- * @param string $method Name of the command object to instantiate
- * @param array $args Arguments to pass to the command
- *
- * @return mixed Returns the result of the command
- * @throws BadMethodCallException when a command is not found
- */
- public function __call($method, $args)
- {
- return $this->getCommand($method, isset($args[0]) ? $args[0] : array())->getResult();
- }
-
- public function getCommand($name, array $args = array())
- {
- // Add global client options to the command
- if ($options = $this->getConfig(self::COMMAND_PARAMS)) {
- $args += $options;
- }
-
- if (!($command = $this->getCommandFactory()->factory($name, $args))) {
- throw new InvalidArgumentException("Command was not found matching {$name}");
- }
-
- $command->setClient($this);
- $this->dispatch('client.command.create', array('client' => $this, 'command' => $command));
-
- return $command;
- }
-
- /**
- * Set the command factory used to create commands by name
- *
- * @param CommandFactoryInterface $factory Command factory
- *
- * @return self
- */
- public function setCommandFactory(CommandFactoryInterface $factory)
- {
- $this->commandFactory = $factory;
-
- return $this;
- }
-
- /**
- * Set the resource iterator factory associated with the client
- *
- * @param ResourceIteratorFactoryInterface $factory Resource iterator factory
- *
- * @return self
- */
- public function setResourceIteratorFactory(ResourceIteratorFactoryInterface $factory)
- {
- $this->resourceIteratorFactory = $factory;
-
- return $this;
- }
-
- public function getIterator($command, array $commandOptions = null, array $iteratorOptions = array())
- {
- if (!($command instanceof CommandInterface)) {
- $command = $this->getCommand($command, $commandOptions ?: array());
- }
-
- return $this->getResourceIteratorFactory()->build($command, $iteratorOptions);
- }
-
- public function execute($command)
- {
- if ($command instanceof CommandInterface) {
- $this->send($this->prepareCommand($command));
- $this->dispatch('command.after_send', array('command' => $command));
- return $command->getResult();
- } elseif (is_array($command) || $command instanceof \Traversable) {
- return $this->executeMultiple($command);
- } else {
- throw new InvalidArgumentException('Command must be a command or array of commands');
- }
- }
-
- public function setDescription(ServiceDescriptionInterface $service)
- {
- $this->serviceDescription = $service;
-
- if ($this->getCommandFactory() && $this->getCommandFactory() instanceof CompositeFactory) {
- $this->commandFactory->add(new Command\Factory\ServiceDescriptionFactory($service));
- }
-
- // If a baseUrl was set on the description, then update the client
- if ($baseUrl = $service->getBaseUrl()) {
- $this->setBaseUrl($baseUrl);
- }
-
- return $this;
- }
-
- public function getDescription()
- {
- return $this->serviceDescription;
- }
-
- /**
- * Set the inflector used with the client
- *
- * @param InflectorInterface $inflector Inflection object
- *
- * @return self
- */
- public function setInflector(InflectorInterface $inflector)
- {
- $this->inflector = $inflector;
-
- return $this;
- }
-
- /**
- * Get the inflector used with the client
- *
- * @return self
- */
- public function getInflector()
- {
- if (!$this->inflector) {
- $this->inflector = Inflector::getDefault();
- }
-
- return $this->inflector;
- }
-
- /**
- * Prepare a command for sending and get the RequestInterface object created by the command
- *
- * @param CommandInterface $command Command to prepare
- *
- * @return RequestInterface
- */
- protected function prepareCommand(CommandInterface $command)
- {
- // Set the client and prepare the command
- $request = $command->setClient($this)->prepare();
- // Set the state to new if the command was previously executed
- $request->setState(RequestInterface::STATE_NEW);
- $this->dispatch('command.before_send', array('command' => $command));
-
- return $request;
- }
-
- /**
- * Execute multiple commands in parallel
- *
- * @param array|Traversable $commands Array of CommandInterface objects to execute
- *
- * @return array Returns an array of the executed commands
- * @throws Exception\CommandTransferException
- */
- protected function executeMultiple($commands)
- {
- $requests = array();
- $commandRequests = new \SplObjectStorage();
-
- foreach ($commands as $command) {
- $request = $this->prepareCommand($command);
- $commandRequests[$request] = $command;
- $requests[] = $request;
- }
-
- try {
- $this->send($requests);
- foreach ($commands as $command) {
- $this->dispatch('command.after_send', array('command' => $command));
- }
- return $commands;
- } catch (MultiTransferException $failureException) {
- // Throw a CommandTransferException using the successful and failed commands
- $e = CommandTransferException::fromMultiTransferException($failureException);
-
- // Remove failed requests from the successful requests array and add to the failures array
- foreach ($failureException->getFailedRequests() as $request) {
- if (isset($commandRequests[$request])) {
- $e->addFailedCommand($commandRequests[$request]);
- unset($commandRequests[$request]);
- }
- }
-
- // Always emit the command after_send events for successful commands
- foreach ($commandRequests as $success) {
- $e->addSuccessfulCommand($commandRequests[$success]);
- $this->dispatch('command.after_send', array('command' => $commandRequests[$success]));
- }
-
- throw $e;
- }
- }
-
- protected function getResourceIteratorFactory()
- {
- if (!$this->resourceIteratorFactory) {
- // Build the default resource iterator factory if one is not set
- $clientClass = get_class($this);
- $prefix = substr($clientClass, 0, strrpos($clientClass, '\\'));
- $this->resourceIteratorFactory = new ResourceIteratorClassFactory(array(
- "{$prefix}\\Iterator",
- "{$prefix}\\Model"
- ));
- }
-
- return $this->resourceIteratorFactory;
- }
-
- /**
- * Get the command factory associated with the client
- *
- * @return CommandFactoryInterface
- */
- protected function getCommandFactory()
- {
- if (!$this->commandFactory) {
- $this->commandFactory = CompositeFactory::getDefaultChain($this);
- }
-
- return $this->commandFactory;
- }
-
- /**
- * @deprecated
- * @codeCoverageIgnore
- */
- public function enableMagicMethods($isEnabled)
- {
- Version::warn(__METHOD__ . ' is deprecated');
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ClientInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ClientInterface.php
deleted file mode 100644
index 814154f00bb..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ClientInterface.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace Guzzle\Service;
-
-use Guzzle\Common\FromConfigInterface;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\ClientInterface as HttpClientInterface;
-use Guzzle\Service\Exception\CommandTransferException;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\ServiceDescriptionInterface;
-use Guzzle\Service\Resource\ResourceIteratorInterface;
-
-/**
- * Client interface for executing commands on a web service.
- */
-interface ClientInterface extends HttpClientInterface, FromConfigInterface
-{
- /**
- * Get a command by name. First, the client will see if it has a service description and if the service description
- * defines a command by the supplied name. If no dynamic command is found, the client will look for a concrete
- * command class exists matching the name supplied. If neither are found, an InvalidArgumentException is thrown.
- *
- * @param string $name Name of the command to retrieve
- * @param array $args Arguments to pass to the command
- *
- * @return CommandInterface
- * @throws InvalidArgumentException if no command can be found by name
- */
- public function getCommand($name, array $args = array());
-
- /**
- * Execute one or more commands
- *
- * @param CommandInterface|array|Traversable $command Command, array of commands or Traversable object containing commands to execute
- *
- * @return mixed Returns the result of the executed command or an array of commands if executing multiple commands
- * @throws InvalidArgumentException if an invalid command is passed
- * @throws CommandTransferException if an exception is encountered when transferring multiple commands
- */
- public function execute($command);
-
- /**
- * Set the service description of the client
- *
- * @param ServiceDescriptionInterface $service Service description
- *
- * @return ClientInterface
- */
- public function setDescription(ServiceDescriptionInterface $service);
-
- /**
- * Get the service description of the client
- *
- * @return ServiceDescriptionInterface|null
- */
- public function getDescription();
-
- /**
- * Get a resource iterator from the client.
- *
- * @param string|CommandInterface $command Command class or command name.
- * @param array $commandOptions Command options used when creating commands.
- * @param array $iteratorOptions Iterator options passed to the iterator when it is instantiated.
- *
- * @return ResourceIteratorInterface
- */
- public function getIterator($command, array $commandOptions = null, array $iteratorOptions = array());
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/AbstractCommand.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/AbstractCommand.php
deleted file mode 100644
index e42ff90215e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/AbstractCommand.php
+++ /dev/null
@@ -1,390 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Common\Collection;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Curl\CurlHandle;
-use Guzzle\Service\Client;
-use Guzzle\Service\ClientInterface;
-use Guzzle\Service\Description\Operation;
-use Guzzle\Service\Description\OperationInterface;
-use Guzzle\Service\Description\ValidatorInterface;
-use Guzzle\Service\Description\SchemaValidator;
-use Guzzle\Service\Exception\CommandException;
-use Guzzle\Service\Exception\ValidationException;
-
-/**
- * Command object to handle preparing and processing client requests and responses of the requests
- */
-abstract class AbstractCommand extends Collection implements CommandInterface
-{
- // @deprecated: Option used to specify custom headers to add to the generated request
- const HEADERS_OPTION = 'command.headers';
- // @deprecated: Option used to add an onComplete method to a command
- const ON_COMPLETE = 'command.on_complete';
- // @deprecated: Option used to change the entity body used to store a response
- const RESPONSE_BODY = 'command.response_body';
-
- // Option used to add request options to the request created by a command
- const REQUEST_OPTIONS = 'command.request_options';
- // command values to not count as additionalParameters
- const HIDDEN_PARAMS = 'command.hidden_params';
- // Option used to disable any pre-sending command validation
- const DISABLE_VALIDATION = 'command.disable_validation';
- // Option used to override how a command result will be formatted
- const RESPONSE_PROCESSING = 'command.response_processing';
- // Different response types that commands can use
- const TYPE_RAW = 'raw';
- const TYPE_MODEL = 'model';
- const TYPE_NO_TRANSLATION = 'no_translation';
-
- /** @var ClientInterface Client object used to execute the command */
- protected $client;
-
- /** @var RequestInterface The request object associated with the command */
- protected $request;
-
- /** @var mixed The result of the command */
- protected $result;
-
- /** @var OperationInterface API information about the command */
- protected $operation;
-
- /** @var mixed callable */
- protected $onComplete;
-
- /** @var ValidatorInterface Validator used to prepare and validate properties against a JSON schema */
- protected $validator;
-
- /**
- * @param array|Collection $parameters Collection of parameters to set on the command
- * @param OperationInterface $operation Command definition from description
- */
- public function __construct($parameters = array(), OperationInterface $operation = null)
- {
- parent::__construct($parameters);
- $this->operation = $operation ?: $this->createOperation();
- foreach ($this->operation->getParams() as $name => $arg) {
- $currentValue = $this[$name];
- $configValue = $arg->getValue($currentValue);
- // If default or static values are set, then this should always be updated on the config object
- if ($currentValue !== $configValue) {
- $this[$name] = $configValue;
- }
- }
-
- $headers = $this[self::HEADERS_OPTION];
- if (!$headers instanceof Collection) {
- $this[self::HEADERS_OPTION] = new Collection((array) $headers);
- }
-
- // You can set a command.on_complete option in your parameters to set an onComplete callback
- if ($onComplete = $this['command.on_complete']) {
- unset($this['command.on_complete']);
- $this->setOnComplete($onComplete);
- }
-
- // Set the hidden additional parameters
- if (!$this[self::HIDDEN_PARAMS]) {
- $this[self::HIDDEN_PARAMS] = array(
- self::HEADERS_OPTION,
- self::RESPONSE_PROCESSING,
- self::HIDDEN_PARAMS,
- self::REQUEST_OPTIONS
- );
- }
-
- $this->init();
- }
-
- /**
- * Custom clone behavior
- */
- public function __clone()
- {
- $this->request = null;
- $this->result = null;
- }
-
- /**
- * Execute the command in the same manner as calling a function
- *
- * @return mixed Returns the result of {@see AbstractCommand::execute}
- */
- public function __invoke()
- {
- return $this->execute();
- }
-
- public function getName()
- {
- return $this->operation->getName();
- }
-
- /**
- * Get the API command information about the command
- *
- * @return OperationInterface
- */
- public function getOperation()
- {
- return $this->operation;
- }
-
- public function setOnComplete($callable)
- {
- if (!is_callable($callable)) {
- throw new InvalidArgumentException('The onComplete function must be callable');
- }
-
- $this->onComplete = $callable;
-
- return $this;
- }
-
- public function execute()
- {
- if (!$this->client) {
- throw new CommandException('A client must be associated with the command before it can be executed.');
- }
-
- return $this->client->execute($this);
- }
-
- public function getClient()
- {
- return $this->client;
- }
-
- public function setClient(ClientInterface $client)
- {
- $this->client = $client;
-
- return $this;
- }
-
- public function getRequest()
- {
- if (!$this->request) {
- throw new CommandException('The command must be prepared before retrieving the request');
- }
-
- return $this->request;
- }
-
- public function getResponse()
- {
- if (!$this->isExecuted()) {
- $this->execute();
- }
-
- return $this->request->getResponse();
- }
-
- public function getResult()
- {
- if (!$this->isExecuted()) {
- $this->execute();
- }
-
- if (null === $this->result) {
- $this->process();
- // Call the onComplete method if one is set
- if ($this->onComplete) {
- call_user_func($this->onComplete, $this);
- }
- }
-
- return $this->result;
- }
-
- public function setResult($result)
- {
- $this->result = $result;
-
- return $this;
- }
-
- public function isPrepared()
- {
- return $this->request !== null;
- }
-
- public function isExecuted()
- {
- return $this->request !== null && $this->request->getState() == 'complete';
- }
-
- public function prepare()
- {
- if (!$this->isPrepared()) {
- if (!$this->client) {
- throw new CommandException('A client must be associated with the command before it can be prepared.');
- }
-
- // If no response processing value was specified, then attempt to use the highest level of processing
- if (!isset($this[self::RESPONSE_PROCESSING])) {
- $this[self::RESPONSE_PROCESSING] = self::TYPE_MODEL;
- }
-
- // Notify subscribers of the client that the command is being prepared
- $this->client->dispatch('command.before_prepare', array('command' => $this));
-
- // Fail on missing required arguments, and change parameters via filters
- $this->validate();
- // Delegate to the subclass that implements the build method
- $this->build();
-
- // Add custom request headers set on the command
- if ($headers = $this[self::HEADERS_OPTION]) {
- foreach ($headers as $key => $value) {
- $this->request->setHeader($key, $value);
- }
- }
-
- // Add any curl options to the request
- if ($options = $this[Client::CURL_OPTIONS]) {
- $this->request->getCurlOptions()->overwriteWith(CurlHandle::parseCurlConfig($options));
- }
-
- // Set a custom response body
- if ($responseBody = $this[self::RESPONSE_BODY]) {
- $this->request->setResponseBody($responseBody);
- }
-
- $this->client->dispatch('command.after_prepare', array('command' => $this));
- }
-
- return $this->request;
- }
-
- /**
- * Set the validator used to validate and prepare command parameters and nested JSON schemas. If no validator is
- * set, then the command will validate using the default {@see SchemaValidator}.
- *
- * @param ValidatorInterface $validator Validator used to prepare and validate properties against a JSON schema
- *
- * @return self
- */
- public function setValidator(ValidatorInterface $validator)
- {
- $this->validator = $validator;
-
- return $this;
- }
-
- public function getRequestHeaders()
- {
- return $this[self::HEADERS_OPTION];
- }
-
- /**
- * Initialize the command (hook that can be implemented in subclasses)
- */
- protected function init() {}
-
- /**
- * Create the request object that will carry out the command
- */
- abstract protected function build();
-
- /**
- * Hook used to create an operation for concrete commands that are not associated with a service description
- *
- * @return OperationInterface
- */
- protected function createOperation()
- {
- return new Operation(array('name' => get_class($this)));
- }
-
- /**
- * Create the result of the command after the request has been completed.
- * Override this method in subclasses to customize this behavior
- */
- protected function process()
- {
- $this->result = $this[self::RESPONSE_PROCESSING] != self::TYPE_RAW
- ? DefaultResponseParser::getInstance()->parse($this)
- : $this->request->getResponse();
- }
-
- /**
- * Validate and prepare the command based on the schema and rules defined by the command's Operation object
- *
- * @throws ValidationException when validation errors occur
- */
- protected function validate()
- {
- // Do not perform request validation/transformation if it is disable
- if ($this[self::DISABLE_VALIDATION]) {
- return;
- }
-
- $errors = array();
- $validator = $this->getValidator();
- foreach ($this->operation->getParams() as $name => $schema) {
- $value = $this[$name];
- if (!$validator->validate($schema, $value)) {
- $errors = array_merge($errors, $validator->getErrors());
- } elseif ($value !== $this[$name]) {
- // Update the config value if it changed and no validation errors were encountered
- $this->data[$name] = $value;
- }
- }
-
- // Validate additional parameters
- $hidden = $this[self::HIDDEN_PARAMS];
-
- if ($properties = $this->operation->getAdditionalParameters()) {
- foreach ($this->toArray() as $name => $value) {
- // It's only additional if it isn't defined in the schema
- if (!$this->operation->hasParam($name) && !in_array($name, $hidden)) {
- // Always set the name so that error messages are useful
- $properties->setName($name);
- if (!$validator->validate($properties, $value)) {
- $errors = array_merge($errors, $validator->getErrors());
- } elseif ($value !== $this[$name]) {
- $this->data[$name] = $value;
- }
- }
- }
- }
-
- if (!empty($errors)) {
- $e = new ValidationException('Validation errors: ' . implode("\n", $errors));
- $e->setErrors($errors);
- throw $e;
- }
- }
-
- /**
- * Get the validator used to prepare and validate properties. If no validator has been set on the command, then
- * the default {@see SchemaValidator} will be used.
- *
- * @return ValidatorInterface
- */
- protected function getValidator()
- {
- if (!$this->validator) {
- $this->validator = SchemaValidator::getInstance();
- }
-
- return $this->validator;
- }
-
- /**
- * Get array of any validation errors
- * If no validator has been set then return false
- */
- public function getValidationErrors()
- {
- if (!$this->validator) {
- return false;
- }
-
- return $this->validator->getErrors();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ClosureCommand.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ClosureCommand.php
deleted file mode 100644
index cb6ac40ce09..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ClosureCommand.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\UnexpectedValueException;
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * A ClosureCommand is a command that allows dynamic commands to be created at runtime using a closure to prepare the
- * request. A closure key and \Closure value must be passed to the command in the constructor. The closure must
- * accept the command object as an argument.
- */
-class ClosureCommand extends AbstractCommand
-{
- /**
- * {@inheritdoc}
- * @throws InvalidArgumentException if a closure was not passed
- */
- protected function init()
- {
- if (!$this['closure']) {
- throw new InvalidArgumentException('A closure must be passed in the parameters array');
- }
- }
-
- /**
- * {@inheritdoc}
- * @throws UnexpectedValueException If the closure does not return a request
- */
- protected function build()
- {
- $closure = $this['closure'];
- /** @var $closure \Closure */
- $this->request = $closure($this, $this->operation);
-
- if (!$this->request || !$this->request instanceof RequestInterface) {
- throw new UnexpectedValueException('Closure command did not return a RequestInterface object');
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CommandInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CommandInterface.php
deleted file mode 100644
index fbb61d2ff4b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CommandInterface.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Common\Collection;
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Message\Response;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Exception\CommandException;
-use Guzzle\Service\Description\OperationInterface;
-use Guzzle\Service\ClientInterface;
-use Guzzle\Common\ToArrayInterface;
-
-/**
- * A command object that contains parameters that can be modified and accessed like an array and turned into an array
- */
-interface CommandInterface extends \ArrayAccess, ToArrayInterface
-{
- /**
- * Get the short form name of the command
- *
- * @return string
- */
- public function getName();
-
- /**
- * Get the API operation information about the command
- *
- * @return OperationInterface
- */
- public function getOperation();
-
- /**
- * Execute the command and return the result
- *
- * @return mixed Returns the result of {@see CommandInterface::execute}
- * @throws CommandException if a client has not been associated with the command
- */
- public function execute();
-
- /**
- * Get the client object that will execute the command
- *
- * @return ClientInterface|null
- */
- public function getClient();
-
- /**
- * Set the client object that will execute the command
- *
- * @param ClientInterface $client The client object that will execute the command
- *
- * @return self
- */
- public function setClient(ClientInterface $client);
-
- /**
- * Get the request object associated with the command
- *
- * @return RequestInterface
- * @throws CommandException if the command has not been executed
- */
- public function getRequest();
-
- /**
- * Get the response object associated with the command
- *
- * @return Response
- * @throws CommandException if the command has not been executed
- */
- public function getResponse();
-
- /**
- * Get the result of the command
- *
- * @return Response By default, commands return a Response object unless overridden in a subclass
- * @throws CommandException if the command has not been executed
- */
- public function getResult();
-
- /**
- * Set the result of the command
- *
- * @param mixed $result Result to set
- *
- * @return self
- */
- public function setResult($result);
-
- /**
- * Returns TRUE if the command has been prepared for executing
- *
- * @return bool
- */
- public function isPrepared();
-
- /**
- * Returns TRUE if the command has been executed
- *
- * @return bool
- */
- public function isExecuted();
-
- /**
- * Prepare the command for executing and create a request object.
- *
- * @return RequestInterface Returns the generated request
- * @throws CommandException if a client object has not been set previously or in the prepare()
- */
- public function prepare();
-
- /**
- * Get the object that manages the request headers that will be set on any outbound requests from the command
- *
- * @return Collection
- */
- public function getRequestHeaders();
-
- /**
- * Specify a callable to execute when the command completes
- *
- * @param mixed $callable Callable to execute when the command completes. The callable must accept a
- * {@see CommandInterface} object as the only argument.
- * @return self
- * @throws InvalidArgumentException
- */
- public function setOnComplete($callable);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CreateResponseClassEvent.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CreateResponseClassEvent.php
deleted file mode 100644
index e05067841c9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/CreateResponseClassEvent.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Common\Event;
-
-/**
- * Event class emitted with the operation.parse_class event
- */
-class CreateResponseClassEvent extends Event
-{
- /**
- * Set the result of the object creation
- *
- * @param mixed $result Result value to set
- */
- public function setResult($result)
- {
- $this['result'] = $result;
- $this->stopPropagation();
- }
-
- /**
- * Get the created object
- *
- * @return mixed
- */
- public function getResult()
- {
- return $this['result'];
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultRequestSerializer.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultRequestSerializer.php
deleted file mode 100644
index 2dc4acd3788..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultRequestSerializer.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\LocationVisitor\Request\RequestVisitorInterface;
-use Guzzle\Service\Command\LocationVisitor\VisitorFlyweight;
-use Guzzle\Service\Description\OperationInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Default request serializer that transforms command options and operation parameters into a request
- */
-class DefaultRequestSerializer implements RequestSerializerInterface
-{
- /** @var VisitorFlyweight $factory Visitor factory */
- protected $factory;
-
- /** @var self */
- protected static $instance;
-
- /**
- * @return self
- * @codeCoverageIgnore
- */
- public static function getInstance()
- {
- if (!self::$instance) {
- self::$instance = new self(VisitorFlyweight::getInstance());
- }
-
- return self::$instance;
- }
-
- /**
- * @param VisitorFlyweight $factory Factory to use when creating visitors
- */
- public function __construct(VisitorFlyweight $factory)
- {
- $this->factory = $factory;
- }
-
- /**
- * Add a location visitor to the serializer
- *
- * @param string $location Location to associate with the visitor
- * @param RequestVisitorInterface $visitor Visitor to attach
- *
- * @return self
- */
- public function addVisitor($location, RequestVisitorInterface $visitor)
- {
- $this->factory->addRequestVisitor($location, $visitor);
-
- return $this;
- }
-
- public function prepare(CommandInterface $command)
- {
- $request = $this->createRequest($command);
- // Keep an array of visitors found in the operation
- $foundVisitors = array();
- $operation = $command->getOperation();
-
- // Add arguments to the request using the location attribute
- foreach ($operation->getParams() as $name => $arg) {
- /** @var $arg \Guzzle\Service\Description\Parameter */
- $location = $arg->getLocation();
- // Skip 'uri' locations because they've already been processed
- if ($location && $location != 'uri') {
- // Instantiate visitors as they are detected in the properties
- if (!isset($foundVisitors[$location])) {
- $foundVisitors[$location] = $this->factory->getRequestVisitor($location);
- }
- // Ensure that a value has been set for this parameter
- $value = $command[$name];
- if ($value !== null) {
- // Apply the parameter value with the location visitor
- $foundVisitors[$location]->visit($command, $request, $arg, $value);
- }
- }
- }
-
- // Serialize additional parameters
- if ($additional = $operation->getAdditionalParameters()) {
- if ($visitor = $this->prepareAdditionalParameters($operation, $command, $request, $additional)) {
- $foundVisitors[$additional->getLocation()] = $visitor;
- }
- }
-
- // Call the after method on each visitor found in the operation
- foreach ($foundVisitors as $visitor) {
- $visitor->after($command, $request);
- }
-
- return $request;
- }
-
- /**
- * Serialize additional parameters
- *
- * @param OperationInterface $operation Operation that owns the command
- * @param CommandInterface $command Command to prepare
- * @param RequestInterface $request Request to serialize
- * @param Parameter $additional Additional parameters
- *
- * @return null|RequestVisitorInterface
- */
- protected function prepareAdditionalParameters(
- OperationInterface $operation,
- CommandInterface $command,
- RequestInterface $request,
- Parameter $additional
- ) {
- if (!($location = $additional->getLocation())) {
- return;
- }
-
- $visitor = $this->factory->getRequestVisitor($location);
- $hidden = $command[$command::HIDDEN_PARAMS];
-
- foreach ($command->toArray() as $key => $value) {
- // Ignore values that are null or built-in command options
- if ($value !== null
- && !in_array($key, $hidden)
- && !$operation->hasParam($key)
- ) {
- $additional->setName($key);
- $visitor->visit($command, $request, $additional, $value);
- }
- }
-
- return $visitor;
- }
-
- /**
- * Create a request for the command and operation
- *
- * @param CommandInterface $command Command to create a request for
- *
- * @return RequestInterface
- */
- protected function createRequest(CommandInterface $command)
- {
- $operation = $command->getOperation();
- $client = $command->getClient();
- $options = $command[AbstractCommand::REQUEST_OPTIONS] ?: array();
-
- // If the command does not specify a template, then assume the base URL of the client
- if (!($uri = $operation->getUri())) {
- return $client->createRequest($operation->getHttpMethod(), $client->getBaseUrl(), null, null, $options);
- }
-
- // Get the path values and use the client config settings
- $variables = array();
- foreach ($operation->getParams() as $name => $arg) {
- if ($arg->getLocation() == 'uri') {
- if (isset($command[$name])) {
- $variables[$name] = $arg->filter($command[$name]);
- if (!is_array($variables[$name])) {
- $variables[$name] = (string) $variables[$name];
- }
- }
- }
- }
-
- return $client->createRequest($operation->getHttpMethod(), array($uri, $variables), null, null, $options);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultResponseParser.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultResponseParser.php
deleted file mode 100644
index 4fe380376a4..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/DefaultResponseParser.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Http\Message\Response;
-
-/**
- * Default HTTP response parser used to marshal JSON responses into arrays and XML responses into SimpleXMLElement
- */
-class DefaultResponseParser implements ResponseParserInterface
-{
- /** @var self */
- protected static $instance;
-
- /**
- * @return self
- * @codeCoverageIgnore
- */
- public static function getInstance()
- {
- if (!self::$instance) {
- self::$instance = new self;
- }
-
- return self::$instance;
- }
-
- public function parse(CommandInterface $command)
- {
- $response = $command->getRequest()->getResponse();
-
- // Account for hard coded content-type values specified in service descriptions
- if ($contentType = $command['command.expects']) {
- $response->setHeader('Content-Type', $contentType);
- } else {
- $contentType = (string) $response->getHeader('Content-Type');
- }
-
- return $this->handleParsing($command, $response, $contentType);
- }
-
- protected function handleParsing(CommandInterface $command, Response $response, $contentType)
- {
- $result = $response;
- if ($result->getBody()) {
- if (stripos($contentType, 'json') !== false) {
- $result = $result->json();
- } elseif (stripos($contentType, 'xml') !== false) {
- $result = $result->xml();
- }
- }
-
- return $result;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/AliasFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/AliasFactory.php
deleted file mode 100644
index 1c5ce0741e8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/AliasFactory.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\Factory;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Service\ClientInterface;
-
-/**
- * Command factory used when you need to provide aliases to commands
- */
-class AliasFactory implements FactoryInterface
-{
- /** @var array Associative array mapping command aliases to the aliased command */
- protected $aliases;
-
- /** @var ClientInterface Client used to retry using aliases */
- protected $client;
-
- /**
- * @param ClientInterface $client Client used to retry with the alias
- * @param array $aliases Associative array mapping aliases to the alias
- */
- public function __construct(ClientInterface $client, array $aliases)
- {
- $this->client = $client;
- $this->aliases = $aliases;
- }
-
- public function factory($name, array $args = array())
- {
- if (isset($this->aliases[$name])) {
- try {
- return $this->client->getCommand($this->aliases[$name], $args);
- } catch (InvalidArgumentException $e) {
- return null;
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/CompositeFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/CompositeFactory.php
deleted file mode 100644
index 8c46983d651..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/CompositeFactory.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\Factory;
-
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\ClientInterface;
-
-/**
- * Composite factory used by a client object to create command objects utilizing multiple factories
- */
-class CompositeFactory implements \IteratorAggregate, \Countable, FactoryInterface
-{
- /** @var array Array of command factories */
- protected $factories;
-
- /**
- * Get the default chain to use with clients
- *
- * @param ClientInterface $client Client to base the chain on
- *
- * @return self
- */
- public static function getDefaultChain(ClientInterface $client)
- {
- $factories = array();
- if ($description = $client->getDescription()) {
- $factories[] = new ServiceDescriptionFactory($description);
- }
- $factories[] = new ConcreteClassFactory($client);
-
- return new self($factories);
- }
-
- /**
- * @param array $factories Array of command factories
- */
- public function __construct(array $factories = array())
- {
- $this->factories = $factories;
- }
-
- /**
- * Add a command factory to the chain
- *
- * @param FactoryInterface $factory Factory to add
- * @param string|FactoryInterface $before Insert the new command factory before a command factory class or object
- * matching a class name.
- * @return CompositeFactory
- */
- public function add(FactoryInterface $factory, $before = null)
- {
- $pos = null;
-
- if ($before) {
- foreach ($this->factories as $i => $f) {
- if ($before instanceof FactoryInterface) {
- if ($f === $before) {
- $pos = $i;
- break;
- }
- } elseif (is_string($before)) {
- if ($f instanceof $before) {
- $pos = $i;
- break;
- }
- }
- }
- }
-
- if ($pos === null) {
- $this->factories[] = $factory;
- } else {
- array_splice($this->factories, $i, 0, array($factory));
- }
-
- return $this;
- }
-
- /**
- * Check if the chain contains a specific command factory
- *
- * @param FactoryInterface|string $factory Factory to check
- *
- * @return bool
- */
- public function has($factory)
- {
- return (bool) $this->find($factory);
- }
-
- /**
- * Remove a specific command factory from the chain
- *
- * @param string|FactoryInterface $factory Factory to remove by name or instance
- *
- * @return CompositeFactory
- */
- public function remove($factory = null)
- {
- if (!($factory instanceof FactoryInterface)) {
- $factory = $this->find($factory);
- }
-
- $this->factories = array_values(array_filter($this->factories, function($f) use ($factory) {
- return $f !== $factory;
- }));
-
- return $this;
- }
-
- /**
- * Get a command factory by class name
- *
- * @param string|FactoryInterface $factory Command factory class or instance
- *
- * @return null|FactoryInterface
- */
- public function find($factory)
- {
- foreach ($this->factories as $f) {
- if ($factory === $f || (is_string($factory) && $f instanceof $factory)) {
- return $f;
- }
- }
- }
-
- /**
- * Create a command using the associated command factories
- *
- * @param string $name Name of the command
- * @param array $args Command arguments
- *
- * @return CommandInterface
- */
- public function factory($name, array $args = array())
- {
- foreach ($this->factories as $factory) {
- $command = $factory->factory($name, $args);
- if ($command) {
- return $command;
- }
- }
- }
-
- public function count()
- {
- return count($this->factories);
- }
-
- public function getIterator()
- {
- return new \ArrayIterator($this->factories);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ConcreteClassFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ConcreteClassFactory.php
deleted file mode 100644
index 0e93deaa030..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ConcreteClassFactory.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\Factory;
-
-use Guzzle\Inflection\InflectorInterface;
-use Guzzle\Inflection\Inflector;
-use Guzzle\Service\ClientInterface;
-
-/**
- * Command factory used to create commands referencing concrete command classes
- */
-class ConcreteClassFactory implements FactoryInterface
-{
- /** @var ClientInterface */
- protected $client;
-
- /** @var InflectorInterface */
- protected $inflector;
-
- /**
- * @param ClientInterface $client Client that owns the commands
- * @param InflectorInterface $inflector Inflector used to resolve class names
- */
- public function __construct(ClientInterface $client, InflectorInterface $inflector = null)
- {
- $this->client = $client;
- $this->inflector = $inflector ?: Inflector::getDefault();
- }
-
- public function factory($name, array $args = array())
- {
- // Determine the class to instantiate based on the namespace of the current client and the default directory
- $prefix = $this->client->getConfig('command.prefix');
- if (!$prefix) {
- // The prefix can be specified in a factory method and is cached
- $prefix = implode('\\', array_slice(explode('\\', get_class($this->client)), 0, -1)) . '\\Command\\';
- $this->client->getConfig()->set('command.prefix', $prefix);
- }
-
- $class = $prefix . str_replace(' ', '\\', ucwords(str_replace('.', ' ', $this->inflector->camel($name))));
-
- // Create the concrete command if it exists
- if (class_exists($class)) {
- return new $class($args);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/FactoryInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/FactoryInterface.php
deleted file mode 100644
index 35c299d9d8c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/FactoryInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\Factory;
-
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Interface for creating commands by name
- */
-interface FactoryInterface
-{
- /**
- * Create a command by name
- *
- * @param string $name Command to create
- * @param array $args Command arguments
- *
- * @return CommandInterface|null
- */
- public function factory($name, array $args = array());
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/MapFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/MapFactory.php
deleted file mode 100644
index 0ad80bcf478..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/MapFactory.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\Factory;
-
-/**
- * Command factory used when explicitly mapping strings to command classes
- */
-class MapFactory implements FactoryInterface
-{
- /** @var array Associative array mapping command names to classes */
- protected $map;
-
- /** @param array $map Associative array mapping command names to classes */
- public function __construct(array $map)
- {
- $this->map = $map;
- }
-
- public function factory($name, array $args = array())
- {
- if (isset($this->map[$name])) {
- $class = $this->map[$name];
-
- return new $class($args);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php
deleted file mode 100644
index b943a5b50a5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\Factory;
-
-use Guzzle\Service\Description\ServiceDescriptionInterface;
-use Guzzle\Inflection\InflectorInterface;
-
-/**
- * Command factory used to create commands based on service descriptions
- */
-class ServiceDescriptionFactory implements FactoryInterface
-{
- /** @var ServiceDescriptionInterface */
- protected $description;
-
- /** @var InflectorInterface */
- protected $inflector;
-
- /**
- * @param ServiceDescriptionInterface $description Service description
- * @param InflectorInterface $inflector Optional inflector to use if the command is not at first found
- */
- public function __construct(ServiceDescriptionInterface $description, InflectorInterface $inflector = null)
- {
- $this->setServiceDescription($description);
- $this->inflector = $inflector;
- }
-
- /**
- * Change the service description used with the factory
- *
- * @param ServiceDescriptionInterface $description Service description to use
- *
- * @return FactoryInterface
- */
- public function setServiceDescription(ServiceDescriptionInterface $description)
- {
- $this->description = $description;
-
- return $this;
- }
-
- /**
- * Returns the service description
- *
- * @return ServiceDescriptionInterface
- */
- public function getServiceDescription()
- {
- return $this->description;
- }
-
- public function factory($name, array $args = array())
- {
- $command = $this->description->getOperation($name);
-
- // If a command wasn't found, then try to uppercase the first letter and try again
- if (!$command) {
- $command = $this->description->getOperation(ucfirst($name));
- // If an inflector was passed, then attempt to get the command using snake_case inflection
- if (!$command && $this->inflector) {
- $command = $this->description->getOperation($this->inflector->snake($name));
- }
- }
-
- if ($command) {
- $class = $command->getClass();
- return new $class($args, $command, $this->description);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php
deleted file mode 100644
index adcfca1ba73..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Description\Parameter;
-
-abstract class AbstractRequestVisitor implements RequestVisitorInterface
-{
- /**
- * @codeCoverageIgnore
- */
- public function after(CommandInterface $command, RequestInterface $request) {}
-
- /**
- * @codeCoverageIgnore
- */
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value) {}
-
- /**
- * Prepare (filter and set desired name for request item) the value for request.
- *
- * @param mixed $value
- * @param \Guzzle\Service\Description\Parameter $param
- *
- * @return array|mixed
- */
- protected function prepareValue($value, Parameter $param)
- {
- return is_array($value)
- ? $this->resolveRecursively($value, $param)
- : $param->filter($value);
- }
-
- /**
- * Map nested parameters into the location_key based parameters
- *
- * @param array $value Value to map
- * @param Parameter $param Parameter that holds information about the current key
- *
- * @return array Returns the mapped array
- */
- protected function resolveRecursively(array $value, Parameter $param)
- {
- foreach ($value as $name => &$v) {
- switch ($param->getType()) {
- case 'object':
- if ($subParam = $param->getProperty($name)) {
- $key = $subParam->getWireName();
- $value[$key] = $this->prepareValue($v, $subParam);
- if ($name != $key) {
- unset($value[$name]);
- }
- } elseif ($param->getAdditionalProperties() instanceof Parameter) {
- $v = $this->prepareValue($v, $param->getAdditionalProperties());
- }
- break;
- case 'array':
- if ($items = $param->getItems()) {
- $v = $this->prepareValue($v, $items);
- }
- break;
- }
- }
-
- return $param->filter($value);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php
deleted file mode 100644
index 168d7806fc5..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\EntityBody;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\EntityBodyInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to apply a body to a request
- *
- * This visitor can use a data parameter of 'expect' to control the Expect header. Set the expect data parameter to
- * false to disable the expect header, or set the value to an integer so that the expect 100-continue header is only
- * added if the Content-Length of the entity body is greater than the value.
- */
-class BodyVisitor extends AbstractRequestVisitor
-{
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- $value = $param->filter($value);
- $entityBody = EntityBody::factory($value);
- $request->setBody($entityBody);
- $this->addExpectHeader($request, $entityBody, $param->getData('expect_header'));
- // Add the Content-Encoding header if one is set on the EntityBody
- if ($encoding = $entityBody->getContentEncoding()) {
- $request->setHeader('Content-Encoding', $encoding);
- }
- }
-
- /**
- * Add the appropriate expect header to a request
- *
- * @param EntityEnclosingRequestInterface $request Request to update
- * @param EntityBodyInterface $body Entity body of the request
- * @param string|int $expect Expect header setting
- */
- protected function addExpectHeader(EntityEnclosingRequestInterface $request, EntityBodyInterface $body, $expect)
- {
- // Allow the `expect` data parameter to be set to remove the Expect header from the request
- if ($expect === false) {
- $request->removeHeader('Expect');
- } elseif ($expect !== true) {
- // Default to using a MB as the point in which to start using the expect header
- $expect = $expect ?: 1048576;
- // If the expect_header value is numeric then only add if the size is greater than the cutoff
- if (is_numeric($expect) && $body->getSize()) {
- if ($body->getSize() < $expect) {
- $request->removeHeader('Expect');
- } else {
- $request->setHeader('Expect', '100-Continue');
- }
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php
deleted file mode 100644
index 2a537542ca7..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to apply a parameter to a header value
- */
-class HeaderVisitor extends AbstractRequestVisitor
-{
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- $value = $param->filter($value);
- if ($param->getType() == 'object' && $param->getAdditionalProperties() instanceof Parameter) {
- $this->addPrefixedHeaders($request, $param, $value);
- } else {
- $request->setHeader($param->getWireName(), $value);
- }
- }
-
- /**
- * Add a prefixed array of headers to the request
- *
- * @param RequestInterface $request Request to update
- * @param Parameter $param Parameter object
- * @param array $value Header array to add
- *
- * @throws InvalidArgumentException
- */
- protected function addPrefixedHeaders(RequestInterface $request, Parameter $param, $value)
- {
- if (!is_array($value)) {
- throw new InvalidArgumentException('An array of mapped headers expected, but received a single value');
- }
- $prefix = $param->getSentAs();
- foreach ($value as $headerName => $headerValue) {
- $request->setHeader($prefix . $headerName, $headerValue);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php
deleted file mode 100644
index 757e1c520ce..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to apply a parameter to an array that will be serialized as a top level key-value pair in a JSON body
- */
-class JsonVisitor extends AbstractRequestVisitor
-{
- /** @var bool Whether or not to add a Content-Type header when JSON is found */
- protected $jsonContentType = 'application/json';
-
- /** @var \SplObjectStorage Data object for persisting JSON data */
- protected $data;
-
- public function __construct()
- {
- $this->data = new \SplObjectStorage();
- }
-
- /**
- * Set the Content-Type header to add to the request if JSON is added to the body. This visitor does not add a
- * Content-Type header unless you specify one here.
- *
- * @param string $header Header to set when JSON is added (e.g. application/json)
- *
- * @return self
- */
- public function setContentTypeHeader($header = 'application/json')
- {
- $this->jsonContentType = $header;
-
- return $this;
- }
-
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- if (isset($this->data[$command])) {
- $json = $this->data[$command];
- } else {
- $json = array();
- }
- $json[$param->getWireName()] = $this->prepareValue($value, $param);
- $this->data[$command] = $json;
- }
-
- public function after(CommandInterface $command, RequestInterface $request)
- {
- if (isset($this->data[$command])) {
- // Don't overwrite the Content-Type if one is set
- if ($this->jsonContentType && !$request->hasHeader('Content-Type')) {
- $request->setHeader('Content-Type', $this->jsonContentType);
- }
-
- $request->setBody(json_encode($this->data[$command]));
- unset($this->data[$command]);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php
deleted file mode 100644
index 975850b74ea..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to apply a parameter to a POST field
- */
-class PostFieldVisitor extends AbstractRequestVisitor
-{
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- $request->setPostField($param->getWireName(), $this->prepareValue($value, $param));
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php
deleted file mode 100644
index 0853ebe6293..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Message\PostFileInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to apply a parameter to a POST file
- */
-class PostFileVisitor extends AbstractRequestVisitor
-{
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- $value = $param->filter($value);
- if ($value instanceof PostFileInterface) {
- $request->addPostFile($value);
- } else {
- $request->addPostFile($param->getWireName(), $value);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php
deleted file mode 100644
index 315877aa06c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to apply a parameter to a request's query string
- */
-class QueryVisitor extends AbstractRequestVisitor
-{
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- $request->getQuery()->set($param->getWireName(), $this->prepareValue($value, $param));
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php
deleted file mode 100644
index 14e0b2d2b1e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Location visitor used to add values to different locations in a request with different behaviors as needed
- */
-interface RequestVisitorInterface
-{
- /**
- * Called after visiting all parameters
- *
- * @param CommandInterface $command Command being visited
- * @param RequestInterface $request Request being visited
- */
- public function after(CommandInterface $command, RequestInterface $request);
-
- /**
- * Called once for each parameter being visited that matches the location type
- *
- * @param CommandInterface $command Command being visited
- * @param RequestInterface $request Request being visited
- * @param Parameter $param Parameter being visited
- * @param mixed $value Value to set
- */
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/ResponseBodyVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/ResponseBodyVisitor.php
deleted file mode 100644
index 09f35f8ea45..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/ResponseBodyVisitor.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to change the location in which a response body is saved
- */
-class ResponseBodyVisitor extends AbstractRequestVisitor
-{
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- $request->setResponseBody($value);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php
deleted file mode 100644
index 5b714878708..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Request;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Service\Description\Operation;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Location visitor used to serialize XML bodies
- */
-class XmlVisitor extends AbstractRequestVisitor
-{
- /** @var \SplObjectStorage Data object for persisting XML data */
- protected $data;
-
- /** @var bool Content-Type header added when XML is found */
- protected $contentType = 'application/xml';
-
- public function __construct()
- {
- $this->data = new \SplObjectStorage();
- }
-
- /**
- * Change the content-type header that is added when XML is found
- *
- * @param string $header Header to set when XML is found
- *
- * @return self
- */
- public function setContentTypeHeader($header)
- {
- $this->contentType = $header;
-
- return $this;
- }
-
- public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
- {
- $xml = isset($this->data[$command])
- ? $this->data[$command]
- : $this->createRootElement($param->getParent());
- $this->addXml($xml, $param, $value);
-
- $this->data[$command] = $xml;
- }
-
- public function after(CommandInterface $command, RequestInterface $request)
- {
- $xml = null;
-
- // If data was found that needs to be serialized, then do so
- if (isset($this->data[$command])) {
- $xml = $this->finishDocument($this->data[$command]);
- unset($this->data[$command]);
- } else {
- // Check if XML should always be sent for the command
- $operation = $command->getOperation();
- if ($operation->getData('xmlAllowEmpty')) {
- $xmlWriter = $this->createRootElement($operation);
- $xml = $this->finishDocument($xmlWriter);
- }
- }
-
- if ($xml) {
- // Don't overwrite the Content-Type if one is set
- if ($this->contentType && !$request->hasHeader('Content-Type')) {
- $request->setHeader('Content-Type', $this->contentType);
- }
- $request->setBody($xml);
- }
- }
-
- /**
- * Create the root XML element to use with a request
- *
- * @param Operation $operation Operation object
- *
- * @return \XMLWriter
- */
- protected function createRootElement(Operation $operation)
- {
- static $defaultRoot = array('name' => 'Request');
- // If no root element was specified, then just wrap the XML in 'Request'
- $root = $operation->getData('xmlRoot') ?: $defaultRoot;
- // Allow the XML declaration to be customized with xmlEncoding
- $encoding = $operation->getData('xmlEncoding');
-
- $xmlWriter = $this->startDocument($encoding);
-
- $xmlWriter->startElement($root['name']);
- // Create the wrapping element with no namespaces if no namespaces were present
- if (!empty($root['namespaces'])) {
- // Create the wrapping element with an array of one or more namespaces
- foreach ((array) $root['namespaces'] as $prefix => $uri) {
- $nsLabel = 'xmlns';
- if (!is_numeric($prefix)) {
- $nsLabel .= ':'.$prefix;
- }
- $xmlWriter->writeAttribute($nsLabel, $uri);
- }
- }
- return $xmlWriter;
- }
-
- /**
- * Recursively build the XML body
- *
- * @param \XMLWriter $xmlWriter XML to modify
- * @param Parameter $param API Parameter
- * @param mixed $value Value to add
- */
- protected function addXml(\XMLWriter $xmlWriter, Parameter $param, $value)
- {
- if ($value === null) {
- return;
- }
-
- $value = $param->filter($value);
- $type = $param->getType();
- $name = $param->getWireName();
- $prefix = null;
- $namespace = $param->getData('xmlNamespace');
- if (false !== strpos($name, ':')) {
- list($prefix, $name) = explode(':', $name, 2);
- }
-
- if ($type == 'object' || $type == 'array') {
- if (!$param->getData('xmlFlattened')) {
- $xmlWriter->startElementNS(null, $name, $namespace);
- }
- if ($param->getType() == 'array') {
- $this->addXmlArray($xmlWriter, $param, $value);
- } elseif ($param->getType() == 'object') {
- $this->addXmlObject($xmlWriter, $param, $value);
- }
- if (!$param->getData('xmlFlattened')) {
- $xmlWriter->endElement();
- }
- return;
- }
- if ($param->getData('xmlAttribute')) {
- $this->writeAttribute($xmlWriter, $prefix, $name, $namespace, $value);
- } else {
- $this->writeElement($xmlWriter, $prefix, $name, $namespace, $value);
- }
- }
-
- /**
- * Write an attribute with namespace if used
- *
- * @param \XMLWriter $xmlWriter XMLWriter instance
- * @param string $prefix Namespace prefix if any
- * @param string $name Attribute name
- * @param string $namespace The uri of the namespace
- * @param string $value The attribute content
- */
- protected function writeAttribute($xmlWriter, $prefix, $name, $namespace, $value)
- {
- if (empty($namespace)) {
- $xmlWriter->writeAttribute($name, $value);
- } else {
- $xmlWriter->writeAttributeNS($prefix, $name, $namespace, $value);
- }
- }
-
- /**
- * Write an element with namespace if used
- *
- * @param \XMLWriter $xmlWriter XML writer resource
- * @param string $prefix Namespace prefix if any
- * @param string $name Element name
- * @param string $namespace The uri of the namespace
- * @param string $value The element content
- */
- protected function writeElement(\XMLWriter $xmlWriter, $prefix, $name, $namespace, $value)
- {
- $xmlWriter->startElementNS($prefix, $name, $namespace);
- if (strpbrk($value, '<>&')) {
- $xmlWriter->writeCData($value);
- } else {
- $xmlWriter->writeRaw($value);
- }
- $xmlWriter->endElement();
- }
-
- /**
- * Create a new xml writer and start a document
- *
- * @param string $encoding document encoding
- *
- * @return \XMLWriter the writer resource
- */
- protected function startDocument($encoding)
- {
- $xmlWriter = new \XMLWriter();
- $xmlWriter->openMemory();
- $xmlWriter->startDocument('1.0', $encoding);
-
- return $xmlWriter;
- }
-
- /**
- * End the document and return the output
- *
- * @param \XMLWriter $xmlWriter
- *
- * @return \string the writer resource
- */
- protected function finishDocument($xmlWriter)
- {
- $xmlWriter->endDocument();
-
- return $xmlWriter->outputMemory();
- }
-
- /**
- * Add an array to the XML
- */
- protected function addXmlArray(\XMLWriter $xmlWriter, Parameter $param, &$value)
- {
- if ($items = $param->getItems()) {
- foreach ($value as $v) {
- $this->addXml($xmlWriter, $items, $v);
- }
- }
- }
-
- /**
- * Add an object to the XML
- */
- protected function addXmlObject(\XMLWriter $xmlWriter, Parameter $param, &$value)
- {
- $noAttributes = array();
- // add values which have attributes
- foreach ($value as $name => $v) {
- if ($property = $param->getProperty($name)) {
- if ($property->getData('xmlAttribute')) {
- $this->addXml($xmlWriter, $property, $v);
- } else {
- $noAttributes[] = array('value' => $v, 'property' => $property);
- }
- }
- }
- // now add values with no attributes
- foreach ($noAttributes as $element) {
- $this->addXml($xmlWriter, $element['property'], $element['value']);
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php
deleted file mode 100644
index d87eeb94598..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * {@inheritdoc}
- * @codeCoverageIgnore
- */
-abstract class AbstractResponseVisitor implements ResponseVisitorInterface
-{
- public function before(CommandInterface $command, array &$result) {}
-
- public function after(CommandInterface $command) {}
-
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- ) {}
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/BodyVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/BodyVisitor.php
deleted file mode 100644
index f70b7276e93..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/BodyVisitor.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Service\Command\CommandInterface;
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Visitor used to add the body of a response to a particular key
- */
-class BodyVisitor extends AbstractResponseVisitor
-{
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- ) {
- $value[$param->getName()] = $param->filter($response->getBody());
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php
deleted file mode 100644
index 0f8737cbd96..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Location visitor used to add a particular header of a response to a key in the result
- */
-class HeaderVisitor extends AbstractResponseVisitor
-{
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- ) {
- if ($param->getType() == 'object' && $param->getAdditionalProperties() instanceof Parameter) {
- $this->processPrefixedHeaders($response, $param, $value);
- } else {
- $value[$param->getName()] = $param->filter((string) $response->getHeader($param->getWireName()));
- }
- }
-
- /**
- * Process a prefixed header array
- *
- * @param Response $response Response that contains the headers
- * @param Parameter $param Parameter object
- * @param array $value Value response array to modify
- */
- protected function processPrefixedHeaders(Response $response, Parameter $param, &$value)
- {
- // Grab prefixed headers that should be placed into an array with the prefix stripped
- if ($prefix = $param->getSentAs()) {
- $container = $param->getName();
- $len = strlen($prefix);
- // Find all matching headers and place them into the containing element
- foreach ($response->getHeaders()->toArray() as $key => $header) {
- if (stripos($key, $prefix) === 0) {
- // Account for multi-value headers
- $value[$container][substr($key, $len)] = count($header) == 1 ? end($header) : $header;
- }
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php
deleted file mode 100644
index a609ebd8ce9..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Location visitor used to marshal JSON response data into a formatted array.
- *
- * Allows top level JSON parameters to be inserted into the result of a command. The top level attributes are grabbed
- * from the response's JSON data using the name value by default. Filters can be applied to parameters as they are
- * traversed. This allows data to be normalized before returning it to users (for example converting timestamps to
- * DateTime objects).
- */
-class JsonVisitor extends AbstractResponseVisitor
-{
- public function before(CommandInterface $command, array &$result)
- {
- // Ensure that the result of the command is always rooted with the parsed JSON data
- $result = $command->getResponse()->json();
- }
-
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- ) {
- $name = $param->getName();
- $key = $param->getWireName();
- if (isset($value[$key])) {
- $this->recursiveProcess($param, $value[$key]);
- if ($key != $name) {
- $value[$name] = $value[$key];
- unset($value[$key]);
- }
- }
- }
-
- /**
- * Recursively process a parameter while applying filters
- *
- * @param Parameter $param API parameter being validated
- * @param mixed $value Value to validate and process. The value may change during this process.
- */
- protected function recursiveProcess(Parameter $param, &$value)
- {
- if ($value === null) {
- return;
- }
-
- if (is_array($value)) {
- $type = $param->getType();
- if ($type == 'array') {
- foreach ($value as &$item) {
- $this->recursiveProcess($param->getItems(), $item);
- }
- } elseif ($type == 'object' && !isset($value[0])) {
- // On the above line, we ensure that the array is associative and not numerically indexed
- $knownProperties = array();
- if ($properties = $param->getProperties()) {
- foreach ($properties as $property) {
- $name = $property->getName();
- $key = $property->getWireName();
- $knownProperties[$name] = 1;
- if (isset($value[$key])) {
- $this->recursiveProcess($property, $value[$key]);
- if ($key != $name) {
- $value[$name] = $value[$key];
- unset($value[$key]);
- }
- }
- }
- }
-
- // Remove any unknown and potentially unsafe properties
- if ($param->getAdditionalProperties() === false) {
- $value = array_intersect_key($value, $knownProperties);
- } elseif (($additional = $param->getAdditionalProperties()) !== true) {
- // Validate and filter additional properties
- foreach ($value as &$v) {
- $this->recursiveProcess($additional, $v);
- }
- }
- }
- }
-
- $value = $param->filter($value);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php
deleted file mode 100644
index 1b10ebce761..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Location visitor used to add the reason phrase of a response to a key in the result
- */
-class ReasonPhraseVisitor extends AbstractResponseVisitor
-{
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- ) {
- $value[$param->getName()] = $response->getReasonPhrase();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php
deleted file mode 100644
index 033f40c3f81..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Location visitor used to parse values out of a response into an associative array
- */
-interface ResponseVisitorInterface
-{
- /**
- * Called before visiting all parameters. This can be used for seeding the result of a command with default
- * data (e.g. populating with JSON data in the response then adding to the parsed data).
- *
- * @param CommandInterface $command Command being visited
- * @param array $result Result value to update if needed (e.g. parsing XML or JSON)
- */
- public function before(CommandInterface $command, array &$result);
-
- /**
- * Called after visiting all parameters
- *
- * @param CommandInterface $command Command being visited
- */
- public function after(CommandInterface $command);
-
- /**
- * Called once for each parameter being visited that matches the location type
- *
- * @param CommandInterface $command Command being visited
- * @param Response $response Response being visited
- * @param Parameter $param Parameter being visited
- * @param mixed $value Result associative array value being updated by reference
- * @param mixed $context Parsing context
- */
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- );
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/StatusCodeVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/StatusCodeVisitor.php
deleted file mode 100644
index 00c5ce0e697..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/StatusCodeVisitor.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Location visitor used to add the status code of a response to a key in the result
- */
-class StatusCodeVisitor extends AbstractResponseVisitor
-{
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- ) {
- $value[$param->getName()] = $response->getStatusCode();
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php
deleted file mode 100644
index bb7124be757..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor\Response;
-
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Location visitor used to marshal XML response data into a formatted array
- */
-class XmlVisitor extends AbstractResponseVisitor
-{
- public function before(CommandInterface $command, array &$result)
- {
- // Set the result of the command to the array conversion of the XML body
- $result = json_decode(json_encode($command->getResponse()->xml()), true);
- }
-
- public function visit(
- CommandInterface $command,
- Response $response,
- Parameter $param,
- &$value,
- $context = null
- ) {
- $sentAs = $param->getWireName();
- $name = $param->getName();
- if (isset($value[$sentAs])) {
- $this->recursiveProcess($param, $value[$sentAs]);
- if ($name != $sentAs) {
- $value[$name] = $value[$sentAs];
- unset($value[$sentAs]);
- }
- }
- }
-
- /**
- * Recursively process a parameter while applying filters
- *
- * @param Parameter $param API parameter being processed
- * @param mixed $value Value to validate and process. The value may change during this process.
- */
- protected function recursiveProcess(Parameter $param, &$value)
- {
- $type = $param->getType();
-
- if (!is_array($value)) {
- if ($type == 'array') {
- // Cast to an array if the value was a string, but should be an array
- $this->recursiveProcess($param->getItems(), $value);
- $value = array($value);
- }
- } elseif ($type == 'object') {
- $this->processObject($param, $value);
- } elseif ($type == 'array') {
- $this->processArray($param, $value);
- } elseif ($type == 'string' && gettype($value) == 'array') {
- $value = '';
- }
-
- if ($value !== null) {
- $value = $param->filter($value);
- }
- }
-
- /**
- * Process an array
- *
- * @param Parameter $param API parameter being parsed
- * @param mixed $value Value to process
- */
- protected function processArray(Parameter $param, &$value)
- {
- // Convert the node if it was meant to be an array
- if (!isset($value[0])) {
- // Collections fo nodes are sometimes wrapped in an additional array. For example:
- // <Items><Item><a>1</a></Item><Item><a>2</a></Item></Items> should become:
- // array('Items' => array(array('a' => 1), array('a' => 2))
- // Some nodes are not wrapped. For example: <Foo><a>1</a></Foo><Foo><a>2</a></Foo>
- // should become array('Foo' => array(array('a' => 1), array('a' => 2))
- if ($param->getItems() && isset($value[$param->getItems()->getWireName()])) {
- // Account for the case of a collection wrapping wrapped nodes: Items => Item[]
- $value = $value[$param->getItems()->getWireName()];
- // If the wrapped node only had one value, then make it an array of nodes
- if (!isset($value[0]) || !is_array($value)) {
- $value = array($value);
- }
- } elseif (!empty($value)) {
- // Account for repeated nodes that must be an array: Foo => Baz, Foo => Baz, but only if the
- // value is set and not empty
- $value = array($value);
- }
- }
-
- foreach ($value as &$item) {
- $this->recursiveProcess($param->getItems(), $item);
- }
- }
-
- /**
- * Process an object
- *
- * @param Parameter $param API parameter being parsed
- * @param mixed $value Value to process
- */
- protected function processObject(Parameter $param, &$value)
- {
- // Ensure that the array is associative and not numerically indexed
- if (!isset($value[0]) && ($properties = $param->getProperties())) {
- $knownProperties = array();
- foreach ($properties as $property) {
- $name = $property->getName();
- $sentAs = $property->getWireName();
- $knownProperties[$name] = 1;
- if ($property->getData('xmlAttribute')) {
- $this->processXmlAttribute($property, $value);
- } elseif (isset($value[$sentAs])) {
- $this->recursiveProcess($property, $value[$sentAs]);
- if ($name != $sentAs) {
- $value[$name] = $value[$sentAs];
- unset($value[$sentAs]);
- }
- }
- }
-
- // Remove any unknown and potentially unsafe properties
- if ($param->getAdditionalProperties() === false) {
- $value = array_intersect_key($value, $knownProperties);
- }
- }
- }
-
- /**
- * Process an XML attribute property
- *
- * @param Parameter $property Property to process
- * @param array $value Value to process and update
- */
- protected function processXmlAttribute(Parameter $property, array &$value)
- {
- $sentAs = $property->getWireName();
- if (isset($value['@attributes'][$sentAs])) {
- $value[$property->getName()] = $value['@attributes'][$sentAs];
- unset($value['@attributes'][$sentAs]);
- if (empty($value['@attributes'])) {
- unset($value['@attributes']);
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php
deleted file mode 100644
index 74cb62813b8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command\LocationVisitor;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Service\Command\LocationVisitor\Request\RequestVisitorInterface;
-use Guzzle\Service\Command\LocationVisitor\Response\ResponseVisitorInterface;
-
-/**
- * Flyweight factory used to instantiate request and response visitors
- */
-class VisitorFlyweight
-{
- /** @var self Singleton instance of self */
- protected static $instance;
-
- /** @var array Default array of mappings of location names to classes */
- protected static $defaultMappings = array(
- 'request.body' => 'Guzzle\Service\Command\LocationVisitor\Request\BodyVisitor',
- 'request.header' => 'Guzzle\Service\Command\LocationVisitor\Request\HeaderVisitor',
- 'request.json' => 'Guzzle\Service\Command\LocationVisitor\Request\JsonVisitor',
- 'request.postField' => 'Guzzle\Service\Command\LocationVisitor\Request\PostFieldVisitor',
- 'request.postFile' => 'Guzzle\Service\Command\LocationVisitor\Request\PostFileVisitor',
- 'request.query' => 'Guzzle\Service\Command\LocationVisitor\Request\QueryVisitor',
- 'request.response_body' => 'Guzzle\Service\Command\LocationVisitor\Request\ResponseBodyVisitor',
- 'request.responseBody' => 'Guzzle\Service\Command\LocationVisitor\Request\ResponseBodyVisitor',
- 'request.xml' => 'Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor',
- 'response.body' => 'Guzzle\Service\Command\LocationVisitor\Response\BodyVisitor',
- 'response.header' => 'Guzzle\Service\Command\LocationVisitor\Response\HeaderVisitor',
- 'response.json' => 'Guzzle\Service\Command\LocationVisitor\Response\JsonVisitor',
- 'response.reasonPhrase' => 'Guzzle\Service\Command\LocationVisitor\Response\ReasonPhraseVisitor',
- 'response.statusCode' => 'Guzzle\Service\Command\LocationVisitor\Response\StatusCodeVisitor',
- 'response.xml' => 'Guzzle\Service\Command\LocationVisitor\Response\XmlVisitor'
- );
-
- /** @var array Array of mappings of location names to classes */
- protected $mappings;
-
- /** @var array Cache of instantiated visitors */
- protected $cache = array();
-
- /**
- * @return self
- * @codeCoverageIgnore
- */
- public static function getInstance()
- {
- if (!self::$instance) {
- self::$instance = new self();
- }
-
- return self::$instance;
- }
-
- /**
- * @param array $mappings Array mapping request.name and response.name to location visitor classes. Leave null to
- * use the default values.
- */
- public function __construct(array $mappings = null)
- {
- $this->mappings = $mappings === null ? self::$defaultMappings : $mappings;
- }
-
- /**
- * Get an instance of a request visitor by location name
- *
- * @param string $visitor Visitor name
- *
- * @return RequestVisitorInterface
- */
- public function getRequestVisitor($visitor)
- {
- return $this->getKey('request.' . $visitor);
- }
-
- /**
- * Get an instance of a response visitor by location name
- *
- * @param string $visitor Visitor name
- *
- * @return ResponseVisitorInterface
- */
- public function getResponseVisitor($visitor)
- {
- return $this->getKey('response.' . $visitor);
- }
-
- /**
- * Add a response visitor to the factory by name
- *
- * @param string $name Name of the visitor
- * @param RequestVisitorInterface $visitor Visitor to add
- *
- * @return self
- */
- public function addRequestVisitor($name, RequestVisitorInterface $visitor)
- {
- $this->cache['request.' . $name] = $visitor;
-
- return $this;
- }
-
- /**
- * Add a response visitor to the factory by name
- *
- * @param string $name Name of the visitor
- * @param ResponseVisitorInterface $visitor Visitor to add
- *
- * @return self
- */
- public function addResponseVisitor($name, ResponseVisitorInterface $visitor)
- {
- $this->cache['response.' . $name] = $visitor;
-
- return $this;
- }
-
- /**
- * Get a visitor by key value name
- *
- * @param string $key Key name to retrieve
- *
- * @return mixed
- * @throws InvalidArgumentException
- */
- private function getKey($key)
- {
- if (!isset($this->cache[$key])) {
- if (!isset($this->mappings[$key])) {
- list($type, $name) = explode('.', $key);
- throw new InvalidArgumentException("No {$type} visitor has been mapped for {$name}");
- }
- $this->cache[$key] = new $this->mappings[$key];
- }
-
- return $this->cache[$key];
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationCommand.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationCommand.php
deleted file mode 100644
index 0748b5af071..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationCommand.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-/**
- * A command that creates requests based on {@see Guzzle\Service\Description\OperationInterface} objects, and if the
- * matching operation uses a service description model in the responseClass attribute, then this command will marshal
- * the response into an associative array based on the JSON schema of the model.
- */
-class OperationCommand extends AbstractCommand
-{
- /** @var RequestSerializerInterface */
- protected $requestSerializer;
-
- /** @var ResponseParserInterface Response parser */
- protected $responseParser;
-
- /**
- * Set the response parser used with the command
- *
- * @param ResponseParserInterface $parser Response parser
- *
- * @return self
- */
- public function setResponseParser(ResponseParserInterface $parser)
- {
- $this->responseParser = $parser;
-
- return $this;
- }
-
- /**
- * Set the request serializer used with the command
- *
- * @param RequestSerializerInterface $serializer Request serializer
- *
- * @return self
- */
- public function setRequestSerializer(RequestSerializerInterface $serializer)
- {
- $this->requestSerializer = $serializer;
-
- return $this;
- }
-
- /**
- * Get the request serializer used with the command
- *
- * @return RequestSerializerInterface
- */
- public function getRequestSerializer()
- {
- if (!$this->requestSerializer) {
- // Use the default request serializer if none was found
- $this->requestSerializer = DefaultRequestSerializer::getInstance();
- }
-
- return $this->requestSerializer;
- }
-
- /**
- * Get the response parser used for the operation
- *
- * @return ResponseParserInterface
- */
- public function getResponseParser()
- {
- if (!$this->responseParser) {
- // Use the default response parser if none was found
- $this->responseParser = OperationResponseParser::getInstance();
- }
-
- return $this->responseParser;
- }
-
- protected function build()
- {
- // Prepare and serialize the request
- $this->request = $this->getRequestSerializer()->prepare($this);
- }
-
- protected function process()
- {
- // Do not process the response if 'command.response_processing' is set to 'raw'
- $this->result = $this[self::RESPONSE_PROCESSING] == self::TYPE_RAW
- ? $this->request->getResponse()
- : $this->getResponseParser()->parse($this);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationResponseParser.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationResponseParser.php
deleted file mode 100644
index ca00bc06255..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/OperationResponseParser.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Http\Message\Response;
-use Guzzle\Service\Command\LocationVisitor\VisitorFlyweight;
-use Guzzle\Service\Command\LocationVisitor\Response\ResponseVisitorInterface;
-use Guzzle\Service\Description\Parameter;
-use Guzzle\Service\Description\OperationInterface;
-use Guzzle\Service\Description\Operation;
-use Guzzle\Service\Exception\ResponseClassException;
-use Guzzle\Service\Resource\Model;
-
-/**
- * Response parser that attempts to marshal responses into an associative array based on models in a service description
- */
-class OperationResponseParser extends DefaultResponseParser
-{
- /** @var VisitorFlyweight $factory Visitor factory */
- protected $factory;
-
- /** @var self */
- protected static $instance;
-
- /** @var bool */
- private $schemaInModels;
-
- /**
- * @return self
- * @codeCoverageIgnore
- */
- public static function getInstance()
- {
- if (!static::$instance) {
- static::$instance = new static(VisitorFlyweight::getInstance());
- }
-
- return static::$instance;
- }
-
- /**
- * @param VisitorFlyweight $factory Factory to use when creating visitors
- * @param bool $schemaInModels Set to true to inject schemas into models
- */
- public function __construct(VisitorFlyweight $factory, $schemaInModels = false)
- {
- $this->factory = $factory;
- $this->schemaInModels = $schemaInModels;
- }
-
- /**
- * Add a location visitor to the command
- *
- * @param string $location Location to associate with the visitor
- * @param ResponseVisitorInterface $visitor Visitor to attach
- *
- * @return self
- */
- public function addVisitor($location, ResponseVisitorInterface $visitor)
- {
- $this->factory->addResponseVisitor($location, $visitor);
-
- return $this;
- }
-
- protected function handleParsing(CommandInterface $command, Response $response, $contentType)
- {
- $operation = $command->getOperation();
- $type = $operation->getResponseType();
- $model = null;
-
- if ($type == OperationInterface::TYPE_MODEL) {
- $model = $operation->getServiceDescription()->getModel($operation->getResponseClass());
- } elseif ($type == OperationInterface::TYPE_CLASS) {
- return $this->parseClass($command);
- }
-
- if (!$model) {
- // Return basic processing if the responseType is not model or the model cannot be found
- return parent::handleParsing($command, $response, $contentType);
- } elseif ($command[AbstractCommand::RESPONSE_PROCESSING] != AbstractCommand::TYPE_MODEL) {
- // Returns a model with no visiting if the command response processing is not model
- return new Model(parent::handleParsing($command, $response, $contentType));
- } else {
- // Only inject the schema into the model if "schemaInModel" is true
- return new Model($this->visitResult($model, $command, $response), $this->schemaInModels ? $model : null);
- }
- }
-
- /**
- * Parse a class object
- *
- * @param CommandInterface $command Command to parse into an object
- *
- * @return mixed
- * @throws ResponseClassException
- */
- protected function parseClass(CommandInterface $command)
- {
- // Emit the operation.parse_class event. If a listener injects a 'result' property, then that will be the result
- $event = new CreateResponseClassEvent(array('command' => $command));
- $command->getClient()->getEventDispatcher()->dispatch('command.parse_response', $event);
- if ($result = $event->getResult()) {
- return $result;
- }
-
- $className = $command->getOperation()->getResponseClass();
- if (!method_exists($className, 'fromCommand')) {
- throw new ResponseClassException("{$className} must exist and implement a static fromCommand() method");
- }
-
- return $className::fromCommand($command);
- }
-
- /**
- * Perform transformations on the result array
- *
- * @param Parameter $model Model that defines the structure
- * @param CommandInterface $command Command that performed the operation
- * @param Response $response Response received
- *
- * @return array Returns the array of result data
- */
- protected function visitResult(Parameter $model, CommandInterface $command, Response $response)
- {
- $foundVisitors = $result = $knownProps = array();
- $props = $model->getProperties();
-
- foreach ($props as $schema) {
- if ($location = $schema->getLocation()) {
- // Trigger the before method on the first found visitor of this type
- if (!isset($foundVisitors[$location])) {
- $foundVisitors[$location] = $this->factory->getResponseVisitor($location);
- $foundVisitors[$location]->before($command, $result);
- }
- }
- }
-
- // Visit additional properties when it is an actual schema
- if (($additional = $model->getAdditionalProperties()) instanceof Parameter) {
- $this->visitAdditionalProperties($model, $command, $response, $additional, $result, $foundVisitors);
- }
-
- // Apply the parameter value with the location visitor
- foreach ($props as $schema) {
- $knownProps[$schema->getName()] = 1;
- if ($location = $schema->getLocation()) {
- $foundVisitors[$location]->visit($command, $response, $schema, $result);
- }
- }
-
- // Remove any unknown and potentially unsafe top-level properties
- if ($additional === false) {
- $result = array_intersect_key($result, $knownProps);
- }
-
- // Call the after() method of each found visitor
- foreach ($foundVisitors as $visitor) {
- $visitor->after($command);
- }
-
- return $result;
- }
-
- protected function visitAdditionalProperties(
- Parameter $model,
- CommandInterface $command,
- Response $response,
- Parameter $additional,
- &$result,
- array &$foundVisitors
- ) {
- // Only visit when a location is specified
- if ($location = $additional->getLocation()) {
- if (!isset($foundVisitors[$location])) {
- $foundVisitors[$location] = $this->factory->getResponseVisitor($location);
- $foundVisitors[$location]->before($command, $result);
- }
- // Only traverse if an array was parsed from the before() visitors
- if (is_array($result)) {
- // Find each additional property
- foreach (array_keys($result) as $key) {
- // Check if the model actually knows this property. If so, then it is not additional
- if (!$model->getProperty($key)) {
- // Set the name to the key so that we can parse it with each visitor
- $additional->setName($key);
- $foundVisitors[$location]->visit($command, $response, $additional, $result);
- }
- }
- // Reset the additionalProperties name to null
- $additional->setName(null);
- }
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/RequestSerializerInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/RequestSerializerInterface.php
deleted file mode 100644
index 60b9334d450..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/RequestSerializerInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Translates command options and operation parameters into a request object
- */
-interface RequestSerializerInterface
-{
- /**
- * Create a request for a command
- *
- * @param CommandInterface $command Command that will own the request
- *
- * @return RequestInterface
- */
- public function prepare(CommandInterface $command);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseClassInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseClassInterface.php
deleted file mode 100644
index 325dd08dff0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseClassInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-/**
- * Interface used to accept a completed OperationCommand and parse the result into a specific response type
- */
-interface ResponseClassInterface
-{
- /**
- * Create a response model object from a completed command
- *
- * @param OperationCommand $command That serialized the request
- *
- * @return self
- */
- public static function fromCommand(OperationCommand $command);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseParserInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseParserInterface.php
deleted file mode 100644
index 015f0bb9860..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Command/ResponseParserInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Command;
-
-/**
- * Parses the HTTP response of a command and sets the appropriate result on a command object
- */
-interface ResponseParserInterface
-{
- /**
- * Parse the HTTP response received by the command and update the command's result contents
- *
- * @param CommandInterface $command Command to parse and update
- *
- * @return mixed Returns the result to set on the command
- */
- public function parse(CommandInterface $command);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ConfigLoaderInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ConfigLoaderInterface.php
deleted file mode 100644
index 304100dcf9f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/ConfigLoaderInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Guzzle\Service;
-
-/**
- * Interface used for loading configuration data (service descriptions, service builder configs, etc)
- *
- * If a loaded configuration data sets includes a top level key containing an 'includes' section, then the data in the
- * file will extend the merged result of all of the included config files.
- */
-interface ConfigLoaderInterface
-{
- /**
- * Loads configuration data and returns an array of the loaded result
- *
- * @param mixed $config Data to load (filename or array of data)
- * @param array $options Array of options to use when loading
- *
- * @return mixed
- */
- public function load($config, array $options = array());
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Operation.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Operation.php
deleted file mode 100644
index b2890be53f1..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Operation.php
+++ /dev/null
@@ -1,547 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * Data object holding the information of an API command
- */
-class Operation implements OperationInterface
-{
- /** @var string Default command class to use when none is specified */
- const DEFAULT_COMMAND_CLASS = 'Guzzle\\Service\\Command\\OperationCommand';
-
- /** @var array Hashmap of properties that can be specified. Represented as a hash to speed up constructor. */
- protected static $properties = array(
- 'name' => true, 'httpMethod' => true, 'uri' => true, 'class' => true, 'responseClass' => true,
- 'responseType' => true, 'responseNotes' => true, 'notes' => true, 'summary' => true, 'documentationUrl' => true,
- 'deprecated' => true, 'data' => true, 'parameters' => true, 'additionalParameters' => true,
- 'errorResponses' => true
- );
-
- /** @var array Parameters */
- protected $parameters = array();
-
- /** @var Parameter Additional parameters schema */
- protected $additionalParameters;
-
- /** @var string Name of the command */
- protected $name;
-
- /** @var string HTTP method */
- protected $httpMethod;
-
- /** @var string This is a short summary of what the operation does */
- protected $summary;
-
- /** @var string A longer text field to explain the behavior of the operation. */
- protected $notes;
-
- /** @var string Reference URL providing more information about the operation */
- protected $documentationUrl;
-
- /** @var string HTTP URI of the command */
- protected $uri;
-
- /** @var string Class of the command object */
- protected $class;
-
- /** @var string This is what is returned from the method */
- protected $responseClass;
-
- /** @var string Type information about the response */
- protected $responseType;
-
- /** @var string Information about the response returned by the operation */
- protected $responseNotes;
-
- /** @var bool Whether or not the command is deprecated */
- protected $deprecated;
-
- /** @var array Array of errors that could occur when running the command */
- protected $errorResponses;
-
- /** @var ServiceDescriptionInterface */
- protected $description;
-
- /** @var array Extra operation information */
- protected $data;
-
- /**
- * Builds an Operation object using an array of configuration data:
- * - name: (string) Name of the command
- * - httpMethod: (string) HTTP method of the operation
- * - uri: (string) URI template that can create a relative or absolute URL
- * - class: (string) Concrete class that implements this command
- * - parameters: (array) Associative array of parameters for the command. {@see Parameter} for information.
- * - summary: (string) This is a short summary of what the operation does
- * - notes: (string) A longer text field to explain the behavior of the operation.
- * - documentationUrl: (string) Reference URL providing more information about the operation
- * - responseClass: (string) This is what is returned from the method. Can be a primitive, PSR-0 compliant
- * class name, or model.
- * - responseNotes: (string) Information about the response returned by the operation
- * - responseType: (string) One of 'primitive', 'class', 'model', or 'documentation'. If not specified, this
- * value will be automatically inferred based on whether or not there is a model matching the
- * name, if a matching PSR-0 compliant class name is found, or set to 'primitive' by default.
- * - deprecated: (bool) Set to true if this is a deprecated command
- * - errorResponses: (array) Errors that could occur when executing the command. Array of hashes, each with a
- * 'code' (the HTTP response code), 'phrase' (response reason phrase or description of the
- * error), and 'class' (a custom exception class that would be thrown if the error is
- * encountered).
- * - data: (array) Any extra data that might be used to help build or serialize the operation
- * - additionalParameters: (null|array) Parameter schema to use when an option is passed to the operation that is
- * not in the schema
- *
- * @param array $config Array of configuration data
- * @param ServiceDescriptionInterface $description Service description used to resolve models if $ref tags are found
- */
- public function __construct(array $config = array(), ServiceDescriptionInterface $description = null)
- {
- $this->description = $description;
-
- // Get the intersection of the available properties and properties set on the operation
- foreach (array_intersect_key($config, self::$properties) as $key => $value) {
- $this->{$key} = $value;
- }
-
- $this->class = $this->class ?: self::DEFAULT_COMMAND_CLASS;
- $this->deprecated = (bool) $this->deprecated;
- $this->errorResponses = $this->errorResponses ?: array();
- $this->data = $this->data ?: array();
-
- if (!$this->responseClass) {
- $this->responseClass = 'array';
- $this->responseType = 'primitive';
- } elseif ($this->responseType) {
- // Set the response type to perform validation
- $this->setResponseType($this->responseType);
- } else {
- // A response class was set and no response type was set, so guess what the type is
- $this->inferResponseType();
- }
-
- // Parameters need special handling when adding
- if ($this->parameters) {
- foreach ($this->parameters as $name => $param) {
- if ($param instanceof Parameter) {
- $param->setName($name)->setParent($this);
- } elseif (is_array($param)) {
- $param['name'] = $name;
- $this->addParam(new Parameter($param, $this->description));
- }
- }
- }
-
- if ($this->additionalParameters) {
- if ($this->additionalParameters instanceof Parameter) {
- $this->additionalParameters->setParent($this);
- } elseif (is_array($this->additionalParameters)) {
- $this->setadditionalParameters(new Parameter($this->additionalParameters, $this->description));
- }
- }
- }
-
- public function toArray()
- {
- $result = array();
- // Grab valid properties and filter out values that weren't set
- foreach (array_keys(self::$properties) as $check) {
- if ($value = $this->{$check}) {
- $result[$check] = $value;
- }
- }
- // Remove the name property
- unset($result['name']);
- // Parameters need to be converted to arrays
- $result['parameters'] = array();
- foreach ($this->parameters as $key => $param) {
- $result['parameters'][$key] = $param->toArray();
- }
- // Additional parameters need to be cast to an array
- if ($this->additionalParameters instanceof Parameter) {
- $result['additionalParameters'] = $this->additionalParameters->toArray();
- }
-
- return $result;
- }
-
- public function getServiceDescription()
- {
- return $this->description;
- }
-
- public function setServiceDescription(ServiceDescriptionInterface $description)
- {
- $this->description = $description;
-
- return $this;
- }
-
- public function getParams()
- {
- return $this->parameters;
- }
-
- public function getParamNames()
- {
- return array_keys($this->parameters);
- }
-
- public function hasParam($name)
- {
- return isset($this->parameters[$name]);
- }
-
- public function getParam($param)
- {
- return isset($this->parameters[$param]) ? $this->parameters[$param] : null;
- }
-
- /**
- * Add a parameter to the command
- *
- * @param Parameter $param Parameter to add
- *
- * @return self
- */
- public function addParam(Parameter $param)
- {
- $this->parameters[$param->getName()] = $param;
- $param->setParent($this);
-
- return $this;
- }
-
- /**
- * Remove a parameter from the command
- *
- * @param string $name Name of the parameter to remove
- *
- * @return self
- */
- public function removeParam($name)
- {
- unset($this->parameters[$name]);
-
- return $this;
- }
-
- public function getHttpMethod()
- {
- return $this->httpMethod;
- }
-
- /**
- * Set the HTTP method of the command
- *
- * @param string $httpMethod Method to set
- *
- * @return self
- */
- public function setHttpMethod($httpMethod)
- {
- $this->httpMethod = $httpMethod;
-
- return $this;
- }
-
- public function getClass()
- {
- return $this->class;
- }
-
- /**
- * Set the concrete class of the command
- *
- * @param string $className Concrete class name
- *
- * @return self
- */
- public function setClass($className)
- {
- $this->class = $className;
-
- return $this;
- }
-
- public function getName()
- {
- return $this->name;
- }
-
- /**
- * Set the name of the command
- *
- * @param string $name Name of the command
- *
- * @return self
- */
- public function setName($name)
- {
- $this->name = $name;
-
- return $this;
- }
-
- public function getSummary()
- {
- return $this->summary;
- }
-
- /**
- * Set a short summary of what the operation does
- *
- * @param string $summary Short summary of the operation
- *
- * @return self
- */
- public function setSummary($summary)
- {
- $this->summary = $summary;
-
- return $this;
- }
-
- public function getNotes()
- {
- return $this->notes;
- }
-
- /**
- * Set a longer text field to explain the behavior of the operation.
- *
- * @param string $notes Notes on the operation
- *
- * @return self
- */
- public function setNotes($notes)
- {
- $this->notes = $notes;
-
- return $this;
- }
-
- public function getDocumentationUrl()
- {
- return $this->documentationUrl;
- }
-
- /**
- * Set the URL pointing to additional documentation on the command
- *
- * @param string $docUrl Documentation URL
- *
- * @return self
- */
- public function setDocumentationUrl($docUrl)
- {
- $this->documentationUrl = $docUrl;
-
- return $this;
- }
-
- public function getResponseClass()
- {
- return $this->responseClass;
- }
-
- /**
- * Set what is returned from the method. Can be a primitive, class name, or model. For example: 'array',
- * 'Guzzle\\Foo\\Baz', or 'MyModelName' (to reference a model by ID).
- *
- * @param string $responseClass Type of response
- *
- * @return self
- */
- public function setResponseClass($responseClass)
- {
- $this->responseClass = $responseClass;
- $this->inferResponseType();
-
- return $this;
- }
-
- public function getResponseType()
- {
- return $this->responseType;
- }
-
- /**
- * Set qualifying information about the responseClass. One of 'primitive', 'class', 'model', or 'documentation'
- *
- * @param string $responseType Response type information
- *
- * @return self
- * @throws InvalidArgumentException
- */
- public function setResponseType($responseType)
- {
- static $types = array(
- self::TYPE_PRIMITIVE => true,
- self::TYPE_CLASS => true,
- self::TYPE_MODEL => true,
- self::TYPE_DOCUMENTATION => true
- );
- if (!isset($types[$responseType])) {
- throw new InvalidArgumentException('responseType must be one of ' . implode(', ', array_keys($types)));
- }
-
- $this->responseType = $responseType;
-
- return $this;
- }
-
- public function getResponseNotes()
- {
- return $this->responseNotes;
- }
-
- /**
- * Set notes about the response of the operation
- *
- * @param string $notes Response notes
- *
- * @return self
- */
- public function setResponseNotes($notes)
- {
- $this->responseNotes = $notes;
-
- return $this;
- }
-
- public function getDeprecated()
- {
- return $this->deprecated;
- }
-
- /**
- * Set whether or not the command is deprecated
- *
- * @param bool $isDeprecated Set to true to mark as deprecated
- *
- * @return self
- */
- public function setDeprecated($isDeprecated)
- {
- $this->deprecated = $isDeprecated;
-
- return $this;
- }
-
- public function getUri()
- {
- return $this->uri;
- }
-
- /**
- * Set the URI template of the command
- *
- * @param string $uri URI template to set
- *
- * @return self
- */
- public function setUri($uri)
- {
- $this->uri = $uri;
-
- return $this;
- }
-
- public function getErrorResponses()
- {
- return $this->errorResponses;
- }
-
- /**
- * Add an error to the command
- *
- * @param string $code HTTP response code
- * @param string $reason HTTP response reason phrase or information about the error
- * @param string $class Exception class associated with the error
- *
- * @return self
- */
- public function addErrorResponse($code, $reason, $class)
- {
- $this->errorResponses[] = array('code' => $code, 'reason' => $reason, 'class' => $class);
-
- return $this;
- }
-
- /**
- * Set all of the error responses of the operation
- *
- * @param array $errorResponses Hash of error name to a hash containing a code, reason, class
- *
- * @return self
- */
- public function setErrorResponses(array $errorResponses)
- {
- $this->errorResponses = $errorResponses;
-
- return $this;
- }
-
- public function getData($name)
- {
- return isset($this->data[$name]) ? $this->data[$name] : null;
- }
-
- /**
- * Set a particular data point on the operation
- *
- * @param string $name Name of the data value
- * @param mixed $value Value to set
- *
- * @return self
- */
- public function setData($name, $value)
- {
- $this->data[$name] = $value;
-
- return $this;
- }
-
- /**
- * Get the additionalParameters of the operation
- *
- * @return Parameter|null
- */
- public function getAdditionalParameters()
- {
- return $this->additionalParameters;
- }
-
- /**
- * Set the additionalParameters of the operation
- *
- * @param Parameter|null $parameter Parameter to set
- *
- * @return self
- */
- public function setAdditionalParameters($parameter)
- {
- if ($this->additionalParameters = $parameter) {
- $this->additionalParameters->setParent($this);
- }
-
- return $this;
- }
-
- /**
- * Infer the response type from the responseClass value
- */
- protected function inferResponseType()
- {
- static $primitives = array('array' => 1, 'boolean' => 1, 'string' => 1, 'integer' => 1, '' => 1);
- if (isset($primitives[$this->responseClass])) {
- $this->responseType = self::TYPE_PRIMITIVE;
- } elseif ($this->description && $this->description->hasModel($this->responseClass)) {
- $this->responseType = self::TYPE_MODEL;
- } else {
- $this->responseType = self::TYPE_CLASS;
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/OperationInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/OperationInterface.php
deleted file mode 100644
index 4de41bd67ea..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/OperationInterface.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-use Guzzle\Common\ToArrayInterface;
-
-/**
- * Interface defining data objects that hold the information of an API operation
- */
-interface OperationInterface extends ToArrayInterface
-{
- const TYPE_PRIMITIVE = 'primitive';
- const TYPE_CLASS = 'class';
- const TYPE_DOCUMENTATION = 'documentation';
- const TYPE_MODEL = 'model';
-
- /**
- * Get the service description that the operation belongs to
- *
- * @return ServiceDescriptionInterface|null
- */
- public function getServiceDescription();
-
- /**
- * Set the service description that the operation belongs to
- *
- * @param ServiceDescriptionInterface $description Service description
- *
- * @return self
- */
- public function setServiceDescription(ServiceDescriptionInterface $description);
-
- /**
- * Get the params of the operation
- *
- * @return array
- */
- public function getParams();
-
- /**
- * Returns an array of parameter names
- *
- * @return array
- */
- public function getParamNames();
-
- /**
- * Check if the operation has a specific parameter by name
- *
- * @param string $name Name of the param
- *
- * @return bool
- */
- public function hasParam($name);
-
- /**
- * Get a single parameter of the operation
- *
- * @param string $param Parameter to retrieve by name
- *
- * @return Parameter|null
- */
- public function getParam($param);
-
- /**
- * Get the HTTP method of the operation
- *
- * @return string|null
- */
- public function getHttpMethod();
-
- /**
- * Get the concrete operation class that implements this operation
- *
- * @return string
- */
- public function getClass();
-
- /**
- * Get the name of the operation
- *
- * @return string|null
- */
- public function getName();
-
- /**
- * Get a short summary of what the operation does
- *
- * @return string|null
- */
- public function getSummary();
-
- /**
- * Get a longer text field to explain the behavior of the operation
- *
- * @return string|null
- */
- public function getNotes();
-
- /**
- * Get the documentation URL of the operation
- *
- * @return string|null
- */
- public function getDocumentationUrl();
-
- /**
- * Get what is returned from the method. Can be a primitive, class name, or model. For example, the responseClass
- * could be 'array', which would inherently use a responseType of 'primitive'. Using a class name would set a
- * responseType of 'class'. Specifying a model by ID will use a responseType of 'model'.
- *
- * @return string|null
- */
- public function getResponseClass();
-
- /**
- * Get information about how the response is unmarshalled: One of 'primitive', 'class', 'model', or 'documentation'
- *
- * @return string
- */
- public function getResponseType();
-
- /**
- * Get notes about the response of the operation
- *
- * @return string|null
- */
- public function getResponseNotes();
-
- /**
- * Get whether or not the operation is deprecated
- *
- * @return bool
- */
- public function getDeprecated();
-
- /**
- * Get the URI that will be merged into the generated request
- *
- * @return string
- */
- public function getUri();
-
- /**
- * Get the errors that could be encountered when executing the operation
- *
- * @return array
- */
- public function getErrorResponses();
-
- /**
- * Get extra data from the operation
- *
- * @param string $name Name of the data point to retrieve
- *
- * @return mixed|null
- */
- public function getData($name);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Parameter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Parameter.php
deleted file mode 100644
index 9ed3c30bf2f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/Parameter.php
+++ /dev/null
@@ -1,925 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * API parameter object used with service descriptions
- */
-class Parameter
-{
- protected $name;
- protected $description;
- protected $serviceDescription;
- protected $type;
- protected $required;
- protected $enum;
- protected $pattern;
- protected $minimum;
- protected $maximum;
- protected $minLength;
- protected $maxLength;
- protected $minItems;
- protected $maxItems;
- protected $default;
- protected $static;
- protected $instanceOf;
- protected $filters;
- protected $location;
- protected $sentAs;
- protected $data;
- protected $properties = array();
- protected $additionalProperties;
- protected $items;
- protected $parent;
- protected $ref;
- protected $format;
- protected $propertiesCache = null;
-
- /**
- * Create a new Parameter using an associative array of data. The array can contain the following information:
- * - name: (string) Unique name of the parameter
- * - type: (string|array) Type of variable (string, number, integer, boolean, object, array, numeric,
- * null, any). Types are using for validation and determining the structure of a parameter. You
- * can use a union type by providing an array of simple types. If one of the union types matches
- * the provided value, then the value is valid.
- * - instanceOf: (string) When the type is an object, you can specify the class that the object must implement
- * - required: (bool) Whether or not the parameter is required
- * - default: (mixed) Default value to use if no value is supplied
- * - static: (bool) Set to true to specify that the parameter value cannot be changed from the default
- * - description: (string) Documentation of the parameter
- * - location: (string) The location of a request used to apply a parameter. Custom locations can be registered
- * with a command, but the defaults are uri, query, header, body, json, xml, postField, postFile.
- * - sentAs: (string) Specifies how the data being modeled is sent over the wire. For example, you may wish
- * to include certain headers in a response model that have a normalized casing of FooBar, but the
- * actual header is x-foo-bar. In this case, sentAs would be set to x-foo-bar.
- * - filters: (array) Array of static method names to to run a parameter value through. Each value in the
- * array must be a string containing the full class path to a static method or an array of complex
- * filter information. You can specify static methods of classes using the full namespace class
- * name followed by '::' (e.g. Foo\Bar::baz()). Some filters require arguments in order to properly
- * filter a value. For complex filters, use a hash containing a 'method' key pointing to a static
- * method, and an 'args' key containing an array of positional arguments to pass to the method.
- * Arguments can contain keywords that are replaced when filtering a value: '@value' is replaced
- * with the value being validated, '@api' is replaced with the Parameter object.
- * - properties: When the type is an object, you can specify nested parameters
- * - additionalProperties: (array) This attribute defines a schema for all properties that are not explicitly
- * defined in an object type definition. If specified, the value MUST be a schema or a boolean. If
- * false is provided, no additional properties are allowed beyond the properties defined in the
- * schema. The default value is an empty schema which allows any value for additional properties.
- * - items: This attribute defines the allowed items in an instance array, and MUST be a schema or an array
- * of schemas. The default value is an empty schema which allows any value for items in the
- * instance array.
- * When this attribute value is a schema and the instance value is an array, then all the items
- * in the array MUST be valid according to the schema.
- * - pattern: When the type is a string, you can specify the regex pattern that a value must match
- * - enum: When the type is a string, you can specify a list of acceptable values
- * - minItems: (int) Minimum number of items allowed in an array
- * - maxItems: (int) Maximum number of items allowed in an array
- * - minLength: (int) Minimum length of a string
- * - maxLength: (int) Maximum length of a string
- * - minimum: (int) Minimum value of an integer
- * - maximum: (int) Maximum value of an integer
- * - data: (array) Any additional custom data to use when serializing, validating, etc
- * - format: (string) Format used to coax a value into the correct format when serializing or unserializing.
- * You may specify either an array of filters OR a format, but not both.
- * Supported values: date-time, date, time, timestamp, date-time-http
- * - $ref: (string) String referencing a service description model. The parameter is replaced by the
- * schema contained in the model.
- *
- * @param array $data Array of data as seen in service descriptions
- * @param ServiceDescriptionInterface $description Service description used to resolve models if $ref tags are found
- *
- * @throws InvalidArgumentException
- */
- public function __construct(array $data = array(), ServiceDescriptionInterface $description = null)
- {
- if ($description) {
- if (isset($data['$ref'])) {
- if ($model = $description->getModel($data['$ref'])) {
- $data = $model->toArray() + $data;
- }
- } elseif (isset($data['extends'])) {
- // If this parameter extends from another parameter then start with the actual data
- // union in the parent's data (e.g. actual supersedes parent)
- if ($extends = $description->getModel($data['extends'])) {
- $data += $extends->toArray();
- }
- }
- }
-
- // Pull configuration data into the parameter
- foreach ($data as $key => $value) {
- $this->{$key} = $value;
- }
-
- $this->serviceDescription = $description;
- $this->required = (bool) $this->required;
- $this->data = (array) $this->data;
-
- if ($this->filters) {
- $this->setFilters((array) $this->filters);
- }
-
- if ($this->type == 'object' && $this->additionalProperties === null) {
- $this->additionalProperties = true;
- }
- }
-
- /**
- * Convert the object to an array
- *
- * @return array
- */
- public function toArray()
- {
- static $checks = array('required', 'description', 'static', 'type', 'format', 'instanceOf', 'location', 'sentAs',
- 'pattern', 'minimum', 'maximum', 'minItems', 'maxItems', 'minLength', 'maxLength', 'data', 'enum',
- 'filters');
-
- $result = array();
-
- // Anything that is in the `Items` attribute of an array *must* include it's name if available
- if ($this->parent instanceof self && $this->parent->getType() == 'array' && isset($this->name)) {
- $result['name'] = $this->name;
- }
-
- foreach ($checks as $c) {
- if ($value = $this->{$c}) {
- $result[$c] = $value;
- }
- }
-
- if ($this->default !== null) {
- $result['default'] = $this->default;
- }
-
- if ($this->items !== null) {
- $result['items'] = $this->getItems()->toArray();
- }
-
- if ($this->additionalProperties !== null) {
- $result['additionalProperties'] = $this->getAdditionalProperties();
- if ($result['additionalProperties'] instanceof self) {
- $result['additionalProperties'] = $result['additionalProperties']->toArray();
- }
- }
-
- if ($this->type == 'object' && $this->properties) {
- $result['properties'] = array();
- foreach ($this->getProperties() as $name => $property) {
- $result['properties'][$name] = $property->toArray();
- }
- }
-
- return $result;
- }
-
- /**
- * Get the default or static value of the command based on a value
- *
- * @param string $value Value that is currently set
- *
- * @return mixed Returns the value, a static value if one is present, or a default value
- */
- public function getValue($value)
- {
- if ($this->static || ($this->default !== null && $value === null)) {
- return $this->default;
- }
-
- return $value;
- }
-
- /**
- * Run a value through the filters OR format attribute associated with the parameter
- *
- * @param mixed $value Value to filter
- *
- * @return mixed Returns the filtered value
- */
- public function filter($value)
- {
- // Formats are applied exclusively and supersed filters
- if ($this->format) {
- return SchemaFormatter::format($this->format, $value);
- }
-
- // Convert Boolean values
- if ($this->type == 'boolean' && !is_bool($value)) {
- $value = filter_var($value, FILTER_VALIDATE_BOOLEAN);
- }
-
- // Apply filters to the value
- if ($this->filters) {
- foreach ($this->filters as $filter) {
- if (is_array($filter)) {
- // Convert complex filters that hold value place holders
- foreach ($filter['args'] as &$data) {
- if ($data == '@value') {
- $data = $value;
- } elseif ($data == '@api') {
- $data = $this;
- }
- }
- $value = call_user_func_array($filter['method'], $filter['args']);
- } else {
- $value = call_user_func($filter, $value);
- }
- }
- }
-
- return $value;
- }
-
- /**
- * Get the name of the parameter
- *
- * @return string
- */
- public function getName()
- {
- return $this->name;
- }
-
- /**
- * Get the key of the parameter, where sentAs will supersede name if it is set
- *
- * @return string
- */
- public function getWireName()
- {
- return $this->sentAs ?: $this->name;
- }
-
- /**
- * Set the name of the parameter
- *
- * @param string $name Name to set
- *
- * @return self
- */
- public function setName($name)
- {
- $this->name = $name;
-
- return $this;
- }
-
- /**
- * Get the type(s) of the parameter
- *
- * @return string|array
- */
- public function getType()
- {
- return $this->type;
- }
-
- /**
- * Set the type(s) of the parameter
- *
- * @param string|array $type Type of parameter or array of simple types used in a union
- *
- * @return self
- */
- public function setType($type)
- {
- $this->type = $type;
-
- return $this;
- }
-
- /**
- * Get if the parameter is required
- *
- * @return bool
- */
- public function getRequired()
- {
- return $this->required;
- }
-
- /**
- * Set if the parameter is required
- *
- * @param bool $isRequired Whether or not the parameter is required
- *
- * @return self
- */
- public function setRequired($isRequired)
- {
- $this->required = (bool) $isRequired;
-
- return $this;
- }
-
- /**
- * Get the default value of the parameter
- *
- * @return string|null
- */
- public function getDefault()
- {
- return $this->default;
- }
-
- /**
- * Set the default value of the parameter
- *
- * @param string|null $default Default value to set
- *
- * @return self
- */
- public function setDefault($default)
- {
- $this->default = $default;
-
- return $this;
- }
-
- /**
- * Get the description of the parameter
- *
- * @return string|null
- */
- public function getDescription()
- {
- return $this->description;
- }
-
- /**
- * Set the description of the parameter
- *
- * @param string $description Description
- *
- * @return self
- */
- public function setDescription($description)
- {
- $this->description = $description;
-
- return $this;
- }
-
- /**
- * Get the minimum acceptable value for an integer
- *
- * @return int|null
- */
- public function getMinimum()
- {
- return $this->minimum;
- }
-
- /**
- * Set the minimum acceptable value for an integer
- *
- * @param int|null $min Minimum
- *
- * @return self
- */
- public function setMinimum($min)
- {
- $this->minimum = $min;
-
- return $this;
- }
-
- /**
- * Get the maximum acceptable value for an integer
- *
- * @return int|null
- */
- public function getMaximum()
- {
- return $this->maximum;
- }
-
- /**
- * Set the maximum acceptable value for an integer
- *
- * @param int $max Maximum
- *
- * @return self
- */
- public function setMaximum($max)
- {
- $this->maximum = $max;
-
- return $this;
- }
-
- /**
- * Get the minimum allowed length of a string value
- *
- * @return int
- */
- public function getMinLength()
- {
- return $this->minLength;
- }
-
- /**
- * Set the minimum allowed length of a string value
- *
- * @param int|null $min Minimum
- *
- * @return self
- */
- public function setMinLength($min)
- {
- $this->minLength = $min;
-
- return $this;
- }
-
- /**
- * Get the maximum allowed length of a string value
- *
- * @return int|null
- */
- public function getMaxLength()
- {
- return $this->maxLength;
- }
-
- /**
- * Set the maximum allowed length of a string value
- *
- * @param int $max Maximum length
- *
- * @return self
- */
- public function setMaxLength($max)
- {
- $this->maxLength = $max;
-
- return $this;
- }
-
- /**
- * Get the maximum allowed number of items in an array value
- *
- * @return int|null
- */
- public function getMaxItems()
- {
- return $this->maxItems;
- }
-
- /**
- * Set the maximum allowed number of items in an array value
- *
- * @param int $max Maximum
- *
- * @return self
- */
- public function setMaxItems($max)
- {
- $this->maxItems = $max;
-
- return $this;
- }
-
- /**
- * Get the minimum allowed number of items in an array value
- *
- * @return int
- */
- public function getMinItems()
- {
- return $this->minItems;
- }
-
- /**
- * Set the minimum allowed number of items in an array value
- *
- * @param int|null $min Minimum
- *
- * @return self
- */
- public function setMinItems($min)
- {
- $this->minItems = $min;
-
- return $this;
- }
-
- /**
- * Get the location of the parameter
- *
- * @return string|null
- */
- public function getLocation()
- {
- return $this->location;
- }
-
- /**
- * Set the location of the parameter
- *
- * @param string|null $location Location of the parameter
- *
- * @return self
- */
- public function setLocation($location)
- {
- $this->location = $location;
-
- return $this;
- }
-
- /**
- * Get the sentAs attribute of the parameter that used with locations to sentAs an attribute when it is being
- * applied to a location.
- *
- * @return string|null
- */
- public function getSentAs()
- {
- return $this->sentAs;
- }
-
- /**
- * Set the sentAs attribute
- *
- * @param string|null $name Name of the value as it is sent over the wire
- *
- * @return self
- */
- public function setSentAs($name)
- {
- $this->sentAs = $name;
-
- return $this;
- }
-
- /**
- * Retrieve a known property from the parameter by name or a data property by name. When not specific name value
- * is specified, all data properties will be returned.
- *
- * @param string|null $name Specify a particular property name to retrieve
- *
- * @return array|mixed|null
- */
- public function getData($name = null)
- {
- if (!$name) {
- return $this->data;
- }
-
- if (isset($this->data[$name])) {
- return $this->data[$name];
- } elseif (isset($this->{$name})) {
- return $this->{$name};
- }
-
- return null;
- }
-
- /**
- * Set the extra data properties of the parameter or set a specific extra property
- *
- * @param string|array|null $nameOrData The name of a specific extra to set or an array of extras to set
- * @param mixed|null $data When setting a specific extra property, specify the data to set for it
- *
- * @return self
- */
- public function setData($nameOrData, $data = null)
- {
- if (is_array($nameOrData)) {
- $this->data = $nameOrData;
- } else {
- $this->data[$nameOrData] = $data;
- }
-
- return $this;
- }
-
- /**
- * Get whether or not the default value can be changed
- *
- * @return mixed|null
- */
- public function getStatic()
- {
- return $this->static;
- }
-
- /**
- * Set to true if the default value cannot be changed
- *
- * @param bool $static True or false
- *
- * @return self
- */
- public function setStatic($static)
- {
- $this->static = (bool) $static;
-
- return $this;
- }
-
- /**
- * Get an array of filters used by the parameter
- *
- * @return array
- */
- public function getFilters()
- {
- return $this->filters ?: array();
- }
-
- /**
- * Set the array of filters used by the parameter
- *
- * @param array $filters Array of functions to use as filters
- *
- * @return self
- */
- public function setFilters(array $filters)
- {
- $this->filters = array();
- foreach ($filters as $filter) {
- $this->addFilter($filter);
- }
-
- return $this;
- }
-
- /**
- * Add a filter to the parameter
- *
- * @param string|array $filter Method to filter the value through
- *
- * @return self
- * @throws InvalidArgumentException
- */
- public function addFilter($filter)
- {
- if (is_array($filter)) {
- if (!isset($filter['method'])) {
- throw new InvalidArgumentException('A [method] value must be specified for each complex filter');
- }
- }
-
- if (!$this->filters) {
- $this->filters = array($filter);
- } else {
- $this->filters[] = $filter;
- }
-
- return $this;
- }
-
- /**
- * Get the parent object (an {@see OperationInterface} or {@see Parameter}
- *
- * @return OperationInterface|Parameter|null
- */
- public function getParent()
- {
- return $this->parent;
- }
-
- /**
- * Set the parent object of the parameter
- *
- * @param OperationInterface|Parameter|null $parent Parent container of the parameter
- *
- * @return self
- */
- public function setParent($parent)
- {
- $this->parent = $parent;
-
- return $this;
- }
-
- /**
- * Get the properties of the parameter
- *
- * @return array
- */
- public function getProperties()
- {
- if (!$this->propertiesCache) {
- $this->propertiesCache = array();
- foreach (array_keys($this->properties) as $name) {
- $this->propertiesCache[$name] = $this->getProperty($name);
- }
- }
-
- return $this->propertiesCache;
- }
-
- /**
- * Get a specific property from the parameter
- *
- * @param string $name Name of the property to retrieve
- *
- * @return null|Parameter
- */
- public function getProperty($name)
- {
- if (!isset($this->properties[$name])) {
- return null;
- }
-
- if (!($this->properties[$name] instanceof self)) {
- $this->properties[$name]['name'] = $name;
- $this->properties[$name] = new static($this->properties[$name], $this->serviceDescription);
- $this->properties[$name]->setParent($this);
- }
-
- return $this->properties[$name];
- }
-
- /**
- * Remove a property from the parameter
- *
- * @param string $name Name of the property to remove
- *
- * @return self
- */
- public function removeProperty($name)
- {
- unset($this->properties[$name]);
- $this->propertiesCache = null;
-
- return $this;
- }
-
- /**
- * Add a property to the parameter
- *
- * @param Parameter $property Properties to set
- *
- * @return self
- */
- public function addProperty(Parameter $property)
- {
- $this->properties[$property->getName()] = $property;
- $property->setParent($this);
- $this->propertiesCache = null;
-
- return $this;
- }
-
- /**
- * Get the additionalProperties value of the parameter
- *
- * @return bool|Parameter|null
- */
- public function getAdditionalProperties()
- {
- if (is_array($this->additionalProperties)) {
- $this->additionalProperties = new static($this->additionalProperties, $this->serviceDescription);
- $this->additionalProperties->setParent($this);
- }
-
- return $this->additionalProperties;
- }
-
- /**
- * Set the additionalProperties value of the parameter
- *
- * @param bool|Parameter|null $additional Boolean to allow any, an Parameter to specify a schema, or false to disallow
- *
- * @return self
- */
- public function setAdditionalProperties($additional)
- {
- $this->additionalProperties = $additional;
-
- return $this;
- }
-
- /**
- * Set the items data of the parameter
- *
- * @param Parameter|null $items Items to set
- *
- * @return self
- */
- public function setItems(Parameter $items = null)
- {
- if ($this->items = $items) {
- $this->items->setParent($this);
- }
-
- return $this;
- }
-
- /**
- * Get the item data of the parameter
- *
- * @return Parameter|null
- */
- public function getItems()
- {
- if (is_array($this->items)) {
- $this->items = new static($this->items, $this->serviceDescription);
- $this->items->setParent($this);
- }
-
- return $this->items;
- }
-
- /**
- * Get the class that the parameter must implement
- *
- * @return null|string
- */
- public function getInstanceOf()
- {
- return $this->instanceOf;
- }
-
- /**
- * Set the class that the parameter must be an instance of
- *
- * @param string|null $instanceOf Class or interface name
- *
- * @return self
- */
- public function setInstanceOf($instanceOf)
- {
- $this->instanceOf = $instanceOf;
-
- return $this;
- }
-
- /**
- * Get the enum of strings that are valid for the parameter
- *
- * @return array|null
- */
- public function getEnum()
- {
- return $this->enum;
- }
-
- /**
- * Set the enum of strings that are valid for the parameter
- *
- * @param array|null $enum Array of strings or null
- *
- * @return self
- */
- public function setEnum(array $enum = null)
- {
- $this->enum = $enum;
-
- return $this;
- }
-
- /**
- * Get the regex pattern that must match a value when the value is a string
- *
- * @return string
- */
- public function getPattern()
- {
- return $this->pattern;
- }
-
- /**
- * Set the regex pattern that must match a value when the value is a string
- *
- * @param string $pattern Regex pattern
- *
- * @return self
- */
- public function setPattern($pattern)
- {
- $this->pattern = $pattern;
-
- return $this;
- }
-
- /**
- * Get the format attribute of the schema
- *
- * @return string
- */
- public function getFormat()
- {
- return $this->format;
- }
-
- /**
- * Set the format attribute of the schema
- *
- * @param string $format Format to set (e.g. date, date-time, timestamp, time, date-time-http)
- *
- * @return self
- */
- public function setFormat($format)
- {
- $this->format = $format;
-
- return $this;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaFormatter.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaFormatter.php
deleted file mode 100644
index 7f47fc9d70c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaFormatter.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * JSON Schema formatter class
- */
-class SchemaFormatter
-{
- /** @var \DateTimeZone */
- protected static $utcTimeZone;
-
- /**
- * Format a value by a registered format name
- *
- * @param string $format Registered format used to format the value
- * @param mixed $value Value being formatted
- *
- * @return mixed
- */
- public static function format($format, $value)
- {
- switch ($format) {
- case 'date-time':
- return self::formatDateTime($value);
- case 'date-time-http':
- return self::formatDateTimeHttp($value);
- case 'date':
- return self::formatDate($value);
- case 'time':
- return self::formatTime($value);
- case 'timestamp':
- return self::formatTimestamp($value);
- case 'boolean-string':
- return self::formatBooleanAsString($value);
- default:
- return $value;
- }
- }
-
- /**
- * Create a ISO 8601 (YYYY-MM-DDThh:mm:ssZ) formatted date time value in UTC time
- *
- * @param string|integer|\DateTime $value Date time value
- *
- * @return string
- */
- public static function formatDateTime($value)
- {
- return self::dateFormatter($value, 'Y-m-d\TH:i:s\Z');
- }
-
- /**
- * Create an HTTP date (RFC 1123 / RFC 822) formatted UTC date-time string
- *
- * @param string|integer|\DateTime $value Date time value
- *
- * @return string
- */
- public static function formatDateTimeHttp($value)
- {
- return self::dateFormatter($value, 'D, d M Y H:i:s \G\M\T');
- }
-
- /**
- * Create a YYYY-MM-DD formatted string
- *
- * @param string|integer|\DateTime $value Date time value
- *
- * @return string
- */
- public static function formatDate($value)
- {
- return self::dateFormatter($value, 'Y-m-d');
- }
-
- /**
- * Create a hh:mm:ss formatted string
- *
- * @param string|integer|\DateTime $value Date time value
- *
- * @return string
- */
- public static function formatTime($value)
- {
- return self::dateFormatter($value, 'H:i:s');
- }
-
- /**
- * Formats a boolean value as a string
- *
- * @param string|integer|bool $value Value to convert to a boolean 'true' / 'false' value
- *
- * @return string
- */
- public static function formatBooleanAsString($value)
- {
- return filter_var($value, FILTER_VALIDATE_BOOLEAN) ? 'true' : 'false';
- }
-
- /**
- * Return a UNIX timestamp in the UTC timezone
- *
- * @param string|integer|\DateTime $value Time value
- *
- * @return int
- */
- public static function formatTimestamp($value)
- {
- return (int) self::dateFormatter($value, 'U');
- }
-
- /**
- * Get a UTC DateTimeZone object
- *
- * @return \DateTimeZone
- */
- protected static function getUtcTimeZone()
- {
- // @codeCoverageIgnoreStart
- if (!self::$utcTimeZone) {
- self::$utcTimeZone = new \DateTimeZone('UTC');
- }
- // @codeCoverageIgnoreEnd
-
- return self::$utcTimeZone;
- }
-
- /**
- * Perform the actual DateTime formatting
- *
- * @param int|string|\DateTime $dateTime Date time value
- * @param string $format Format of the result
- *
- * @return string
- * @throws InvalidArgumentException
- */
- protected static function dateFormatter($dateTime, $format)
- {
- if (is_numeric($dateTime)) {
- return gmdate($format, (int) $dateTime);
- }
-
- if (is_string($dateTime)) {
- $dateTime = new \DateTime($dateTime);
- }
-
- if ($dateTime instanceof \DateTime) {
- return $dateTime->setTimezone(self::getUtcTimeZone())->format($format);
- }
-
- throw new InvalidArgumentException('Date/Time values must be either a string, integer, or DateTime object');
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaValidator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaValidator.php
deleted file mode 100644
index b045422d4c7..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/SchemaValidator.php
+++ /dev/null
@@ -1,291 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-use Guzzle\Common\ToArrayInterface;
-
-/**
- * Default parameter validator
- */
-class SchemaValidator implements ValidatorInterface
-{
- /** @var self Cache instance of the object */
- protected static $instance;
-
- /** @var bool Whether or not integers are converted to strings when an integer is received for a string input */
- protected $castIntegerToStringType;
-
- /** @var array Errors encountered while validating */
- protected $errors;
-
- /**
- * @return self
- * @codeCoverageIgnore
- */
- public static function getInstance()
- {
- if (!self::$instance) {
- self::$instance = new self();
- }
-
- return self::$instance;
- }
-
- /**
- * @param bool $castIntegerToStringType Set to true to convert integers into strings when a required type is a
- * string and the input value is an integer. Defaults to true.
- */
- public function __construct($castIntegerToStringType = true)
- {
- $this->castIntegerToStringType = $castIntegerToStringType;
- }
-
- public function validate(Parameter $param, &$value)
- {
- $this->errors = array();
- $this->recursiveProcess($param, $value);
-
- if (empty($this->errors)) {
- return true;
- } else {
- sort($this->errors);
- return false;
- }
- }
-
- /**
- * Get the errors encountered while validating
- *
- * @return array
- */
- public function getErrors()
- {
- return $this->errors ?: array();
- }
-
- /**
- * Recursively validate a parameter
- *
- * @param Parameter $param API parameter being validated
- * @param mixed $value Value to validate and validate. The value may change during this validate.
- * @param string $path Current validation path (used for error reporting)
- * @param int $depth Current depth in the validation validate
- *
- * @return bool Returns true if valid, or false if invalid
- */
- protected function recursiveProcess(Parameter $param, &$value, $path = '', $depth = 0)
- {
- // Update the value by adding default or static values
- $value = $param->getValue($value);
-
- $required = $param->getRequired();
- // if the value is null and the parameter is not required or is static, then skip any further recursion
- if ((null === $value && !$required) || $param->getStatic()) {
- return true;
- }
-
- $type = $param->getType();
- // Attempt to limit the number of times is_array is called by tracking if the value is an array
- $valueIsArray = is_array($value);
- // If a name is set then update the path so that validation messages are more helpful
- if ($name = $param->getName()) {
- $path .= "[{$name}]";
- }
-
- if ($type == 'object') {
-
- // Objects are either associative arrays, ToArrayInterface, or some other object
- if ($param->getInstanceOf()) {
- $instance = $param->getInstanceOf();
- if (!($value instanceof $instance)) {
- $this->errors[] = "{$path} must be an instance of {$instance}";
- return false;
- }
- }
-
- // Determine whether or not this "value" has properties and should be traversed
- $traverse = $temporaryValue = false;
-
- // Convert the value to an array
- if (!$valueIsArray && $value instanceof ToArrayInterface) {
- $value = $value->toArray();
- }
-
- if ($valueIsArray) {
- // Ensure that the array is associative and not numerically indexed
- if (isset($value[0])) {
- $this->errors[] = "{$path} must be an array of properties. Got a numerically indexed array.";
- return false;
- }
- $traverse = true;
- } elseif ($value === null) {
- // Attempt to let the contents be built up by default values if possible
- $value = array();
- $temporaryValue = $valueIsArray = $traverse = true;
- }
-
- if ($traverse) {
-
- if ($properties = $param->getProperties()) {
- // if properties were found, the validate each property of the value
- foreach ($properties as $property) {
- $name = $property->getName();
- if (isset($value[$name])) {
- $this->recursiveProcess($property, $value[$name], $path, $depth + 1);
- } else {
- $current = null;
- $this->recursiveProcess($property, $current, $path, $depth + 1);
- // Only set the value if it was populated with something
- if (null !== $current) {
- $value[$name] = $current;
- }
- }
- }
- }
-
- $additional = $param->getAdditionalProperties();
- if ($additional !== true) {
- // If additional properties were found, then validate each against the additionalProperties attr.
- $keys = array_keys($value);
- // Determine the keys that were specified that were not listed in the properties of the schema
- $diff = array_diff($keys, array_keys($properties));
- if (!empty($diff)) {
- // Determine which keys are not in the properties
- if ($additional instanceOf Parameter) {
- foreach ($diff as $key) {
- $this->recursiveProcess($additional, $value[$key], "{$path}[{$key}]", $depth);
- }
- } else {
- // if additionalProperties is set to false and there are additionalProperties in the values, then fail
- foreach ($diff as $prop) {
- $this->errors[] = sprintf('%s[%s] is not an allowed property', $path, $prop);
- }
- }
- }
- }
-
- // A temporary value will be used to traverse elements that have no corresponding input value.
- // This allows nested required parameters with default values to bubble up into the input.
- // Here we check if we used a temp value and nothing bubbled up, then we need to remote the value.
- if ($temporaryValue && empty($value)) {
- $value = null;
- $valueIsArray = false;
- }
- }
-
- } elseif ($type == 'array' && $valueIsArray && $param->getItems()) {
- foreach ($value as $i => &$item) {
- // Validate each item in an array against the items attribute of the schema
- $this->recursiveProcess($param->getItems(), $item, $path . "[{$i}]", $depth + 1);
- }
- }
-
- // If the value is required and the type is not null, then there is an error if the value is not set
- if ($required && $value === null && $type != 'null') {
- $message = "{$path} is " . ($param->getType() ? ('a required ' . implode(' or ', (array) $param->getType())) : 'required');
- if ($param->getDescription()) {
- $message .= ': ' . $param->getDescription();
- }
- $this->errors[] = $message;
- return false;
- }
-
- // Validate that the type is correct. If the type is string but an integer was passed, the class can be
- // instructed to cast the integer to a string to pass validation. This is the default behavior.
- if ($type && (!$type = $this->determineType($type, $value))) {
- if ($this->castIntegerToStringType && $param->getType() == 'string' && is_integer($value)) {
- $value = (string) $value;
- } else {
- $this->errors[] = "{$path} must be of type " . implode(' or ', (array) $param->getType());
- }
- }
-
- // Perform type specific validation for strings, arrays, and integers
- if ($type == 'string') {
-
- // Strings can have enums which are a list of predefined values
- if (($enum = $param->getEnum()) && !in_array($value, $enum)) {
- $this->errors[] = "{$path} must be one of " . implode(' or ', array_map(function ($s) {
- return '"' . addslashes($s) . '"';
- }, $enum));
- }
- // Strings can have a regex pattern that the value must match
- if (($pattern = $param->getPattern()) && !preg_match($pattern, $value)) {
- $this->errors[] = "{$path} must match the following regular expression: {$pattern}";
- }
-
- $strLen = null;
- if ($min = $param->getMinLength()) {
- $strLen = strlen($value);
- if ($strLen < $min) {
- $this->errors[] = "{$path} length must be greater than or equal to {$min}";
- }
- }
- if ($max = $param->getMaxLength()) {
- if (($strLen ?: strlen($value)) > $max) {
- $this->errors[] = "{$path} length must be less than or equal to {$max}";
- }
- }
-
- } elseif ($type == 'array') {
-
- $size = null;
- if ($min = $param->getMinItems()) {
- $size = count($value);
- if ($size < $min) {
- $this->errors[] = "{$path} must contain {$min} or more elements";
- }
- }
- if ($max = $param->getMaxItems()) {
- if (($size ?: count($value)) > $max) {
- $this->errors[] = "{$path} must contain {$max} or fewer elements";
- }
- }
-
- } elseif ($type == 'integer' || $type == 'number' || $type == 'numeric') {
- if (($min = $param->getMinimum()) && $value < $min) {
- $this->errors[] = "{$path} must be greater than or equal to {$min}";
- }
- if (($max = $param->getMaximum()) && $value > $max) {
- $this->errors[] = "{$path} must be less than or equal to {$max}";
- }
- }
-
- return empty($this->errors);
- }
-
- /**
- * From the allowable types, determine the type that the variable matches
- *
- * @param string $type Parameter type
- * @param mixed $value Value to determine the type
- *
- * @return string|bool Returns the matching type on
- */
- protected function determineType($type, $value)
- {
- foreach ((array) $type as $t) {
- if ($t == 'string' && (is_string($value) || (is_object($value) && method_exists($value, '__toString')))) {
- return 'string';
- } elseif ($t == 'object' && (is_array($value) || is_object($value))) {
- return 'object';
- } elseif ($t == 'array' && is_array($value)) {
- return 'array';
- } elseif ($t == 'integer' && is_integer($value)) {
- return 'integer';
- } elseif ($t == 'boolean' && is_bool($value)) {
- return 'boolean';
- } elseif ($t == 'number' && is_numeric($value)) {
- return 'number';
- } elseif ($t == 'numeric' && is_numeric($value)) {
- return 'numeric';
- } elseif ($t == 'null' && !$value) {
- return 'null';
- } elseif ($t == 'any') {
- return 'any';
- }
- }
-
- return false;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescription.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescription.php
deleted file mode 100644
index 286e65eec5a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescription.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\ToArrayInterface;
-
-/**
- * A ServiceDescription stores service information based on a service document
- */
-class ServiceDescription implements ServiceDescriptionInterface, ToArrayInterface
-{
- /** @var array Array of {@see OperationInterface} objects */
- protected $operations = array();
-
- /** @var array Array of API models */
- protected $models = array();
-
- /** @var string Name of the API */
- protected $name;
-
- /** @var string API version */
- protected $apiVersion;
-
- /** @var string Summary of the API */
- protected $description;
-
- /** @var array Any extra API data */
- protected $extraData = array();
-
- /** @var ServiceDescriptionLoader Factory used in factory method */
- protected static $descriptionLoader;
-
- /** @var string baseUrl/basePath */
- protected $baseUrl;
-
- /**
- * {@inheritdoc}
- * @param string|array $config File to build or array of operation information
- * @param array $options Service description factory options
- *
- * @return self
- */
- public static function factory($config, array $options = array())
- {
- // @codeCoverageIgnoreStart
- if (!self::$descriptionLoader) {
- self::$descriptionLoader = new ServiceDescriptionLoader();
- }
- // @codeCoverageIgnoreEnd
-
- return self::$descriptionLoader->load($config, $options);
- }
-
- /**
- * @param array $config Array of configuration data
- */
- public function __construct(array $config = array())
- {
- $this->fromArray($config);
- }
-
- public function serialize()
- {
- return json_encode($this->toArray());
- }
-
- public function unserialize($json)
- {
- $this->operations = array();
- $this->fromArray(json_decode($json, true));
- }
-
- public function toArray()
- {
- $result = array(
- 'name' => $this->name,
- 'apiVersion' => $this->apiVersion,
- 'baseUrl' => $this->baseUrl,
- 'description' => $this->description
- ) + $this->extraData;
- $result['operations'] = array();
- foreach ($this->getOperations() as $name => $operation) {
- $result['operations'][$operation->getName() ?: $name] = $operation->toArray();
- }
- if (!empty($this->models)) {
- $result['models'] = array();
- foreach ($this->models as $id => $model) {
- $result['models'][$id] = $model instanceof Parameter ? $model->toArray(): $model;
- }
- }
-
- return array_filter($result);
- }
-
- public function getBaseUrl()
- {
- return $this->baseUrl;
- }
-
- /**
- * Set the baseUrl of the description
- *
- * @param string $baseUrl Base URL of each operation
- *
- * @return self
- */
- public function setBaseUrl($baseUrl)
- {
- $this->baseUrl = $baseUrl;
-
- return $this;
- }
-
- public function getOperations()
- {
- foreach (array_keys($this->operations) as $name) {
- $this->getOperation($name);
- }
-
- return $this->operations;
- }
-
- public function hasOperation($name)
- {
- return isset($this->operations[$name]);
- }
-
- public function getOperation($name)
- {
- // Lazily retrieve and build operations
- if (!isset($this->operations[$name])) {
- return null;
- }
-
- if (!($this->operations[$name] instanceof Operation)) {
- $this->operations[$name] = new Operation($this->operations[$name], $this);
- }
-
- return $this->operations[$name];
- }
-
- /**
- * Add a operation to the service description
- *
- * @param OperationInterface $operation Operation to add
- *
- * @return self
- */
- public function addOperation(OperationInterface $operation)
- {
- $this->operations[$operation->getName()] = $operation->setServiceDescription($this);
-
- return $this;
- }
-
- public function getModel($id)
- {
- if (!isset($this->models[$id])) {
- return null;
- }
-
- if (!($this->models[$id] instanceof Parameter)) {
- $this->models[$id] = new Parameter($this->models[$id] + array('name' => $id), $this);
- }
-
- return $this->models[$id];
- }
-
- public function getModels()
- {
- // Ensure all models are converted into parameter objects
- foreach (array_keys($this->models) as $id) {
- $this->getModel($id);
- }
-
- return $this->models;
- }
-
- public function hasModel($id)
- {
- return isset($this->models[$id]);
- }
-
- /**
- * Add a model to the service description
- *
- * @param Parameter $model Model to add
- *
- * @return self
- */
- public function addModel(Parameter $model)
- {
- $this->models[$model->getName()] = $model;
-
- return $this;
- }
-
- public function getApiVersion()
- {
- return $this->apiVersion;
- }
-
- public function getName()
- {
- return $this->name;
- }
-
- public function getDescription()
- {
- return $this->description;
- }
-
- public function getData($key)
- {
- return isset($this->extraData[$key]) ? $this->extraData[$key] : null;
- }
-
- public function setData($key, $value)
- {
- $this->extraData[$key] = $value;
-
- return $this;
- }
-
- /**
- * Initialize the state from an array
- *
- * @param array $config Configuration data
- * @throws InvalidArgumentException
- */
- protected function fromArray(array $config)
- {
- // Keep a list of default keys used in service descriptions that is later used to determine extra data keys
- static $defaultKeys = array('name', 'models', 'apiVersion', 'baseUrl', 'description');
- // Pull in the default configuration values
- foreach ($defaultKeys as $key) {
- if (isset($config[$key])) {
- $this->{$key} = $config[$key];
- }
- }
-
- // Account for the Swagger name for Guzzle's baseUrl
- if (isset($config['basePath'])) {
- $this->baseUrl = $config['basePath'];
- }
-
- // Ensure that the models and operations properties are always arrays
- $this->models = (array) $this->models;
- $this->operations = (array) $this->operations;
-
- // We want to add operations differently than adding the other properties
- $defaultKeys[] = 'operations';
-
- // Create operations for each operation
- if (isset($config['operations'])) {
- foreach ($config['operations'] as $name => $operation) {
- if (!($operation instanceof Operation) && !is_array($operation)) {
- throw new InvalidArgumentException('Invalid operation in service description: '
- . gettype($operation));
- }
- $this->operations[$name] = $operation;
- }
- }
-
- // Get all of the additional properties of the service description and store them in a data array
- foreach (array_diff(array_keys($config), $defaultKeys) as $key) {
- $this->extraData[$key] = $config[$key];
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionInterface.php
deleted file mode 100644
index 5983e586b12..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionInterface.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-/**
- * A ServiceDescription stores service information based on a service document
- */
-interface ServiceDescriptionInterface extends \Serializable
-{
- /**
- * Get the basePath/baseUrl of the description
- *
- * @return string
- */
- public function getBaseUrl();
-
- /**
- * Get the API operations of the service
- *
- * @return array Returns an array of {@see OperationInterface} objects
- */
- public function getOperations();
-
- /**
- * Check if the service has an operation by name
- *
- * @param string $name Name of the operation to check
- *
- * @return bool
- */
- public function hasOperation($name);
-
- /**
- * Get an API operation by name
- *
- * @param string $name Name of the command
- *
- * @return OperationInterface|null
- */
- public function getOperation($name);
-
- /**
- * Get a specific model from the description
- *
- * @param string $id ID of the model
- *
- * @return Parameter|null
- */
- public function getModel($id);
-
- /**
- * Get all service description models
- *
- * @return array
- */
- public function getModels();
-
- /**
- * Check if the description has a specific model by name
- *
- * @param string $id ID of the model
- *
- * @return bool
- */
- public function hasModel($id);
-
- /**
- * Get the API version of the service
- *
- * @return string
- */
- public function getApiVersion();
-
- /**
- * Get the name of the API
- *
- * @return string
- */
- public function getName();
-
- /**
- * Get a summary of the purpose of the API
- *
- * @return string
- */
- public function getDescription();
-
- /**
- * Get arbitrary data from the service description that is not part of the Guzzle spec
- *
- * @param string $key Data key to retrieve
- *
- * @return null|mixed
- */
- public function getData($key);
-
- /**
- * Set arbitrary data on the service description
- *
- * @param string $key Data key to set
- * @param mixed $value Value to set
- *
- * @return self
- */
- public function setData($key, $value);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionLoader.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionLoader.php
deleted file mode 100644
index 90fe7f4bb65..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ServiceDescriptionLoader.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-use Guzzle\Service\AbstractConfigLoader;
-use Guzzle\Service\Exception\DescriptionBuilderException;
-
-/**
- * Loader for service descriptions
- */
-class ServiceDescriptionLoader extends AbstractConfigLoader
-{
- protected function build($config, array $options)
- {
- $operations = array();
- if (!empty($config['operations'])) {
- foreach ($config['operations'] as $name => $op) {
- $name = $op['name'] = isset($op['name']) ? $op['name'] : $name;
- // Extend other operations
- if (!empty($op['extends'])) {
- $this->resolveExtension($name, $op, $operations);
- }
- $op['parameters'] = isset($op['parameters']) ? $op['parameters'] : array();
- $operations[$name] = $op;
- }
- }
-
- return new ServiceDescription(array(
- 'apiVersion' => isset($config['apiVersion']) ? $config['apiVersion'] : null,
- 'baseUrl' => isset($config['baseUrl']) ? $config['baseUrl'] : null,
- 'description' => isset($config['description']) ? $config['description'] : null,
- 'operations' => $operations,
- 'models' => isset($config['models']) ? $config['models'] : null
- ) + $config);
- }
-
- /**
- * @param string $name Name of the operation
- * @param array $op Operation value array
- * @param array $operations Currently loaded operations
- * @throws DescriptionBuilderException when extending a non-existent operation
- */
- protected function resolveExtension($name, array &$op, array &$operations)
- {
- $resolved = array();
- $original = empty($op['parameters']) ? false: $op['parameters'];
- $hasClass = !empty($op['class']);
- foreach ((array) $op['extends'] as $extendedCommand) {
- if (empty($operations[$extendedCommand])) {
- throw new DescriptionBuilderException("{$name} extends missing operation {$extendedCommand}");
- }
- $toArray = $operations[$extendedCommand];
- $resolved = empty($resolved)
- ? $toArray['parameters']
- : array_merge($resolved, $toArray['parameters']);
-
- $op = $op + $toArray;
- if (!$hasClass && isset($toArray['class'])) {
- $op['class'] = $toArray['class'];
- }
- }
- $op['parameters'] = $original ? array_merge($resolved, $original) : $resolved;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ValidatorInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ValidatorInterface.php
deleted file mode 100644
index 94ca77da476..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Description/ValidatorInterface.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Description;
-
-/**
- * Validator responsible for preparing and validating parameters against the parameter's schema
- */
-interface ValidatorInterface
-{
- /**
- * Validate a value against the acceptable types, regular expressions, minimum, maximums, instanceOf, enums, etc
- * Add default and static values to the passed in variable. If the validation completes successfully, the input
- * must be run correctly through the matching schema's filters attribute.
- *
- * @param Parameter $param Schema that is being validated against the value
- * @param mixed $value Value to validate and process. The value may change during this process.
- *
- * @return bool Returns true if the input data is valid for the schema
- */
- public function validate(Parameter $param, &$value);
-
- /**
- * Get validation errors encountered while validating
- *
- * @return array
- */
- public function getErrors();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandException.php
deleted file mode 100644
index 0f016fb952b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-class CommandException extends RuntimeException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandTransferException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandTransferException.php
deleted file mode 100644
index eabe93d3dbd..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/CommandTransferException.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-use Guzzle\Http\Exception\MultiTransferException;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Exception thrown when transferring commands in parallel
- */
-class CommandTransferException extends MultiTransferException
-{
- protected $successfulCommands = array();
- protected $failedCommands = array();
-
- /**
- * Creates a new CommandTransferException from a MultiTransferException
- *
- * @param MultiTransferException $e Exception to base a new exception on
- *
- * @return self
- */
- public static function fromMultiTransferException(MultiTransferException $e)
- {
- $ce = new self($e->getMessage(), $e->getCode(), $e->getPrevious());
- $ce->setSuccessfulRequests($e->getSuccessfulRequests());
-
- $alreadyAddedExceptions = array();
- foreach ($e->getFailedRequests() as $request) {
- if ($re = $e->getExceptionForFailedRequest($request)) {
- $alreadyAddedExceptions[] = $re;
- $ce->addFailedRequestWithException($request, $re);
- } else {
- $ce->addFailedRequest($request);
- }
- }
-
- // Add any exceptions that did not map to a request
- if (count($alreadyAddedExceptions) < count($e)) {
- foreach ($e as $ex) {
- if (!in_array($ex, $alreadyAddedExceptions)) {
- $ce->add($ex);
- }
- }
- }
-
- return $ce;
- }
-
- /**
- * Get all of the commands in the transfer
- *
- * @return array
- */
- public function getAllCommands()
- {
- return array_merge($this->successfulCommands, $this->failedCommands);
- }
-
- /**
- * Add to the array of successful commands
- *
- * @param CommandInterface $command Successful command
- *
- * @return self
- */
- public function addSuccessfulCommand(CommandInterface $command)
- {
- $this->successfulCommands[] = $command;
-
- return $this;
- }
-
- /**
- * Add to the array of failed commands
- *
- * @param CommandInterface $command Failed command
- *
- * @return self
- */
- public function addFailedCommand(CommandInterface $command)
- {
- $this->failedCommands[] = $command;
-
- return $this;
- }
-
- /**
- * Get an array of successful commands
- *
- * @return array
- */
- public function getSuccessfulCommands()
- {
- return $this->successfulCommands;
- }
-
- /**
- * Get an array of failed commands
- *
- * @return array
- */
- public function getFailedCommands()
- {
- return $this->failedCommands;
- }
-
- /**
- * Get the Exception that caused the given $command to fail
- *
- * @param CommandInterface $command Failed command
- *
- * @return \Exception|null
- */
- public function getExceptionForFailedCommand(CommandInterface $command)
- {
- return $this->getExceptionForFailedRequest($command->getRequest());
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/DescriptionBuilderException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/DescriptionBuilderException.php
deleted file mode 100644
index 1407e568789..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/DescriptionBuilderException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-class DescriptionBuilderException extends RuntimeException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/InconsistentClientTransferException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/InconsistentClientTransferException.php
deleted file mode 100644
index 71cbc01b8c0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/InconsistentClientTransferException.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-/**
- * Command transfer exception when commands do not all use the same client
- */
-class InconsistentClientTransferException extends RuntimeException
-{
- /**
- * @var array Commands with an invalid client
- */
- private $invalidCommands = array();
-
- /**
- * @param array $commands Invalid commands
- */
- public function __construct(array $commands)
- {
- $this->invalidCommands = $commands;
- parent::__construct(
- 'Encountered commands in a batch transfer that use inconsistent clients. The batching ' .
- 'strategy you use with a command transfer must divide command batches by client.'
- );
- }
-
- /**
- * Get the invalid commands
- *
- * @return array
- */
- public function getCommands()
- {
- return $this->invalidCommands;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ResponseClassException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ResponseClassException.php
deleted file mode 100644
index d59ff218513..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ResponseClassException.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-class ResponseClassException extends RuntimeException
-{
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceBuilderException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceBuilderException.php
deleted file mode 100644
index e857e5ffd8a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceBuilderException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-class ServiceBuilderException extends RuntimeException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceNotFoundException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceNotFoundException.php
deleted file mode 100644
index 59a0d55693c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ServiceNotFoundException.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-class ServiceNotFoundException extends ServiceBuilderException {}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ValidationException.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ValidationException.php
deleted file mode 100644
index 9033bce5b56..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Exception/ValidationException.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Exception;
-
-use Guzzle\Common\Exception\RuntimeException;
-
-class ValidationException extends RuntimeException
-{
- protected $errors = array();
-
- /**
- * Set the validation error messages
- *
- * @param array $errors Array of validation errors
- */
- public function setErrors(array $errors)
- {
- $this->errors = $errors;
- }
-
- /**
- * Get any validation errors
- *
- * @return array
- */
- public function getErrors()
- {
- return $this->errors;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php
deleted file mode 100644
index 21140e772ce..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Abstract resource iterator factory implementation
- */
-abstract class AbstractResourceIteratorFactory implements ResourceIteratorFactoryInterface
-{
- public function build(CommandInterface $command, array $options = array())
- {
- if (!$this->canBuild($command)) {
- throw new InvalidArgumentException('Iterator was not found for ' . $command->getName());
- }
-
- $className = $this->getClassName($command);
-
- return new $className($command, $options);
- }
-
- public function canBuild(CommandInterface $command)
- {
- return (bool) $this->getClassName($command);
- }
-
- /**
- * Get the name of the class to instantiate for the command
- *
- * @param CommandInterface $command Command that is associated with the iterator
- *
- * @return string
- */
- abstract protected function getClassName(CommandInterface $command);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php
deleted file mode 100644
index 2efc133c65f..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Factory that utilizes multiple factories for creating iterators
- */
-class CompositeResourceIteratorFactory implements ResourceIteratorFactoryInterface
-{
- /** @var array Array of factories */
- protected $factories;
-
- /** @param array $factories Array of factories used to instantiate iterators */
- public function __construct(array $factories)
- {
- $this->factories = $factories;
- }
-
- public function build(CommandInterface $command, array $options = array())
- {
- if (!($factory = $this->getFactory($command))) {
- throw new InvalidArgumentException('Iterator was not found for ' . $command->getName());
- }
-
- return $factory->build($command, $options);
- }
-
- public function canBuild(CommandInterface $command)
- {
- return $this->getFactory($command) !== false;
- }
-
- /**
- * Add a factory to the composite factory
- *
- * @param ResourceIteratorFactoryInterface $factory Factory to add
- *
- * @return self
- */
- public function addFactory(ResourceIteratorFactoryInterface $factory)
- {
- $this->factories[] = $factory;
-
- return $this;
- }
-
- /**
- * Get the factory that matches the command object
- *
- * @param CommandInterface $command Command retrieving the iterator for
- *
- * @return ResourceIteratorFactoryInterface|bool
- */
- protected function getFactory(CommandInterface $command)
- {
- foreach ($this->factories as $factory) {
- if ($factory->canBuild($command)) {
- return $factory;
- }
- }
-
- return false;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/MapResourceIteratorFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/MapResourceIteratorFactory.php
deleted file mode 100644
index c71ca9d85e7..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/MapResourceIteratorFactory.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Resource iterator factory used when explicitly mapping strings to iterator classes
- */
-class MapResourceIteratorFactory extends AbstractResourceIteratorFactory
-{
- /** @var array Associative array mapping iterator names to class names */
- protected $map;
-
- /** @param array $map Associative array mapping iterator names to class names */
- public function __construct(array $map)
- {
- $this->map = $map;
- }
-
- public function getClassName(CommandInterface $command)
- {
- $className = $command->getName();
-
- if (isset($this->map[$className])) {
- return $this->map[$className];
- } elseif (isset($this->map['*'])) {
- // If a wildcard was added, then always use that
- return $this->map['*'];
- }
-
- return null;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/Model.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/Model.php
deleted file mode 100644
index 2322434a543..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/Model.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Common\Collection;
-use Guzzle\Service\Description\Parameter;
-
-/**
- * Default model created when commands create service description model responses
- */
-class Model extends Collection
-{
- /** @var Parameter Structure of the model */
- protected $structure;
-
- /**
- * @param array $data Data contained by the model
- * @param Parameter $structure The structure of the model
- */
- public function __construct(array $data = array(), Parameter $structure = null)
- {
- $this->data = $data;
- $this->structure = $structure;
- }
-
- /**
- * Get the structure of the model
- *
- * @return Parameter
- */
- public function getStructure()
- {
- return $this->structure ?: new Parameter();
- }
-
- /**
- * Provides debug information about the model object
- *
- * @return string
- */
- public function __toString()
- {
- $output = 'Debug output of ';
- if ($this->structure) {
- $output .= $this->structure->getName() . ' ';
- }
- $output .= 'model';
- $output = str_repeat('=', strlen($output)) . "\n" . $output . "\n" . str_repeat('=', strlen($output)) . "\n\n";
- $output .= "Model data\n-----------\n\n";
- $output .= "This data can be retrieved from the model object using the get() method of the model "
- . "(e.g. \$model->get(\$key)) or accessing the model like an associative array (e.g. \$model['key']).\n\n";
- $lines = array_slice(explode("\n", trim(print_r($this->toArray(), true))), 2, -1);
- $output .= implode("\n", $lines);
-
- if ($this->structure) {
- $output .= "\n\nModel structure\n---------------\n\n";
- $output .= "The following JSON document defines how the model was parsed from an HTTP response into the "
- . "associative array structure you see above.\n\n";
- $output .= ' ' . json_encode($this->structure->toArray()) . "\n\n";
- }
-
- return $output . "\n";
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIterator.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIterator.php
deleted file mode 100644
index e1415243256..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIterator.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Service\Command\CommandInterface;
-
-abstract class ResourceIterator extends AbstractHasDispatcher implements ResourceIteratorInterface
-{
- /** @var CommandInterface Command used to send requests */
- protected $command;
-
- /** @var CommandInterface First sent command */
- protected $originalCommand;
-
- /** @var array Currently loaded resources */
- protected $resources;
-
- /** @var int Total number of resources that have been retrieved */
- protected $retrievedCount = 0;
-
- /** @var int Total number of resources that have been iterated */
- protected $iteratedCount = 0;
-
- /** @var string NextToken/Marker for a subsequent request */
- protected $nextToken = false;
-
- /** @var int Maximum number of resources to fetch per request */
- protected $pageSize;
-
- /** @var int Maximum number of resources to retrieve in total */
- protected $limit;
-
- /** @var int Number of requests sent */
- protected $requestCount = 0;
-
- /** @var array Initial data passed to the constructor */
- protected $data = array();
-
- /** @var bool Whether or not the current value is known to be invalid */
- protected $invalid;
-
- public static function getAllEvents()
- {
- return array(
- // About to issue another command to get more results
- 'resource_iterator.before_send',
- // Issued another command to get more results
- 'resource_iterator.after_send'
- );
- }
-
- /**
- * @param CommandInterface $command Initial command used for iteration
- * @param array $data Associative array of additional parameters. You may specify any number of custom
- * options for an iterator. Among these options, you may also specify the following values:
- * - limit: Attempt to limit the maximum number of resources to this amount
- * - page_size: Attempt to retrieve this number of resources per request
- */
- public function __construct(CommandInterface $command, array $data = array())
- {
- // Clone the command to keep track of the originating command for rewind
- $this->originalCommand = $command;
-
- // Parse options from the array of options
- $this->data = $data;
- $this->limit = array_key_exists('limit', $data) ? $data['limit'] : 0;
- $this->pageSize = array_key_exists('page_size', $data) ? $data['page_size'] : false;
- }
-
- /**
- * Get all of the resources as an array (Warning: this could issue a large number of requests)
- *
- * @return array
- */
- public function toArray()
- {
- return iterator_to_array($this, false);
- }
-
- public function setLimit($limit)
- {
- $this->limit = $limit;
- $this->resetState();
-
- return $this;
- }
-
- public function setPageSize($pageSize)
- {
- $this->pageSize = $pageSize;
- $this->resetState();
-
- return $this;
- }
-
- /**
- * Get an option from the iterator
- *
- * @param string $key Key of the option to retrieve
- *
- * @return mixed|null Returns NULL if not set or the value if set
- */
- public function get($key)
- {
- return array_key_exists($key, $this->data) ? $this->data[$key] : null;
- }
-
- /**
- * Set an option on the iterator
- *
- * @param string $key Key of the option to set
- * @param mixed $value Value to set for the option
- *
- * @return ResourceIterator
- */
- public function set($key, $value)
- {
- $this->data[$key] = $value;
-
- return $this;
- }
-
- public function current()
- {
- return $this->resources ? current($this->resources) : false;
- }
-
- public function key()
- {
- return max(0, $this->iteratedCount - 1);
- }
-
- public function count()
- {
- return $this->retrievedCount;
- }
-
- /**
- * Get the total number of requests sent
- *
- * @return int
- */
- public function getRequestCount()
- {
- return $this->requestCount;
- }
-
- /**
- * Rewind the Iterator to the first element and send the original command
- */
- public function rewind()
- {
- // Use the original command
- $this->command = clone $this->originalCommand;
- $this->resetState();
- $this->next();
- }
-
- public function valid()
- {
- return !$this->invalid && (!$this->resources || $this->current() || $this->nextToken)
- && (!$this->limit || $this->iteratedCount < $this->limit + 1);
- }
-
- public function next()
- {
- $this->iteratedCount++;
-
- // Check if a new set of resources needs to be retrieved
- $sendRequest = false;
- if (!$this->resources) {
- $sendRequest = true;
- } else {
- // iterate over the internal array
- $current = next($this->resources);
- $sendRequest = $current === false && $this->nextToken && (!$this->limit || $this->iteratedCount < $this->limit + 1);
- }
-
- if ($sendRequest) {
-
- $this->dispatch('resource_iterator.before_send', array(
- 'iterator' => $this,
- 'resources' => $this->resources
- ));
-
- // Get a new command object from the original command
- $this->command = clone $this->originalCommand;
- // Send a request and retrieve the newly loaded resources
- $this->resources = $this->sendRequest();
- $this->requestCount++;
-
- // If no resources were found, then the last request was not needed
- // and iteration must stop
- if (empty($this->resources)) {
- $this->invalid = true;
- } else {
- // Add to the number of retrieved resources
- $this->retrievedCount += count($this->resources);
- // Ensure that we rewind to the beginning of the array
- reset($this->resources);
- }
-
- $this->dispatch('resource_iterator.after_send', array(
- 'iterator' => $this,
- 'resources' => $this->resources
- ));
- }
- }
-
- /**
- * Retrieve the NextToken that can be used in other iterators.
- *
- * @return string Returns a NextToken
- */
- public function getNextToken()
- {
- return $this->nextToken;
- }
-
- /**
- * Returns the value that should be specified for the page size for a request that will maintain any hard limits,
- * but still honor the specified pageSize if the number of items retrieved + pageSize < hard limit
- *
- * @return int Returns the page size of the next request.
- */
- protected function calculatePageSize()
- {
- if ($this->limit && $this->iteratedCount + $this->pageSize > $this->limit) {
- return 1 + ($this->limit - $this->iteratedCount);
- }
-
- return (int) $this->pageSize;
- }
-
- /**
- * Reset the internal state of the iterator without triggering a rewind()
- */
- protected function resetState()
- {
- $this->iteratedCount = 0;
- $this->retrievedCount = 0;
- $this->nextToken = false;
- $this->resources = null;
- $this->invalid = false;
- }
-
- /**
- * Send a request to retrieve the next page of results. Hook for subclasses to implement.
- *
- * @return array Returns the newly loaded resources
- */
- abstract protected function sendRequest();
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php
deleted file mode 100644
index 6aa36153fc0..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Batch\BatchBuilder;
-use Guzzle\Batch\BatchSizeDivisor;
-use Guzzle\Batch\BatchClosureTransfer;
-use Guzzle\Common\Version;
-
-/**
- * Apply a callback to the contents of a {@see ResourceIteratorInterface}
- * @deprecated Will be removed in a future version and is no longer maintained. Use the Batch\ abstractions instead.
- * @codeCoverageIgnore
- */
-class ResourceIteratorApplyBatched extends AbstractHasDispatcher
-{
- /** @var callable|array */
- protected $callback;
-
- /** @var ResourceIteratorInterface */
- protected $iterator;
-
- /** @var integer Total number of sent batches */
- protected $batches = 0;
-
- /** @var int Total number of iterated resources */
- protected $iterated = 0;
-
- public static function getAllEvents()
- {
- return array(
- // About to send a batch of requests to the callback
- 'iterator_batch.before_batch',
- // Finished sending a batch of requests to the callback
- 'iterator_batch.after_batch',
- // Created the batch object
- 'iterator_batch.created_batch'
- );
- }
-
- /**
- * @param ResourceIteratorInterface $iterator Resource iterator to apply a callback to
- * @param array|callable $callback Callback method accepting the resource iterator
- * and an array of the iterator's current resources
- */
- public function __construct(ResourceIteratorInterface $iterator, $callback)
- {
- $this->iterator = $iterator;
- $this->callback = $callback;
- Version::warn(__CLASS__ . ' is deprecated');
- }
-
- /**
- * Apply the callback to the contents of the resource iterator
- *
- * @param int $perBatch The number of records to group per batch transfer
- *
- * @return int Returns the number of iterated resources
- */
- public function apply($perBatch = 50)
- {
- $this->iterated = $this->batches = $batches = 0;
- $that = $this;
- $it = $this->iterator;
- $callback = $this->callback;
-
- $batch = BatchBuilder::factory()
- ->createBatchesWith(new BatchSizeDivisor($perBatch))
- ->transferWith(new BatchClosureTransfer(function (array $batch) use ($that, $callback, &$batches, $it) {
- $batches++;
- $that->dispatch('iterator_batch.before_batch', array('iterator' => $it, 'batch' => $batch));
- call_user_func_array($callback, array($it, $batch));
- $that->dispatch('iterator_batch.after_batch', array('iterator' => $it, 'batch' => $batch));
- }))
- ->autoFlushAt($perBatch)
- ->build();
-
- $this->dispatch('iterator_batch.created_batch', array('batch' => $batch));
-
- foreach ($this->iterator as $resource) {
- $this->iterated++;
- $batch->add($resource);
- }
-
- $batch->flush();
- $this->batches = $batches;
-
- return $this->iterated;
- }
-
- /**
- * Get the total number of batches sent
- *
- * @return int
- */
- public function getBatchCount()
- {
- return $this->batches;
- }
-
- /**
- * Get the total number of iterated resources
- *
- * @return int
- */
- public function getIteratedCount()
- {
- return $this->iterated;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorClassFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorClassFactory.php
deleted file mode 100644
index 2fd9980717b..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorClassFactory.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Inflection\InflectorInterface;
-use Guzzle\Inflection\Inflector;
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Factory for creating {@see ResourceIteratorInterface} objects using a convention of storing iterator classes under a
- * root namespace using the name of a {@see CommandInterface} object as a convention for determining the name of an
- * iterator class. The command name is converted to CamelCase and Iterator is appended (e.g. abc_foo => AbcFoo).
- */
-class ResourceIteratorClassFactory extends AbstractResourceIteratorFactory
-{
- /** @var array List of namespaces used to look for classes */
- protected $namespaces;
-
- /** @var InflectorInterface Inflector used to determine class names */
- protected $inflector;
-
- /**
- * @param string|array $namespaces List of namespaces for iterator objects
- * @param InflectorInterface $inflector Inflector used to resolve class names
- */
- public function __construct($namespaces = array(), InflectorInterface $inflector = null)
- {
- $this->namespaces = (array) $namespaces;
- $this->inflector = $inflector ?: Inflector::getDefault();
- }
-
- /**
- * Registers a namespace to check for Iterators
- *
- * @param string $namespace Namespace which contains Iterator classes
- *
- * @return self
- */
- public function registerNamespace($namespace)
- {
- array_unshift($this->namespaces, $namespace);
-
- return $this;
- }
-
- protected function getClassName(CommandInterface $command)
- {
- $iteratorName = $this->inflector->camel($command->getName()) . 'Iterator';
-
- // Determine the name of the class to load
- foreach ($this->namespaces as $namespace) {
- $potentialClassName = $namespace . '\\' . $iteratorName;
- if (class_exists($potentialClassName)) {
- return $potentialClassName;
- }
- }
-
- return false;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php
deleted file mode 100644
index 8b4e8dbe0a8..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Service\Command\CommandInterface;
-
-/**
- * Factory for creating {@see ResourceIteratorInterface} objects
- */
-interface ResourceIteratorFactoryInterface
-{
- /**
- * Create a resource iterator
- *
- * @param CommandInterface $command Command to create an iterator for
- * @param array $options Iterator options that are exposed as data.
- *
- * @return ResourceIteratorInterface
- */
- public function build(CommandInterface $command, array $options = array());
-
- /**
- * Check if the factory can create an iterator
- *
- * @param CommandInterface $command Command to create an iterator for
- *
- * @return bool
- */
- public function canBuild(CommandInterface $command);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorInterface.php
deleted file mode 100644
index dbaafdec1e2..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/Resource/ResourceIteratorInterface.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Guzzle\Service\Resource;
-
-use Guzzle\Common\HasDispatcherInterface;
-use Guzzle\Common\ToArrayInterface;
-
-/**
- * Iterates over a paginated resource using subsequent requests in order to retrieve the entire matching result set
- */
-interface ResourceIteratorInterface extends ToArrayInterface, HasDispatcherInterface, \Iterator, \Countable
-{
- /**
- * Retrieve the NextToken that can be used in other iterators.
- *
- * @return string Returns a NextToken
- */
- public function getNextToken();
-
- /**
- * Attempt to limit the total number of resources returned by the iterator.
- *
- * You may still receive more items than you specify. Set to 0 to specify no limit.
- *
- * @param int $limit Limit amount
- *
- * @return ResourceIteratorInterface
- */
- public function setLimit($limit);
-
- /**
- * Attempt to limit the total number of resources retrieved per request by the iterator.
- *
- * The iterator may return more than you specify in the page size argument depending on the service and underlying
- * command implementation. Set to 0 to specify no page size limitation.
- *
- * @param int $pageSize Limit amount
- *
- * @return ResourceIteratorInterface
- */
- public function setPageSize($pageSize);
-
- /**
- * Get a data option from the iterator
- *
- * @param string $key Key of the option to retrieve
- *
- * @return mixed|null Returns NULL if not set or the value if set
- */
- public function get($key);
-
- /**
- * Set a data option on the iterator
- *
- * @param string $key Key of the option to set
- * @param mixed $value Value to set for the option
- *
- * @return ResourceIteratorInterface
- */
- public function set($key, $value);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/composer.json
deleted file mode 100644
index cb7ace623dc..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Service/composer.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "guzzle/service",
- "description": "Guzzle service component for abstracting RESTful web services",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["web service", "webservice", "REST", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/cache": "self.version",
- "guzzle/http": "self.version",
- "guzzle/inflection": "self.version"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Service": "" }
- },
- "target-dir": "Guzzle/Service",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/PhpStreamRequestFactory.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/PhpStreamRequestFactory.php
deleted file mode 100644
index 9949e456f5e..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/PhpStreamRequestFactory.php
+++ /dev/null
@@ -1,276 +0,0 @@
-<?php
-
-namespace Guzzle\Stream;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-use Guzzle\Common\Exception\RuntimeException;
-use Guzzle\Http\Message\EntityEnclosingRequestInterface;
-use Guzzle\Http\Message\RequestInterface;
-use Guzzle\Http\Url;
-
-/**
- * Factory used to create fopen streams using PHP's http and https stream wrappers
- *
- * Note: PHP's http stream wrapper only supports streaming downloads. It does not support streaming uploads.
- */
-class PhpStreamRequestFactory implements StreamRequestFactoryInterface
-{
- /** @var resource Stream context options */
- protected $context;
-
- /** @var array Stream context */
- protected $contextOptions;
-
- /** @var Url Stream URL */
- protected $url;
-
- /** @var array Last response headers received by the HTTP request */
- protected $lastResponseHeaders;
-
- /**
- * {@inheritdoc}
- *
- * The $params array can contain the following custom keys specific to the PhpStreamRequestFactory:
- * - stream_class: The name of a class to create instead of a Guzzle\Stream\Stream object
- */
- public function fromRequest(RequestInterface $request, $context = array(), array $params = array())
- {
- if (is_resource($context)) {
- $this->contextOptions = stream_context_get_options($context);
- $this->context = $context;
- } elseif (is_array($context) || !$context) {
- $this->contextOptions = $context;
- $this->createContext($params);
- } elseif ($context) {
- throw new InvalidArgumentException('$context must be an array or resource');
- }
-
- // Dispatch the before send event
- $request->dispatch('request.before_send', array(
- 'request' => $request,
- 'context' => $this->context,
- 'context_options' => $this->contextOptions
- ));
-
- $this->setUrl($request);
- $this->addDefaultContextOptions($request);
- $this->addSslOptions($request);
- $this->addBodyOptions($request);
- $this->addProxyOptions($request);
-
- // Create the file handle but silence errors
- return $this->createStream($params)
- ->setCustomData('request', $request)
- ->setCustomData('response_headers', $this->getLastResponseHeaders());
- }
-
- /**
- * Set an option on the context and the internal options array
- *
- * @param string $wrapper Stream wrapper name of http
- * @param string $name Context name
- * @param mixed $value Context value
- * @param bool $overwrite Set to true to overwrite an existing value
- */
- protected function setContextValue($wrapper, $name, $value, $overwrite = false)
- {
- if (!isset($this->contextOptions[$wrapper])) {
- $this->contextOptions[$wrapper] = array($name => $value);
- } elseif (!$overwrite && isset($this->contextOptions[$wrapper][$name])) {
- return;
- }
- $this->contextOptions[$wrapper][$name] = $value;
- stream_context_set_option($this->context, $wrapper, $name, $value);
- }
-
- /**
- * Create a stream context
- *
- * @param array $params Parameter array
- */
- protected function createContext(array $params)
- {
- $options = $this->contextOptions;
- $this->context = $this->createResource(function () use ($params, $options) {
- return stream_context_create($options, $params);
- });
- }
-
- /**
- * Get the last response headers received by the HTTP request
- *
- * @return array
- */
- public function getLastResponseHeaders()
- {
- return $this->lastResponseHeaders;
- }
-
- /**
- * Adds the default context options to the stream context options
- *
- * @param RequestInterface $request Request
- */
- protected function addDefaultContextOptions(RequestInterface $request)
- {
- $this->setContextValue('http', 'method', $request->getMethod());
- $headers = $request->getHeaderLines();
-
- // "Connection: close" is required to get streams to work in HTTP 1.1
- if (!$request->hasHeader('Connection')) {
- $headers[] = 'Connection: close';
- }
-
- $this->setContextValue('http', 'header', $headers);
- $this->setContextValue('http', 'protocol_version', $request->getProtocolVersion());
- $this->setContextValue('http', 'ignore_errors', true);
- }
-
- /**
- * Set the URL to use with the factory
- *
- * @param RequestInterface $request Request that owns the URL
- */
- protected function setUrl(RequestInterface $request)
- {
- $this->url = $request->getUrl(true);
-
- // Check for basic Auth username
- if ($request->getUsername()) {
- $this->url->setUsername($request->getUsername());
- }
-
- // Check for basic Auth password
- if ($request->getPassword()) {
- $this->url->setPassword($request->getPassword());
- }
- }
-
- /**
- * Add SSL options to the stream context
- *
- * @param RequestInterface $request Request
- */
- protected function addSslOptions(RequestInterface $request)
- {
- if ($request->getCurlOptions()->get(CURLOPT_SSL_VERIFYPEER)) {
- $this->setContextValue('ssl', 'verify_peer', true, true);
- if ($cafile = $request->getCurlOptions()->get(CURLOPT_CAINFO)) {
- $this->setContextValue('ssl', 'cafile', $cafile, true);
- }
- } else {
- $this->setContextValue('ssl', 'verify_peer', false, true);
- }
- }
-
- /**
- * Add body (content) specific options to the context options
- *
- * @param RequestInterface $request
- */
- protected function addBodyOptions(RequestInterface $request)
- {
- // Add the content for the request if needed
- if (!($request instanceof EntityEnclosingRequestInterface)) {
- return;
- }
-
- if (count($request->getPostFields())) {
- $this->setContextValue('http', 'content', (string) $request->getPostFields(), true);
- } elseif ($request->getBody()) {
- $this->setContextValue('http', 'content', (string) $request->getBody(), true);
- }
-
- // Always ensure a content-length header is sent
- if (isset($this->contextOptions['http']['content'])) {
- $headers = isset($this->contextOptions['http']['header']) ? $this->contextOptions['http']['header'] : array();
- $headers[] = 'Content-Length: ' . strlen($this->contextOptions['http']['content']);
- $this->setContextValue('http', 'header', $headers, true);
- }
- }
-
- /**
- * Add proxy parameters to the context if needed
- *
- * @param RequestInterface $request Request
- */
- protected function addProxyOptions(RequestInterface $request)
- {
- if ($proxy = $request->getCurlOptions()->get(CURLOPT_PROXY)) {
- $this->setContextValue('http', 'proxy', $proxy);
- }
- }
-
- /**
- * Create the stream for the request with the context options
- *
- * @param array $params Parameters of the stream
- *
- * @return StreamInterface
- */
- protected function createStream(array $params)
- {
- $http_response_header = null;
- $url = $this->url;
- $context = $this->context;
- $fp = $this->createResource(function () use ($context, $url, &$http_response_header) {
- return fopen((string) $url, 'r', false, $context);
- });
-
- // Determine the class to instantiate
- $className = isset($params['stream_class']) ? $params['stream_class'] : __NAMESPACE__ . '\\Stream';
-
- /** @var $stream StreamInterface */
- $stream = new $className($fp);
-
- // Track the response headers of the request
- if (isset($http_response_header)) {
- $this->lastResponseHeaders = $http_response_header;
- $this->processResponseHeaders($stream);
- }
-
- return $stream;
- }
-
- /**
- * Process response headers
- *
- * @param StreamInterface $stream
- */
- protected function processResponseHeaders(StreamInterface $stream)
- {
- // Set the size on the stream if it was returned in the response
- foreach ($this->lastResponseHeaders as $header) {
- if ((stripos($header, 'Content-Length:')) === 0) {
- $stream->setSize(trim(substr($header, 15)));
- }
- }
- }
-
- /**
- * Create a resource and check to ensure it was created successfully
- *
- * @param callable $callback Closure to invoke that must return a valid resource
- *
- * @return resource
- * @throws RuntimeException on error
- */
- protected function createResource($callback)
- {
- // Turn off error reporting while we try to initiate the request
- $level = error_reporting(0);
- $resource = call_user_func($callback);
- error_reporting($level);
-
- // If the resource could not be created, then grab the last error and throw an exception
- if (false === $resource) {
- $message = 'Error creating resource. ';
- foreach (error_get_last() as $key => $value) {
- $message .= "[{$key}] {$value} ";
- }
- throw new RuntimeException(trim($message));
- }
-
- return $resource;
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/Stream.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/Stream.php
deleted file mode 100644
index 12bed268d90..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/Stream.php
+++ /dev/null
@@ -1,289 +0,0 @@
-<?php
-
-namespace Guzzle\Stream;
-
-use Guzzle\Common\Exception\InvalidArgumentException;
-
-/**
- * PHP stream implementation
- */
-class Stream implements StreamInterface
-{
- const STREAM_TYPE = 'stream_type';
- const WRAPPER_TYPE = 'wrapper_type';
- const IS_LOCAL = 'is_local';
- const IS_READABLE = 'is_readable';
- const IS_WRITABLE = 'is_writable';
- const SEEKABLE = 'seekable';
-
- /** @var resource Stream resource */
- protected $stream;
-
- /** @var int Size of the stream contents in bytes */
- protected $size;
-
- /** @var array Stream cached data */
- protected $cache = array();
-
- /** @var array Custom stream data */
- protected $customData = array();
-
- /** @var array Hash table of readable and writeable stream types for fast lookups */
- protected static $readWriteHash = array(
- 'read' => array(
- 'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true,
- 'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, 'c+b' => true,
- 'rt' => true, 'w+t' => true, 'r+t' => true, 'x+t' => true, 'c+t' => true, 'a+' => true
- ),
- 'write' => array(
- 'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true, 'c+' => true,
- 'wb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, 'c+b' => true,
- 'w+t' => true, 'r+t' => true, 'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true
- )
- );
-
- /**
- * @param resource $stream Stream resource to wrap
- * @param int $size Size of the stream in bytes. Only pass if the size cannot be obtained from the stream.
- *
- * @throws InvalidArgumentException if the stream is not a stream resource
- */
- public function __construct($stream, $size = null)
- {
- $this->setStream($stream, $size);
- }
-
- /**
- * Closes the stream when the helper is destructed
- */
- public function __destruct()
- {
- $this->close();
- }
-
- public function __toString()
- {
- if (!$this->isReadable() || (!$this->isSeekable() && $this->isConsumed())) {
- return '';
- }
-
- $originalPos = $this->ftell();
- $body = stream_get_contents($this->stream, -1, 0);
- $this->seek($originalPos);
-
- return $body;
- }
-
- public function close()
- {
- if (is_resource($this->stream)) {
- fclose($this->stream);
- }
- $this->cache[self::IS_READABLE] = false;
- $this->cache[self::IS_WRITABLE] = false;
- }
-
- /**
- * Calculate a hash of a Stream
- *
- * @param StreamInterface $stream Stream to calculate the hash for
- * @param string $algo Hash algorithm (e.g. md5, crc32, etc)
- * @param bool $rawOutput Whether or not to use raw output
- *
- * @return bool|string Returns false on failure or a hash string on success
- */
- public static function getHash(StreamInterface $stream, $algo, $rawOutput = false)
- {
- $pos = $stream->ftell();
- if (!$stream->seek(0)) {
- return false;
- }
-
- $ctx = hash_init($algo);
- while (!$stream->feof()) {
- hash_update($ctx, $stream->read(8192));
- }
-
- $out = hash_final($ctx, (bool) $rawOutput);
- $stream->seek($pos);
-
- return $out;
- }
-
- public function getMetaData($key = null)
- {
- $meta = stream_get_meta_data($this->stream);
-
- return !$key ? $meta : (array_key_exists($key, $meta) ? $meta[$key] : null);
- }
-
- public function getStream()
- {
- return $this->stream;
- }
-
- public function setStream($stream, $size = null)
- {
- if (!is_resource($stream)) {
- throw new InvalidArgumentException('Stream must be a resource');
- }
-
- $this->size = $size;
- $this->stream = $stream;
- $this->rebuildCache();
-
- return $this;
- }
-
- public function detachStream()
- {
- $this->stream = null;
-
- return $this;
- }
-
- public function getWrapper()
- {
- return $this->cache[self::WRAPPER_TYPE];
- }
-
- public function getWrapperData()
- {
- return $this->getMetaData('wrapper_data') ?: array();
- }
-
- public function getStreamType()
- {
- return $this->cache[self::STREAM_TYPE];
- }
-
- public function getUri()
- {
- return $this->cache['uri'];
- }
-
- public function getSize()
- {
- if ($this->size !== null) {
- return $this->size;
- }
-
- // If the stream is a file based stream and local, then use fstat
- clearstatcache(true, $this->cache['uri']);
- $stats = fstat($this->stream);
- if (isset($stats['size'])) {
- $this->size = $stats['size'];
- return $this->size;
- } elseif ($this->cache[self::IS_READABLE] && $this->cache[self::SEEKABLE]) {
- // Only get the size based on the content if the the stream is readable and seekable
- $pos = $this->ftell();
- $this->size = strlen((string) $this);
- $this->seek($pos);
- return $this->size;
- }
-
- return false;
- }
-
- public function isReadable()
- {
- return $this->cache[self::IS_READABLE];
- }
-
- public function isRepeatable()
- {
- return $this->cache[self::IS_READABLE] && $this->cache[self::SEEKABLE];
- }
-
- public function isWritable()
- {
- return $this->cache[self::IS_WRITABLE];
- }
-
- public function isConsumed()
- {
- return feof($this->stream);
- }
-
- public function feof()
- {
- return $this->isConsumed();
- }
-
- public function isLocal()
- {
- return $this->cache[self::IS_LOCAL];
- }
-
- public function isSeekable()
- {
- return $this->cache[self::SEEKABLE];
- }
-
- public function setSize($size)
- {
- $this->size = $size;
-
- return $this;
- }
-
- public function seek($offset, $whence = SEEK_SET)
- {
- return $this->cache[self::SEEKABLE] ? fseek($this->stream, $offset, $whence) === 0 : false;
- }
-
- public function read($length)
- {
- return fread($this->stream, $length);
- }
-
- public function write($string)
- {
- // We can't know the size after writing anything
- $this->size = null;
-
- return fwrite($this->stream, $string);
- }
-
- public function ftell()
- {
- return ftell($this->stream);
- }
-
- public function rewind()
- {
- return $this->seek(0);
- }
-
- public function readLine($maxLength = null)
- {
- if (!$this->cache[self::IS_READABLE]) {
- return false;
- } else {
- return $maxLength ? fgets($this->getStream(), $maxLength) : fgets($this->getStream());
- }
- }
-
- public function setCustomData($key, $value)
- {
- $this->customData[$key] = $value;
-
- return $this;
- }
-
- public function getCustomData($key)
- {
- return isset($this->customData[$key]) ? $this->customData[$key] : null;
- }
-
- /**
- * Reprocess stream metadata
- */
- protected function rebuildCache()
- {
- $this->cache = stream_get_meta_data($this->stream);
- $this->cache[self::IS_LOCAL] = stream_is_local($this->stream);
- $this->cache[self::IS_READABLE] = isset(self::$readWriteHash['read'][$this->cache['mode']]);
- $this->cache[self::IS_WRITABLE] = isset(self::$readWriteHash['write'][$this->cache['mode']]);
- }
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamInterface.php
deleted file mode 100644
index 6d7dc37613c..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamInterface.php
+++ /dev/null
@@ -1,218 +0,0 @@
-<?php
-
-namespace Guzzle\Stream;
-
-/**
- * OO interface to PHP streams
- */
-interface StreamInterface
-{
- /**
- * Convert the stream to a string if the stream is readable and the stream is seekable.
- *
- * @return string
- */
- public function __toString();
-
- /**
- * Close the underlying stream
- */
- public function close();
-
- /**
- * Get stream metadata
- *
- * @param string $key Specific metadata to retrieve
- *
- * @return array|mixed|null
- */
- public function getMetaData($key = null);
-
- /**
- * Get the stream resource
- *
- * @return resource
- */
- public function getStream();
-
- /**
- * Set the stream that is wrapped by the object
- *
- * @param resource $stream Stream resource to wrap
- * @param int $size Size of the stream in bytes. Only pass if the size cannot be obtained from the stream.
- *
- * @return self
- */
- public function setStream($stream, $size = null);
-
- /**
- * Detach the current stream resource
- *
- * @return self
- */
- public function detachStream();
-
- /**
- * Get the stream wrapper type
- *
- * @return string
- */
- public function getWrapper();
-
- /**
- * Wrapper specific data attached to this stream.
- *
- * @return array
- */
- public function getWrapperData();
-
- /**
- * Get a label describing the underlying implementation of the stream
- *
- * @return string
- */
- public function getStreamType();
-
- /**
- * Get the URI/filename associated with this stream
- *
- * @return string
- */
- public function getUri();
-
- /**
- * Get the size of the stream if able
- *
- * @return int|bool
- */
- public function getSize();
-
- /**
- * Check if the stream is readable
- *
- * @return bool
- */
- public function isReadable();
-
- /**
- * Check if the stream is repeatable
- *
- * @return bool
- */
- public function isRepeatable();
-
- /**
- * Check if the stream is writable
- *
- * @return bool
- */
- public function isWritable();
-
- /**
- * Check if the stream has been consumed
- *
- * @return bool
- */
- public function isConsumed();
-
- /**
- * Alias of isConsumed
- *
- * @return bool
- */
- public function feof();
-
- /**
- * Check if the stream is a local stream vs a remote stream
- *
- * @return bool
- */
- public function isLocal();
-
- /**
- * Check if the string is repeatable
- *
- * @return bool
- */
- public function isSeekable();
-
- /**
- * Specify the size of the stream in bytes
- *
- * @param int $size Size of the stream contents in bytes
- *
- * @return self
- */
- public function setSize($size);
-
- /**
- * Seek to a position in the stream
- *
- * @param int $offset Stream offset
- * @param int $whence Where the offset is applied
- *
- * @return bool Returns TRUE on success or FALSE on failure
- * @link http://www.php.net/manual/en/function.fseek.php
- */
- public function seek($offset, $whence = SEEK_SET);
-
- /**
- * Read data from the stream
- *
- * @param int $length Up to length number of bytes read.
- *
- * @return string|bool Returns the data read from the stream or FALSE on failure or EOF
- */
- public function read($length);
-
- /**
- * Write data to the stream
- *
- * @param string $string The string that is to be written.
- *
- * @return int|bool Returns the number of bytes written to the stream on success or FALSE on failure.
- */
- public function write($string);
-
- /**
- * Returns the current position of the file read/write pointer
- *
- * @return int|bool Returns the position of the file pointer or false on error
- */
- public function ftell();
-
- /**
- * Rewind to the beginning of the stream
- *
- * @return bool Returns true on success or false on failure
- */
- public function rewind();
-
- /**
- * Read a line from the stream up to the maximum allowed buffer length
- *
- * @param int $maxLength Maximum buffer length
- *
- * @return string|bool
- */
- public function readLine($maxLength = null);
-
- /**
- * Set custom data on the stream
- *
- * @param string $key Key to set
- * @param mixed $value Value to set
- *
- * @return self
- */
- public function setCustomData($key, $value);
-
- /**
- * Get custom data from the stream
- *
- * @param string $key Key to retrieve
- *
- * @return null|mixed
- */
- public function getCustomData($key);
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamRequestFactoryInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamRequestFactoryInterface.php
deleted file mode 100644
index d00e622e1d4..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/StreamRequestFactoryInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Guzzle\Stream;
-
-use Guzzle\Http\Message\RequestInterface;
-
-/**
- * Interface used for creating streams from requests
- */
-interface StreamRequestFactoryInterface
-{
- /**
- * Create a stream based on a request object
- *
- * @param RequestInterface $request Base the stream on a request
- * @param array|resource $context A stream_context_options resource or array of parameters used to create a
- * stream context.
- * @param array $params Optional array of parameters specific to the factory
- *
- * @return StreamInterface Returns a stream object
- * @throws \Guzzle\Common\Exception\RuntimeException if the stream cannot be opened or an error occurs
- */
- public function fromRequest(RequestInterface $request, $context = array(), array $params = array());
-}
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/composer.json b/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/composer.json
deleted file mode 100644
index 9c19d2bd17a..00000000000
--- a/apps/files_external/3rdparty/aws-sdk-php/Guzzle/Stream/composer.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "guzzle/stream",
- "description": "Guzzle stream wrapper component",
- "homepage": "http://guzzlephp.org/",
- "keywords": ["stream", "component", "guzzle"],
- "license": "MIT",
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "require": {
- "php": ">=5.3.2",
- "guzzle/common": "self.version"
- },
- "suggest": {
- "guzzle/http": "To convert Guzzle request objects to PHP streams"
- },
- "autoload": {
- "psr-0": { "Guzzle\\Stream": "" }
- },
- "target-dir": "Guzzle/Stream",
- "extra": {
- "branch-alias": {
- "dev-master": "3.7-dev"
- }
- }
-}