From 261607e1d352334d9072ffd1972f3b4917330b66 Mon Sep 17 00:00:00 2001 From: Milos Stojanovic Date: Thu, 13 Jun 2019 18:52:40 +0200 Subject: [PATCH] initial commit --- .env.local | 1 + .env.production | 1 + .eslintignore | 1 + .eslintrc | 0 .gitignore | 31 + .php_cs | 17 + LICENSE | 19 + README.md | 66 + babel.config.js | 5 + backend/App.php | 45 + backend/Config/Config.php | 42 + backend/Container/Container.php | 17 + backend/Container/ContainerInterface.php | 20 + backend/Controllers/AdminController.php | 119 + backend/Controllers/AuthController.php | 76 + backend/Controllers/DownloadController.php | 133 + backend/Controllers/ErrorController.php | 34 + backend/Controllers/FileController.php | 173 + backend/Controllers/UploadController.php | 119 + backend/Controllers/ViewController.php | 28 + backend/Controllers/routes.php | 259 + backend/Kernel/Request.php | 55 + backend/Kernel/Response.php | 51 + backend/Kernel/StreamedResponse.php | 17 + .../Archiver/Adapters/ZipArchiver.php | 145 + .../Services/Archiver/ArchiverInterface.php | 28 + backend/Services/Auth/Adapters/Database.php | 185 + backend/Services/Auth/Adapters/JsonFile.php | 201 + backend/Services/Auth/AuthInterface.php | 34 + backend/Services/Auth/User.php | 158 + backend/Services/Auth/UsersCollection.php | 23 + backend/Services/Cors/Cors.php | 48 + .../Services/Logger/Adapters/MonoLogger.php | 39 + backend/Services/Logger/LoggerInterface.php | 16 + backend/Services/Router/Router.php | 87 + backend/Services/Security/Security.php | 79 + backend/Services/Service.php | 16 + .../Session/Adapters/SessionStorage.php | 74 + backend/Services/Session/Session.php | 17 + .../Session/SessionStorageInterface.php | 22 + .../Services/Storage/DirectoryCollection.php | 57 + backend/Services/Storage/Filesystem.php | 287 + backend/Services/Tmpfs/Adapters/Tmpfs.php | 136 + backend/Services/Tmpfs/TmpfsInterface.php | 30 + backend/Services/View/Adapters/Vuejs.php | 57 + backend/Services/View/ViewInterface.php | 16 + backend/Utils/Collection.php | 58 + backend/Utils/PasswordHash.php | 33 + composer.json | 39 + composer.lock | 5669 +++++ configuration_sample.php | 149 + cypress.json | 3 + database/sessions.sql | 8 + database/users.sql | 16 + dist/favicon.ico | Bin 0 -> 1150 bytes dist/fonts/fa-brands-400.eot | Bin 0 -> 129648 bytes dist/fonts/fa-brands-400.ttf | Bin 0 -> 129344 bytes dist/fonts/fa-brands-400.woff | Bin 0 -> 87544 bytes dist/fonts/fa-brands-400.woff2 | Bin 0 -> 74656 bytes dist/fonts/fa-regular-400.eot | Bin 0 -> 34388 bytes dist/fonts/fa-regular-400.ttf | Bin 0 -> 34092 bytes dist/fonts/fa-regular-400.woff | Bin 0 -> 16804 bytes dist/fonts/fa-regular-400.woff2 | Bin 0 -> 13584 bytes dist/fonts/fa-solid-900.eot | Bin 0 -> 186708 bytes dist/fonts/fa-solid-900.ttf | Bin 0 -> 186424 bytes dist/fonts/fa-solid-900.woff | Bin 0 -> 96256 bytes dist/fonts/fa-solid-900.woff2 | Bin 0 -> 74328 bytes dist/img/fa-brands-400.svg | 3452 ++++ dist/img/fa-regular-400.svg | 803 + dist/img/fa-solid-900.svg | 4527 ++++ dist/img/icons/android-chrome-192x192.png | Bin 0 -> 9416 bytes dist/img/icons/android-chrome-512x512.png | Bin 0 -> 29808 bytes dist/img/icons/apple-touch-icon-120x120.png | Bin 0 -> 3369 bytes dist/img/icons/apple-touch-icon-152x152.png | Bin 0 -> 4046 bytes dist/img/icons/apple-touch-icon-180x180.png | Bin 0 -> 4678 bytes dist/img/icons/apple-touch-icon-60x60.png | Bin 0 -> 1491 bytes dist/img/icons/apple-touch-icon-76x76.png | Bin 0 -> 1823 bytes dist/img/icons/apple-touch-icon.png | Bin 0 -> 4678 bytes dist/img/icons/favicon-16x16.png | Bin 0 -> 799 bytes dist/img/icons/favicon-32x32.png | Bin 0 -> 1271 bytes dist/img/icons/msapplication-icon-144x144.png | Bin 0 -> 1169 bytes dist/img/icons/mstile-150x150.png | Bin 0 -> 4282 bytes dist/img/icons/safari-pinned-tab.svg | 149 + dist/img/logo.png | Bin 0 -> 13638 bytes dist/index.php | 32 + dist/manifest.json | 20 + dist/robots.txt | 6 + dist/service-worker.js | 29 + frontend/App.vue | 94 + frontend/api/api.js | 195 + frontend/assets/logo.png | Bin 0 -> 13638 bytes frontend/main.js | 64 + frontend/mixins/shared.js | 102 + frontend/registerServiceWorker.js | 32 + frontend/router.js | 34 + frontend/store.js | 99 + frontend/translations/english.js | 77 + frontend/views/Browser.vue | 568 + frontend/views/Login.vue | 95 + frontend/views/Users.vue | 146 + frontend/views/partials/Menu.vue | 111 + frontend/views/partials/Pagination.vue | 20 + frontend/views/partials/Profile.vue | 63 + frontend/views/partials/Tree.vue | 37 + frontend/views/partials/TreeNode.vue | 78 + frontend/views/partials/Upload.vue | 192 + frontend/views/partials/UserEdit.vue | 206 + index.php | 15 + jest.config.js | 26 + package-lock.json | 17058 ++++++++++++++++ package.json | 39 + phpunit.xml | 45 + postcss.config.js | 5 + private/.gitignore | 2 + private/.htaccess | 1 + private/logs/.gitignore | 2 + private/sessions/.gitignore | 2 + private/users.json.blank | 1 + repository/.gitignore | 2 + robots.txt | 6 + tests/backend/FakeResponse.php | 21 + tests/backend/FakeStreamedResponse.php | 21 + tests/backend/Feature/AdminTest.php | 221 + tests/backend/Feature/AppTest.php | 74 + tests/backend/Feature/AuthTest.php | 145 + tests/backend/Feature/FeatureTest.php | 62 + tests/backend/Feature/FilesTest.php | 574 + tests/backend/Feature/UploadTest.php | 303 + tests/backend/MockUsers.php | 72 + tests/backend/TestCase.php | 136 + tests/backend/TestResponse.php | 159 + tests/backend/Unit/ArchiverTest.php | 132 + tests/backend/Unit/Auth/AuthTest.php | 226 + tests/backend/Unit/Auth/DatabaseAuthTest.php | 58 + tests/backend/Unit/Auth/JsonAuthTest.php | 50 + tests/backend/Unit/CollectionTest.php | 115 + tests/backend/Unit/ConfigTest.php | 45 + tests/backend/Unit/FilesystemTest.php | 747 + tests/backend/Unit/MainTest.php | 61 + tests/backend/Unit/RequestTest.php | 141 + tests/backend/Unit/RouterTest.php | 172 + tests/backend/Unit/SessionStorageTest.php | 62 + tests/backend/Unit/TmpfsTest.php | 146 + tests/backend/Unit/UserTest.php | 173 + tests/backend/Unit/ViewTest.php | 31 + tests/backend/configuration.php | 79 + tests/backend/testroutes.php | 44 + tests/backend/tmp/.gitignore | 3 + tests/backend/tmp/testarchive.zip | Bin 0 -> 903 bytes tests/frontend/.browserslistrc | 3 + tests/frontend/.eslintrc.js | 17 + tests/frontend/.gitignore | 0 tests/frontend/e2e/.eslintrc.js | 12 + tests/frontend/e2e/plugins/index.js | 24 + tests/frontend/e2e/specs/test.js | 8 + tests/frontend/e2e/support/commands.js | 25 + tests/frontend/e2e/support/index.js | 20 + tests/frontend/unit/.eslintrc.js | 5 + tests/frontend/unit/example.spec.js | 12 + vue.config.js | 11 + 160 files changed, 41704 insertions(+) create mode 100644 .env.local create mode 100644 .env.production create mode 100644 .eslintignore create mode 100644 .eslintrc create mode 100644 .gitignore create mode 100644 .php_cs create mode 100644 LICENSE create mode 100644 README.md create mode 100644 babel.config.js create mode 100644 backend/App.php create mode 100644 backend/Config/Config.php create mode 100644 backend/Container/Container.php create mode 100644 backend/Container/ContainerInterface.php create mode 100644 backend/Controllers/AdminController.php create mode 100644 backend/Controllers/AuthController.php create mode 100644 backend/Controllers/DownloadController.php create mode 100644 backend/Controllers/ErrorController.php create mode 100644 backend/Controllers/FileController.php create mode 100644 backend/Controllers/UploadController.php create mode 100644 backend/Controllers/ViewController.php create mode 100644 backend/Controllers/routes.php create mode 100644 backend/Kernel/Request.php create mode 100644 backend/Kernel/Response.php create mode 100644 backend/Kernel/StreamedResponse.php create mode 100644 backend/Services/Archiver/Adapters/ZipArchiver.php create mode 100644 backend/Services/Archiver/ArchiverInterface.php create mode 100644 backend/Services/Auth/Adapters/Database.php create mode 100644 backend/Services/Auth/Adapters/JsonFile.php create mode 100644 backend/Services/Auth/AuthInterface.php create mode 100644 backend/Services/Auth/User.php create mode 100644 backend/Services/Auth/UsersCollection.php create mode 100644 backend/Services/Cors/Cors.php create mode 100644 backend/Services/Logger/Adapters/MonoLogger.php create mode 100644 backend/Services/Logger/LoggerInterface.php create mode 100644 backend/Services/Router/Router.php create mode 100644 backend/Services/Security/Security.php create mode 100644 backend/Services/Service.php create mode 100644 backend/Services/Session/Adapters/SessionStorage.php create mode 100644 backend/Services/Session/Session.php create mode 100644 backend/Services/Session/SessionStorageInterface.php create mode 100644 backend/Services/Storage/DirectoryCollection.php create mode 100644 backend/Services/Storage/Filesystem.php create mode 100644 backend/Services/Tmpfs/Adapters/Tmpfs.php create mode 100644 backend/Services/Tmpfs/TmpfsInterface.php create mode 100644 backend/Services/View/Adapters/Vuejs.php create mode 100644 backend/Services/View/ViewInterface.php create mode 100644 backend/Utils/Collection.php create mode 100644 backend/Utils/PasswordHash.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 configuration_sample.php create mode 100644 cypress.json create mode 100644 database/sessions.sql create mode 100644 database/users.sql create mode 100644 dist/favicon.ico create mode 100644 dist/fonts/fa-brands-400.eot create mode 100644 dist/fonts/fa-brands-400.ttf create mode 100644 dist/fonts/fa-brands-400.woff create mode 100644 dist/fonts/fa-brands-400.woff2 create mode 100644 dist/fonts/fa-regular-400.eot create mode 100644 dist/fonts/fa-regular-400.ttf create mode 100644 dist/fonts/fa-regular-400.woff create mode 100644 dist/fonts/fa-regular-400.woff2 create mode 100644 dist/fonts/fa-solid-900.eot create mode 100644 dist/fonts/fa-solid-900.ttf create mode 100644 dist/fonts/fa-solid-900.woff create mode 100644 dist/fonts/fa-solid-900.woff2 create mode 100644 dist/img/fa-brands-400.svg create mode 100644 dist/img/fa-regular-400.svg create mode 100644 dist/img/fa-solid-900.svg create mode 100644 dist/img/icons/android-chrome-192x192.png create mode 100644 dist/img/icons/android-chrome-512x512.png create mode 100644 dist/img/icons/apple-touch-icon-120x120.png create mode 100644 dist/img/icons/apple-touch-icon-152x152.png create mode 100644 dist/img/icons/apple-touch-icon-180x180.png create mode 100644 dist/img/icons/apple-touch-icon-60x60.png create mode 100644 dist/img/icons/apple-touch-icon-76x76.png create mode 100644 dist/img/icons/apple-touch-icon.png create mode 100644 dist/img/icons/favicon-16x16.png create mode 100644 dist/img/icons/favicon-32x32.png create mode 100644 dist/img/icons/msapplication-icon-144x144.png create mode 100644 dist/img/icons/mstile-150x150.png create mode 100644 dist/img/icons/safari-pinned-tab.svg create mode 100644 dist/img/logo.png create mode 100644 dist/index.php create mode 100644 dist/manifest.json create mode 100644 dist/robots.txt create mode 100644 dist/service-worker.js create mode 100644 frontend/App.vue create mode 100644 frontend/api/api.js create mode 100644 frontend/assets/logo.png create mode 100644 frontend/main.js create mode 100644 frontend/mixins/shared.js create mode 100644 frontend/registerServiceWorker.js create mode 100644 frontend/router.js create mode 100644 frontend/store.js create mode 100644 frontend/translations/english.js create mode 100644 frontend/views/Browser.vue create mode 100644 frontend/views/Login.vue create mode 100644 frontend/views/Users.vue create mode 100644 frontend/views/partials/Menu.vue create mode 100644 frontend/views/partials/Pagination.vue create mode 100644 frontend/views/partials/Profile.vue create mode 100644 frontend/views/partials/Tree.vue create mode 100644 frontend/views/partials/TreeNode.vue create mode 100644 frontend/views/partials/Upload.vue create mode 100644 frontend/views/partials/UserEdit.vue create mode 100644 index.php create mode 100644 jest.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 postcss.config.js create mode 100755 private/.gitignore create mode 100755 private/.htaccess create mode 100755 private/logs/.gitignore create mode 100755 private/sessions/.gitignore create mode 100755 private/users.json.blank create mode 100755 repository/.gitignore create mode 100644 robots.txt create mode 100644 tests/backend/FakeResponse.php create mode 100644 tests/backend/FakeStreamedResponse.php create mode 100644 tests/backend/Feature/AdminTest.php create mode 100644 tests/backend/Feature/AppTest.php create mode 100644 tests/backend/Feature/AuthTest.php create mode 100644 tests/backend/Feature/FeatureTest.php create mode 100644 tests/backend/Feature/FilesTest.php create mode 100644 tests/backend/Feature/UploadTest.php create mode 100644 tests/backend/MockUsers.php create mode 100644 tests/backend/TestCase.php create mode 100644 tests/backend/TestResponse.php create mode 100644 tests/backend/Unit/ArchiverTest.php create mode 100644 tests/backend/Unit/Auth/AuthTest.php create mode 100644 tests/backend/Unit/Auth/DatabaseAuthTest.php create mode 100644 tests/backend/Unit/Auth/JsonAuthTest.php create mode 100644 tests/backend/Unit/CollectionTest.php create mode 100644 tests/backend/Unit/ConfigTest.php create mode 100644 tests/backend/Unit/FilesystemTest.php create mode 100644 tests/backend/Unit/MainTest.php create mode 100644 tests/backend/Unit/RequestTest.php create mode 100644 tests/backend/Unit/RouterTest.php create mode 100644 tests/backend/Unit/SessionStorageTest.php create mode 100644 tests/backend/Unit/TmpfsTest.php create mode 100644 tests/backend/Unit/UserTest.php create mode 100644 tests/backend/Unit/ViewTest.php create mode 100644 tests/backend/configuration.php create mode 100644 tests/backend/testroutes.php create mode 100755 tests/backend/tmp/.gitignore create mode 100644 tests/backend/tmp/testarchive.zip create mode 100644 tests/frontend/.browserslistrc create mode 100644 tests/frontend/.eslintrc.js create mode 100644 tests/frontend/.gitignore create mode 100644 tests/frontend/e2e/.eslintrc.js create mode 100644 tests/frontend/e2e/plugins/index.js create mode 100644 tests/frontend/e2e/specs/test.js create mode 100644 tests/frontend/e2e/support/commands.js create mode 100644 tests/frontend/e2e/support/index.js create mode 100644 tests/frontend/unit/.eslintrc.js create mode 100644 tests/frontend/unit/example.spec.js create mode 100644 vue.config.js diff --git a/.env.local b/.env.local new file mode 100644 index 0000000..446d02e --- /dev/null +++ b/.env.local @@ -0,0 +1 @@ +VUE_APP_API_ENDPOINT='http://localhost:8081/?r=' diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..ccd9c35 --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +VUE_APP_API_ENDPOINT= diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..5320fa9 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +frontend/* diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79c4aac --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +/node_modules +/vendor +/dist/css +/dist/js +/dist/main.html + +/configuration.php + +/tests/backend/coverage +/tests/backend/tmp/repository/* +/tests/frontend/e2e/videos/ +/tests/frontend/e2e/screenshots/ + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Cache files +.*.cache + +# Editor directories and files +.DS_Store +tags +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/.php_cs b/.php_cs new file mode 100644 index 0000000..c5a5a01 --- /dev/null +++ b/.php_cs @@ -0,0 +1,17 @@ +exclude('vendor') + ->in(__DIR__) +; + +return PhpCsFixer\Config::create() + ->setUsingCache(false) + ->setRules([ + '@PhpCsFixer' => true, + 'yoda_style' => null, + 'not_operator_with_successor_space' => true, + 'php_unit_test_class_requires_covers' => false, + ]) + ->setFinder($finder) +; diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..22cba4e --- /dev/null +++ b/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2012-2019 Milos Stojanovic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..56d487c --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +

+ +## FileGator - Powerful Multi-User File Manager +Copy, move, rename, create, edit or delete online files and folders. +Upload with drag&drop, progress bar, pause and resume. +Download multiple files or directories at once. +Zip and unzip files and folders. +Create users with different access permissions and home directories for each user. + +## Features & Goals +- Multiple storage adapters (using Flysystem) +- Multiple auth adapters with roles and permissions +- Multiple session adapters (file, database) +- Single page front-end (built with Vuejs) +- Chunked uploads (via Resumable.js) +- Zip and bulk download support +- Highly extensible, decoupled and tested code +- Framework free + + +## Requirements +- PHP 7.1.3 + + +## Download precompiled build +https://github.com/filegator/static/raw/master/builds/filegator_v7.0.0-RC1.zip + +- Unzip files and upload them to your PHP server +- Make sure you webserver can read and write to /storage and /private folders +- Set the website document root to /dist directory +- Visit web page, if something goes wrong check /private/logs/app.log +- Login with default credentials admin/admin123 +- Change default admin's password +- Adjust configuration.php + + +## Project setup for development +``` +git clone git@github.com:filegator/filegator.git +cd filegator +cp configuration_sample.php configuration.php +sudo chmod -R 777 private/ +sudo chmod -R 777 repository/ +composer install +npm install +npm run build +``` + +### Compiles and hot-reloads (backend and frontend on ports 8081 and 8080) +``` +npm run serve +``` +Visit http://localhost:8080 + + +### Run tests +``` +vendor/bin/phpunit +``` + +### Deployment +Set the website document root to /dist directory + +## Security +If you discover any security related issues, please email alcalbg@gmail.com instead of using the issue tracker. + diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..ba17966 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/app' + ] +} diff --git a/backend/App.php b/backend/App.php new file mode 100644 index 0000000..9bb94fa --- /dev/null +++ b/backend/App.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator; + +use Filegator\Config\Config; +use Filegator\Container\Container; +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Kernel\StreamedResponse; + +class App +{ + private $container; + + public function __construct(Config $config, Request $request, Response $response, StreamedResponse $sresponse, Container $container) + { + $container->set(Config::class, $config); + $container->set(Container::class, $container); + $container->set(Request::class, $request); + $container->set(Response::class, $response); + $container->set(StreamedResponse::class, $sresponse); + + foreach ($config->get('services', []) as $key => $service) { + $container->set($key, $container->get($service['handler'])); + $container->get($key)->init(isset($service['config']) ? $service['config'] : []); + } + + $response->send($request); + + $this->container = $container; + } + + public function resolve($name) + { + return $this->container->get($name); + } +} diff --git a/backend/Config/Config.php b/backend/Config/Config.php new file mode 100644 index 0000000..91e30ab --- /dev/null +++ b/backend/Config/Config.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Config; + +class Config +{ + protected $config; + + public function __construct(array $config = []) + { + $this->config = $config; + } + + public function get($key = null, $default = null) + { + if (is_null($key)) { + return $this->config; + } + + $key = is_array($key) ? $key : explode('.', $key); + + $target = $this->config; + + while (! is_null($segment = array_shift($key))) { + if (is_array($target) && array_key_exists($segment, $target)) { + $target = $target[$segment]; + } else { + return $default; + } + } + + return $target; + } +} diff --git a/backend/Container/Container.php b/backend/Container/Container.php new file mode 100644 index 0000000..91b81ff --- /dev/null +++ b/backend/Container/Container.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Container; + +use DI\Container as PHPDIContainer; + +class Container extends PHPDIContainer implements ContainerInterface +{ +} diff --git a/backend/Container/ContainerInterface.php b/backend/Container/ContainerInterface.php new file mode 100644 index 0000000..17bc5c2 --- /dev/null +++ b/backend/Container/ContainerInterface.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Container; + +interface ContainerInterface +{ + public function get($name); + + public function set(string $name, $value); + + public function call($callable, array $parameters = []); +} diff --git a/backend/Controllers/AdminController.php b/backend/Controllers/AdminController.php new file mode 100644 index 0000000..c4e8b9d --- /dev/null +++ b/backend/Controllers/AdminController.php @@ -0,0 +1,119 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Controllers; + +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Auth\User; +use Filegator\Services\Storage\Filesystem; +use Rakit\Validation\Validator; + +class AdminController +{ + protected $auth; + + protected $storage; + + public function __construct(AuthInterface $auth, Filesystem $storage) + { + $this->auth = $auth; + $this->storage = $storage; + } + + public function listUsers(Request $request, Response $response) + { + return $response->json($this->auth->allUsers()); + } + + public function storeUser(User $user, Request $request, Response $response, Validator $validator) + { + $validator->setMessage('required', 'This field is required'); + $validation = $validator->validate($request->all(), [ + 'name' => 'required', + 'username' => 'required', + 'homedir' => 'required', + 'password' => 'required', + ]); + + if ($validation->fails()) { + $errors = $validation->errors(); + + return $response->json($errors->firstOfAll(), 422); + } + + if ($this->auth->find($request->input('username'))) { + return $response->json(['username' => 'Username already taken'], 422); + } + + try { + $user->setName($request->input('name')); + $user->setUsername($request->input('username')); + $user->setHomedir($request->input('homedir')); + $user->setRole($request->input('role', 'user')); + $user->setPermissions($request->input('permissions')); + $ret = $this->auth->add($user, $request->input('password')); + } catch (\Exception $e) { + return $response->json($e->getMessage(), 422); + } + + return $response->json($ret); + } + + public function updateUser($username, Request $request, Response $response, Validator $validator) + { + $user = $this->auth->find($username); + + if (! $user) { + return $response->json('User not found', 422); + } + + $validator->setMessage('required', 'This field is required'); + $validation = $validator->validate($request->all(), [ + 'name' => 'required', + 'username' => 'required', + 'homedir' => 'required', + ]); + + if ($validation->fails()) { + $errors = $validation->errors(); + + return $response->json($errors->firstOfAll(), 422); + } + + if ($username != $request->input('username') && $this->auth->find($request->input('username'))) { + return $response->json(['username' => 'Username already taken'], 422); + } + + try { + $user->setName($request->input('name')); + $user->setUsername($request->input('username')); + $user->setHomedir($request->input('homedir')); + $user->setRole($request->input('role', 'user')); + $user->setPermissions($request->input('permissions')); + + return $response->json($this->auth->update($username, $user, $request->input('password', ''))); + } catch (\Exception $e) { + return $response->json($e->getMessage(), 422); + } + } + + public function deleteUser($username, Request $request, Response $response) + { + $user = $this->auth->find($username); + + if (! $user) { + return $response->json('User not found', 422); + } + + return $response->json($this->auth->delete($user)); + } +} diff --git a/backend/Controllers/AuthController.php b/backend/Controllers/AuthController.php new file mode 100644 index 0000000..de248a5 --- /dev/null +++ b/backend/Controllers/AuthController.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Controllers; + +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Logger\LoggerInterface; +use Rakit\Validation\Validator; + +class AuthController +{ + protected $logger; + + public function __construct(LoggerInterface $logger) + { + $this->logger = $logger; + } + + public function login(Request $request, Response $response, AuthInterface $auth) + { + $username = $request->input('username'); + $password = $request->input('password'); + + if ($auth->authenticate($username, $password)) { + $this->logger->log("Logged in {$username} from IP ".$request->getClientIp()); + + return $response->json($auth->user()); + } + + $this->logger->log("Login failed for {$username} from IP ".$request->getClientIp()); + + return $response->json('Login failed, please try again', 422); + } + + public function logout(Response $response, AuthInterface $auth) + { + return $response->json($auth->forget()); + } + + public function getUser(Response $response, AuthInterface $auth) + { + $user = $auth->user() ?: $auth->getGuest(); + + return $response->json($user); + } + + public function changePassword(Request $request, Response $response, AuthInterface $auth, Validator $validator) + { + $validator->setMessage('required', 'This field is required'); + $validation = $validator->validate($request->all(), [ + 'oldpassword' => 'required', + 'newpassword' => 'required', + ]); + + if ($validation->fails()) { + $errors = $validation->errors(); + + return $response->json($errors->firstOfAll(), 422); + } + + if (! $auth->authenticate($auth->user()->getUsername(), $request->input('oldpassword'))) { + return $response->json(['oldpassword' => 'Wrong password'], 422); + } + + return $response->json($auth->update($auth->user()->getUsername(), $auth->user(), $request->input('newpassword'))); + } +} diff --git a/backend/Controllers/DownloadController.php b/backend/Controllers/DownloadController.php new file mode 100644 index 0000000..b00f175 --- /dev/null +++ b/backend/Controllers/DownloadController.php @@ -0,0 +1,133 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Controllers; + +use Filegator\Config\Config; +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Kernel\StreamedResponse; +use Filegator\Services\Archiver\ArchiverInterface; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Session\SessionStorageInterface as Session; +use Filegator\Services\Storage\Filesystem; +use Filegator\Services\Tmpfs\TmpfsInterface; +use Symfony\Component\HttpFoundation\HeaderUtils; + +class DownloadController +{ + protected $auth; + + protected $session; + + protected $config; + + protected $storage; + + public function __construct(Config $config, Session $session, AuthInterface $auth, Filesystem $storage) + { + $this->session = $session; + $this->config = $config; + $this->auth = $auth; + + $user = $this->auth->user() ?: $this->auth->getGuest(); + + $this->storage = $storage; + $this->storage->setPathPrefix($user->getHomeDir()); + } + + public function download($path_encoded, Request $request, Response $response, StreamedResponse $streamedResponse) + { + try { + $file = $this->storage->readStream(base64_decode($path_encoded)); + } catch (\Exception $e) { + return $response->redirect('/'); + } + + $streamedResponse->setCallback(function () use ($file) { + // @codeCoverageIgnoreStart + set_time_limit(0); + if ($file['stream']) { + while (! feof($file['stream'])) { + echo fread($file['stream'], 1024 * 8); + ob_flush(); + flush(); + } + fclose($file['stream']); + } + // @codeCoverageIgnoreEnd + }); + + $streamedResponse->headers->set( + 'Content-Disposition', + HeaderUtils::makeDisposition(HeaderUtils::DISPOSITION_ATTACHMENT, $file['filename']) + ); + + // close session so we can continue streaming, note: dev is single-threaded + $this->session->save(); + + $streamedResponse->send(); + } + + public function batchDownloadCreate(Request $request, Response $response, ArchiverInterface $archiver) + { + $items = $request->input('items', []); + + $uniqid = $archiver->createArchive($this->storage); + + // close session + $this->session->save(); + + foreach ($items as $item) { + if ($item->type == 'dir') { + $archiver->addDirectoryFromStorage($item->path); + } + if ($item->type == 'file') { + $archiver->addFileFromStorage($item->path); + } + } + + $archiver->closeArchive(); + + return $response->json(['uniqid' => $uniqid]); + } + + public function batchDownloadStart(Request $request, StreamedResponse $streamedResponse, TmpfsInterface $tmpfs) + { + $uniqid = preg_replace('/[^0-9a-zA-Z_]/', '', $request->input('uniqid')); + + $streamedResponse->setCallback(function () use ($tmpfs, $uniqid) { + // @codeCoverageIgnoreStart + set_time_limit(0); + $tmp_file = $tmpfs->readStream($uniqid); + while (! feof($tmp_file['stream'])) { + echo fread($tmp_file['stream'], 1024 * 8); + ob_flush(); + flush(); + } + fclose($tmp_file['stream']); + $tmpfs->remove($uniqid); + // @codeCoverageIgnoreEnd + }); + + $streamedResponse->headers->set( + 'Content-Disposition', + HeaderUtils::makeDisposition( + HeaderUtils::DISPOSITION_ATTACHMENT, + $this->config->get('frontend_config.default_archive_name') + ) + ); + + // close session so we can continue streaming, note: dev is single-threaded + $this->session->save(); + + $streamedResponse->send(); + } +} diff --git a/backend/Controllers/ErrorController.php b/backend/Controllers/ErrorController.php new file mode 100644 index 0000000..e938d3d --- /dev/null +++ b/backend/Controllers/ErrorController.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Controllers; + +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; + +class ErrorController +{ + protected $request_type; + + public function __construct(Request $request) + { + $this->request_type = $request->getContentType(); + } + + public function notFound(Response $response) + { + return $this->request_type == 'json' ? $response->json('Not Found', 404) : $response->html('Not Found', 404); + } + + public function methodNotAllowed(Response $response) + { + return $this->request_type == 'json' ? $response->json('Not Allowed', 401) : $response->html('Not Found', 401); + } +} diff --git a/backend/Controllers/FileController.php b/backend/Controllers/FileController.php new file mode 100644 index 0000000..0910a59 --- /dev/null +++ b/backend/Controllers/FileController.php @@ -0,0 +1,173 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Controllers; + +use Filegator\Config\Config; +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Archiver\ArchiverInterface; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Session\SessionStorageInterface as Session; +use Filegator\Services\Storage\Filesystem; + +class FileController +{ + const SESSION_CWD = 'current_path'; + + protected $session; + + protected $auth; + + protected $config; + + protected $storage; + + protected $separator; + + public function __construct(Config $config, Session $session, AuthInterface $auth, Filesystem $storage) + { + $this->session = $session; + $this->config = $config; + $this->auth = $auth; + + $user = $this->auth->user() ?: $this->auth->getGuest(); + + $this->storage = $storage; + $this->storage->setPathPrefix($user->getHomeDir()); + + $this->separator = $this->storage->getSeparator(); + } + + public function changeDirectory(Request $request, Response $response) + { + $path = $request->input('to', $this->separator); + + $this->session->set(self::SESSION_CWD, $path); + + return $response->json($this->storage->getDirectoryCollection($path)); + } + + public function getDirectory(Request $request, Response $response) + { + $path = $request->input('dir', $this->session->get(self::SESSION_CWD, $this->separator)); + + $content = $this->storage->getDirectoryCollection($path); + + return $response->json($content); + } + + public function createNew(Request $request, Response $response) + { + $type = $request->input('type', 'file'); + $name = $request->input('name'); + $path = $this->session->get(self::SESSION_CWD, $this->separator); + + if ($type == 'dir') { + $this->storage->createDir($path, $request->input('name')); + } + if ($type == 'file') { + $this->storage->createFile($path, $request->input('name')); + } + + return $response->json('Done'); + } + + public function copyItems(Request $request, Response $response) + { + $items = $request->input('items', []); + $destination = $request->input('destination', $this->separator); + + foreach ($items as $item) { + if ($item->type == 'dir') { + $this->storage->copyDir($item->path, $destination); + } + if ($item->type == 'file') { + $this->storage->copyFile($item->path, $destination); + } + } + + return $response->json('Done'); + } + + public function moveItems(Request $request, Response $response) + { + $items = $request->input('items', []); + $destination = $request->input('destination', $this->separator); + + foreach ($items as $item) { + $full_destination = trim($destination, $this->separator) + .$this->separator + .ltrim($item->name, $this->separator); + $this->storage->move($item->path, $full_destination); + } + + return $response->json('Done'); + } + + public function zipItems(Request $request, Response $response, ArchiverInterface $archiver) + { + $items = $request->input('items', []); + $destination = $request->input('destination', $this->separator); + $name = $request->input('name', $this->config->get('frontend_config.default_archive_name')); + + $archiver->createArchive($this->storage); + + foreach ($items as $item) { + if ($item->type == 'dir') { + $archiver->addDirectoryFromStorage($item->path); + } + if ($item->type == 'file') { + $archiver->addFileFromStorage($item->path); + } + } + + $archiver->storeArchive($destination, $name); + + return $response->json('Done'); + } + + public function unzipItem(Request $request, Response $response, ArchiverInterface $archiver) + { + $source = $request->input('item'); + $destination = $request->input('destination', $this->separator); + + $archiver->uncompress($source, $destination, $this->storage); + + return $response->json('Done'); + } + + public function renameItem(Request $request, Response $response) + { + $destination = $request->input('destination', $this->separator); + $from = $request->input('from'); + $to = $request->input('to'); + + $this->storage->rename($destination, $from, $to); + + return $response->json('Done'); + } + + public function deleteItems(Request $request, Response $response) + { + $items = $request->input('items', []); + + foreach ($items as $item) { + if ($item->type == 'dir') { + $this->storage->deleteDir($item->path); + } + if ($item->type == 'file') { + $this->storage->deleteFile($item->path); + } + } + + return $response->json('Done'); + } +} diff --git a/backend/Controllers/UploadController.php b/backend/Controllers/UploadController.php new file mode 100644 index 0000000..3af50ff --- /dev/null +++ b/backend/Controllers/UploadController.php @@ -0,0 +1,119 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Controllers; + +use Filegator\Config\Config; +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Storage\Filesystem; +use Filegator\Services\Tmpfs\TmpfsInterface; + +class UploadController +{ + protected $auth; + + protected $config; + + protected $storage; + + protected $tmpfs; + + public function __construct(Config $config, AuthInterface $auth, Filesystem $storage, TmpfsInterface $tmpfs) + { + $this->config = $config; + $this->auth = $auth; + $this->tmpfs = $tmpfs; + + $user = $this->auth->user() ?: $this->auth->getGuest(); + + $this->storage = $storage; + $this->storage->setPathPrefix($user->getHomeDir()); + } + + public function chunkCheck(Request $request, Response $response) + { + $file_name = $request->input('resumableFilename', 'file'); + $identifier = preg_replace('/[^0-9a-zA-Z_]/', '', $request->input('resumableIdentifier')); + $chunk_number = (int) $request->input('resumableChunkNumber'); + + $chunk_file = 'multipart_'.$identifier.$file_name.'.part'.$chunk_number; + + if ($this->tmpfs->exists($chunk_file)) { + return $response->json('Chunk exists', 200); + } + + return $response->json('Chunk does not exists', 204); + } + + public function upload(Request $request, Response $response) + { + $file_name = $request->input('resumableFilename', 'file'); + $destination = $request->input('resumableRelativePath'); + $chunk_number = (int) $request->input('resumableChunkNumber'); + $total_chunks = (int) $request->input('resumableTotalChunks'); + $total_size = (int) $request->input('resumableTotalSize'); + $identifier = preg_replace('/[^0-9a-zA-Z_]/', '', $request->input('resumableIdentifier')); + + $file = $request->files->get('file'); + + if (! $file || ! $file->isValid() || $file->getSize() > $this->config->get('frontend_config.upload_max_size')) { + return $response->json('Bad file', 422); + } + + $prefix = 'multipart_'.$identifier; + + if ($this->tmpfs->exists($prefix.'_error')) { + return $response->json('Chunk too big', 422); + } + + $stream = fopen($file->getPathName(), 'r'); + + $this->tmpfs->write($prefix.$file_name.'.part'.$chunk_number, $stream); + + // check if all the parts present, and create the final destination file + $chunks_size = 0; + foreach ($this->tmpfs->findAll($prefix.'*') as $chunk) { + $chunks_size += $chunk['size']; + } + + // file too big, cleanup to protect server, set error trap + if ($chunks_size > $this->config->get('frontend_config.upload_max_size')) { + foreach ($this->tmpfs->findAll($prefix.'*') as $tmp_chunk) { + $this->tmpfs->remove($tmp_chunk['name']); + } + $this->tmpfs->write($prefix.'_error', ''); + + return $response->json('Chunk too big', 422); + } + + // if all the chunks are present, create final file and store it + if ($chunks_size >= $total_size) { + for ($i = 1; $i <= $total_chunks; ++$i) { + $part = $this->tmpfs->readStream($prefix.$file_name.'.part'.$i); + $this->tmpfs->write($file_name, $part['stream']); + } + + $final = $this->tmpfs->readStream($file_name); + $res = $this->storage->store($destination, $final['filename'], $final['stream']); + + // cleanup + $this->tmpfs->remove($file_name); + foreach ($this->tmpfs->findAll($prefix.'*') as $expired_chunk) { + $this->tmpfs->remove($expired_chunk['name']); + } + + return $res ? $response->json('Stored') : $response->json('Error storing file'); + } + + return $response->json('Uploaded'); + } +} diff --git a/backend/Controllers/ViewController.php b/backend/Controllers/ViewController.php new file mode 100644 index 0000000..4bbae2d --- /dev/null +++ b/backend/Controllers/ViewController.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Controllers; + +use Filegator\Config\Config; +use Filegator\Kernel\Response; +use Filegator\Services\View\ViewInterface; + +class ViewController +{ + public function index(Response $response, ViewInterface $view) + { + return $response->html($view->getIndexPage()); + } + + public function getFrontendConfig(Response $response, Config $config) + { + return $response->json($config->get('frontend_config')); + } +} diff --git a/backend/Controllers/routes.php b/backend/Controllers/routes.php new file mode 100644 index 0000000..6bcf5dc --- /dev/null +++ b/backend/Controllers/routes.php @@ -0,0 +1,259 @@ + [ + 'GET', '/', '\Filegator\Controllers\ViewController@index', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/login', '\Filegator\Controllers\AuthController@login', + ], + 'roles' => [ + 'guest', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/logout', '\Filegator\Controllers\AuthController@logout', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'GET', '/getuser', '\Filegator\Controllers\AuthController@getUser', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/changepassword', '\Filegator\Controllers\AuthController@changePassword', + ], + 'roles' => [ + 'user', 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'GET', '/getconfig', '\Filegator\Controllers\ViewController@getFrontendConfig', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/changedir', '\Filegator\Controllers\FileController@changeDirectory', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', + ], + ], + [ + 'route' => [ + 'POST', '/getdir', '\Filegator\Controllers\FileController@getDirectory', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', + ], + ], + [ + 'route' => [ + 'POST', '/copyitems', '\Filegator\Controllers\FileController@copyItems', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'write', + ], + ], + [ + 'route' => [ + 'POST', '/moveitems', '\Filegator\Controllers\FileController@moveItems', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'write', + ], + ], + [ + 'route' => [ + 'POST', '/renameitem', '\Filegator\Controllers\FileController@renameItem', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'write', + ], + ], + [ + 'route' => [ + 'POST', '/zipitems', '\Filegator\Controllers\FileController@zipItems', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'write', 'zip', + ], + ], + [ + 'route' => [ + 'POST', '/unzipitem', '\Filegator\Controllers\FileController@unzipItem', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'write', 'zip', + ], + ], + [ + 'route' => [ + 'POST', '/deleteitems', '\Filegator\Controllers\FileController@deleteItems', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'write', + ], + ], + [ + 'route' => [ + 'POST', '/createnew', '\Filegator\Controllers\FileController@createNew', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'write', + ], + ], + [ + 'route' => [ + 'GET', '/upload', '\Filegator\Controllers\UploadController@chunkCheck', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'upload', + ], + ], + [ + 'route' => [ + 'POST', '/upload', '\Filegator\Controllers\UploadController@upload', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'upload', + ], + ], + [ + 'route' => [ + 'GET', '/download/{path_encoded}', '\Filegator\Controllers\DownloadController@download', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'download', + ], + ], + [ + 'route' => [ + 'POST', '/batchdownload', '\Filegator\Controllers\DownloadController@batchDownloadCreate', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'download', 'batchdownload', + ], + ], + [ + 'route' => [ + 'GET', '/batchdownload', '\Filegator\Controllers\DownloadController@batchDownloadStart', + ], + 'roles' => [ + 'guest', 'user', 'admin', + ], + 'permissions' => [ + 'read', 'download', 'batchdownload', + ], + ], + // admins + [ + 'route' => [ + 'GET', '/listusers', '\Filegator\Controllers\AdminController@listUsers', + ], + 'roles' => [ + 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/storeuser', '\Filegator\Controllers\AdminController@storeUser', + ], + 'roles' => [ + 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/updateuser/{username}', '\Filegator\Controllers\AdminController@updateUser', + ], + 'roles' => [ + 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/deleteuser/{username}', '\Filegator\Controllers\AdminController@deleteUser', + ], + 'roles' => [ + 'admin', + ], + 'permissions' => [ + ], + ], +]; diff --git a/backend/Kernel/Request.php b/backend/Kernel/Request.php new file mode 100644 index 0000000..3b9d976 --- /dev/null +++ b/backend/Kernel/Request.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Kernel; + +use Symfony\Component\HttpFoundation\Request as SymfonyRequest; + +class Request extends SymfonyRequest +{ + public function input($key, $default = null) + { + // first try GET, then POST + $value = $this->get($key, $this->query->get($key)); + + // then look into JSON content, fallback to default + if ($value === null) { + $content = json_decode($this->getContent()); + $value = isset($content->{$key}) ? $content->{$key} : $default; + } + + return $value; + } + + public function all() + { + $params = []; + + // first look into JSON content + $content = json_decode($this->getContent()); + if (! empty($content)) { + foreach ($content as $key => $param) { + $params[$key] = $param; + } + } + + // then try (and override) with POST + foreach ($this->request as $key => $param) { + $params[$key] = $param; + } + + // finally try (and override) with GET + foreach ($this->query as $key => $param) { + $params[$key] = $param; + } + + return $params; + } +} diff --git a/backend/Kernel/Response.php b/backend/Kernel/Response.php new file mode 100644 index 0000000..20c3a7d --- /dev/null +++ b/backend/Kernel/Response.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Kernel; + +use Symfony\Component\HttpFoundation\Response as SymfonyResponse; + +class Response extends SymfonyResponse +{ + public function json($content, $status_code = 200) + { + $this->headers->set('Content-Type', 'application/json'); + $this->setStatusCode($status_code); + + $this->setContent(json_encode([ + 'data' => $content, + ])); + } + + public function html($content, $status_code = 200) + { + $this->setStatusCode($status_code); + $this->setContent($content); + } + + public function redirect($url, $status_code = 302) + { + $this->setStatusCode($status_code); + $this->setContent( + sprintf(' + + + + + Redirecting to %1$s + + + Redirecting to %1$s. + +', htmlspecialchars($url, ENT_QUOTES, 'UTF-8')) + ); + $this->headers->set('Location', $url); + } +} diff --git a/backend/Kernel/StreamedResponse.php b/backend/Kernel/StreamedResponse.php new file mode 100644 index 0000000..53a4ed9 --- /dev/null +++ b/backend/Kernel/StreamedResponse.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Kernel; + +use Symfony\Component\HttpFoundation\StreamedResponse as SymfonyStreamedResponse; + +class StreamedResponse extends SymfonyStreamedResponse +{ +} diff --git a/backend/Services/Archiver/Adapters/ZipArchiver.php b/backend/Services/Archiver/Adapters/ZipArchiver.php new file mode 100644 index 0000000..fb4b194 --- /dev/null +++ b/backend/Services/Archiver/Adapters/ZipArchiver.php @@ -0,0 +1,145 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Archiver\Adapters; + +use Filegator\Services\Archiver\ArchiverInterface; +use Filegator\Services\Service; +use Filegator\Services\Storage\Filesystem as Storage; +use Filegator\Services\Tmpfs\TmpfsInterface; +use League\Flysystem\Config as Flyconfig; +use League\Flysystem\Filesystem as Flysystem; +use League\Flysystem\ZipArchive\ZipArchiveAdapter; + +class ZipArchiver implements Service, ArchiverInterface +{ + protected $archive; + + protected $storage; + + protected $tmpfs; + + protected $uniqid; + + protected $tmp_files = []; + + public function __construct(TmpfsInterface $tmpfs) + { + $this->tmpfs = $tmpfs; + } + + public function init(array $config = []) + { + } + + public function createArchive(Storage $storage): string + { + $this->uniqid = uniqid(); + + $this->archive = new Flysystem( + new ZipAdapter($this->tmpfs->getFileLocation($this->uniqid)) + ); + + $this->storage = $storage; + + return $this->uniqid; + } + + public function addDirectoryFromStorage(string $path) + { + $content = $this->storage->getDirectoryCollection($path, true); + $this->archive->createDir($path); + + foreach ($content->all() as $item) { + if ($item['type'] == 'dir') { + $this->archive->createDir($item['path']); + } + if ($item['type'] == 'file') { + $this->addFileFromStorage($item['path']); + } + } + } + + public function addFileFromStorage(string $path) + { + $file_uniqid = uniqid(); + + $file = $this->storage->readStream($path); + + $this->tmpfs->write($file_uniqid, $file['stream']); + + $this->archive->write($path, $this->tmpfs->getFileLocation($file_uniqid)); + + $this->tmp_files[] = $file_uniqid; + } + + public function uncompress(string $source, string $destination, Storage $storage) + { + $name = uniqid().'.zip'; + + $remote_archive = $storage->readStream($source); + $this->tmpfs->write($name, $remote_archive['stream']); + + $archive = new Flysystem( + new ZipAdapter($this->tmpfs->getFileLocation($name)) + ); + + $contents = $archive->listContents('/', true); + + foreach ($contents as $item) { + $stream = $archive->readStream($item['path']); + if ($item['type'] == 'dir') { + $storage->createDir($destination, $item['path'], $stream); + } + if ($item['type'] == 'file') { + $storage->store($destination.'/'.$item['dirname'], $item['basename'], $stream); + } + if (is_resource($stream)) { + fclose($stream); + } + } + + $this->tmpfs->remove($name); + } + + public function closeArchive() + { + $this->archive->getAdapter()->getArchive()->close(); + + foreach ($this->tmp_files as $file) { + $this->tmpfs->remove($file); + } + } + + public function storeArchive($destination, $name) + { + $this->closeArchive(); + + $file = $this->tmpfs->readStream($this->uniqid); + $this->storage->store($destination, $name, $file['stream']); + fclose($file['stream']); + + $this->tmpfs->remove($this->uniqid); + } +} + +class ZipAdapter extends ZipArchiveAdapter +{ + public function write($path, $contents, Flyconfig $config) + { + $location = $this->applyPathPrefix($path); + + // using addFile instead of addFromString + // is more memory efficient + $this->archive->addFile($contents, $location); + + return compact('path', 'contents'); + } +} diff --git a/backend/Services/Archiver/ArchiverInterface.php b/backend/Services/Archiver/ArchiverInterface.php new file mode 100644 index 0000000..fa3576b --- /dev/null +++ b/backend/Services/Archiver/ArchiverInterface.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Archiver; + +use Filegator\Services\Storage\Filesystem; + +interface ArchiverInterface +{ + public function createArchive(Filesystem $storage): string; + + public function uncompress(string $source, string $destination, Filesystem $storage); + + public function addDirectoryFromStorage(string $path); + + public function addFileFromStorage(string $path); + + public function closeArchive(); + + public function storeArchive($destination, $name); +} diff --git a/backend/Services/Auth/Adapters/Database.php b/backend/Services/Auth/Adapters/Database.php new file mode 100644 index 0000000..9680a75 --- /dev/null +++ b/backend/Services/Auth/Adapters/Database.php @@ -0,0 +1,185 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Auth\Adapters; + +use Dibi\Connection; +use Dibi\Row; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Auth\User; +use Filegator\Services\Auth\UsersCollection; +use Filegator\Services\Service; +use Filegator\Services\Session\SessionStorageInterface as Session; +use Filegator\Utils\PasswordHash; + +class Database implements Service, AuthInterface +{ + use PasswordHash; + + const SESSION_KEY = 'database_auth'; + + const GUEST_USERNAME = 'guest'; + + protected $session; + + public function __construct(Session $session) + { + $this->session = $session; + } + + public function init(array $config = []) + { + $this->conn = new Connection($config); + } + + public function getConnection() + { + return $this->conn; + } + + public function user(): ?User + { + return $this->session ? $this->session->get(self::SESSION_KEY, null) : null; + } + + public function authenticate($username, $password): bool + { + $ret = $this->getConnection() + ->fetch('SELECT * FROM users WHERE username = ?', $username) + ; + + if ($ret && $this->verifyPassword($password, $ret->password)) { + $user = $this->mapToUserObject($ret); + $this->store($user); + + return true; + } + + return false; + } + + public function forget() + { + return $this->session->invalidate(); + } + + public function store(User $user) + { + return $this->session->set(self::SESSION_KEY, $user); + } + + public function update($username, User $user, $password = ''): User + { + if (! $this->find($username)) { + throw new \Exception('User not found'); + } + + if ($username != $user->getUsername() && $this->find($user->getUsername())) { + throw new \Exception('Username already taken'); + } + + $this->getConnection()->query('UPDATE users SET', [ + 'username' => $user->getUsername(), + 'name' => $user->getName(), + 'homedir' => $user->getHomeDir(), + 'permissions' => $user->getPermissions(true), + 'role' => $user->getRole(), + ], 'WHERE username = ?', $username); + + if ($password) { + $this->getConnection()->query('UPDATE users SET', [ + 'password' => $this->hashPassword($password), + ], 'WHERE username = ?', $username); + } + + return $this->find($user->getUsername()); + } + + public function add(User $user, $password): User + { + if ($this->find($user->getUsername())) { + throw new \Exception('Username already taken'); + } + + $this->getConnection()->query('INSERT INTO users', [ + 'username' => $user->getUsername(), + 'name' => $user->getName(), + 'role' => $user->getRole(), + 'homedir' => $user->getHomeDir(), + 'permissions' => $user->getPermissions(true), + 'password' => $this->hashPassword($password), + ]); + + return $this->find($user->getUsername()); + } + + public function delete(User $user) + { + if (! $this->find($user->getUsername())) { + throw new \Exception('User not found'); + } + + $this->getConnection()->query('DELETE FROM users WHERE username = ?', $user->getUsername()); + + return true; + } + + public function find($username): ?User + { + $row = $this->getConnection() + ->fetch('SELECT * FROM users WHERE username = ?', $username) + ; + + if ($row) { + return $this->mapToUserObject($row); + } + + return null; + } + + public function getGuest(): User + { + $guest = $this->find(self::GUEST_USERNAME); + + if (! $guest || ! $guest->isGuest()) { + throw new \Exception('No guest account'); + } + + return $guest; + } + + public function allUsers(): UsersCollection + { + $users = new UsersCollection(); + + $rows = $this->getConnection() + ->fetchAll('SELECT * FROM users') + ; + + foreach ($rows as $user) { + $users->addUser($this->mapToUserObject($user)); + } + + return $users; + } + + protected function mapToUserObject(Row $user): User + { + $new = new User(); + + $new->setRole($user->role); + $new->setHomedir($user->homedir); + $new->setPermissions($user->permissions, true); + $new->setUsername($user->username); + $new->setName($user->name); + + return $new; + } +} diff --git a/backend/Services/Auth/Adapters/JsonFile.php b/backend/Services/Auth/Adapters/JsonFile.php new file mode 100644 index 0000000..f618278 --- /dev/null +++ b/backend/Services/Auth/Adapters/JsonFile.php @@ -0,0 +1,201 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Auth\Adapters; + +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Auth\User; +use Filegator\Services\Auth\UsersCollection; +use Filegator\Services\Service; +use Filegator\Services\Session\SessionStorageInterface as Session; +use Filegator\Utils\PasswordHash; + +class JsonFile implements Service, AuthInterface +{ + use PasswordHash; + + const SESSION_KEY = 'json_auth'; + + const GUEST_USERNAME = 'guest'; + + protected $session; + + protected $file; + + public function __construct(Session $session) + { + $this->session = $session; + } + + public function init(array $config = []) + { + if (! file_exists($config['file'])) { + copy($config['file'].'.blank', $config['file']); + } + + $this->file = $config['file']; + } + + public function user(): ?User + { + return $this->session ? $this->session->get(self::SESSION_KEY, null) : null; + } + + public function authenticate($username, $password): bool + { + $all_users = $this->getUsers(); + + foreach ($all_users as &$u) { + if ($u['username'] == $username && $this->verifyPassword($password, $u['password'])) { + $user = $this->mapToUserObject($u); + $this->store($user); + + return true; + } + } + + return false; + } + + public function forget() + { + return $this->session->invalidate(); + } + + public function store(User $user) + { + return $this->session->set(self::SESSION_KEY, $user); + } + + public function update($username, User $user, $password = ''): User + { + $all_users = $this->getUsers(); + + if ($username != $user->getUsername() && $this->find($user->getUsername())) { + throw new \Exception('Username already taken'); + } + + foreach ($all_users as &$u) { + if ($u['username'] == $username) { + $u['username'] = $user->getUsername(); + $u['name'] = $user->getName(); + $u['role'] = $user->getRole(); + $u['homedir'] = $user->getHomeDir(); + $u['permissions'] = $user->getPermissions(true); + + if ($password) { + $u['password'] = $this->hashPassword($password); + } + + $this->saveUsers($all_users); + + return $this->find($user->getUsername()); + } + } + + throw new \Exception('User not found'); + } + + public function add(User $user, $password): User + { + if ($this->find($user->getUsername())) { + throw new \Exception('Username already taken'); + } + + $all_users = $this->getUsers(); + + $all_users[] = [ + 'username' => $user->getUsername(), + 'name' => $user->getName(), + 'role' => $user->getRole(), + 'homedir' => $user->getHomeDir(), + 'permissions' => $user->getPermissions(true), + 'password' => $this->hashPassword($password), + ]; + + $this->saveUsers($all_users); + + return $this->find($user->getUsername()); + } + + public function delete(User $user) + { + $all_users = $this->getUsers(); + + foreach ($all_users as $key => $u) { + if ($u['username'] == $user->getUsername()) { + unset($all_users[$key]); + $this->saveUsers($all_users); + + return true; + } + } + + throw new \Exception('User not found'); + } + + public function find($username): ?User + { + foreach ($this->getUsers() as $user) { + if ($user['username'] == $username) { + return $this->mapToUserObject($user); + } + } + + return null; + } + + public function getGuest(): User + { + $guest = $this->find(self::GUEST_USERNAME); + + if (! $guest || ! $guest->isGuest()) { + throw new \Exception('No guest account'); + } + + return $guest; + } + + public function allUsers(): UsersCollection + { + $users = new UsersCollection(); + + foreach ($this->getUsers() as $user) { + $users->addUser($this->mapToUserObject($user)); + } + + return $users; + } + + protected function mapToUserObject(array $user): User + { + $new = new User(); + + $new->setUsername($user['username']); + $new->setName($user['name']); + $new->setRole($user['role']); + $new->setHomedir($user['homedir']); + $new->setPermissions($user['permissions'], true); + + return $new; + } + + protected function getUsers(): array + { + $users = json_decode(file_get_contents($this->file), true); + + return is_array($users) ? $users : []; + } + + protected function saveUsers(array $users) + { + return file_put_contents($this->file, json_encode($users), LOCK_EX); + } +} diff --git a/backend/Services/Auth/AuthInterface.php b/backend/Services/Auth/AuthInterface.php new file mode 100644 index 0000000..b56b5b4 --- /dev/null +++ b/backend/Services/Auth/AuthInterface.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Auth; + +interface AuthInterface +{ + public function user(): ?User; + + public function authenticate($username, $password): bool; + + public function forget(); + + public function find($username): ?User; + + public function store(User $user); + + public function update($username, User $user, $password = ''): User; + + public function add(User $user, $password): User; + + public function delete(User $user); + + public function getGuest(): User; + + public function allUsers(): UsersCollection; +} diff --git a/backend/Services/Auth/User.php b/backend/Services/Auth/User.php new file mode 100644 index 0000000..758d988 --- /dev/null +++ b/backend/Services/Auth/User.php @@ -0,0 +1,158 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Auth; + +class User implements \JsonSerializable +{ + protected $role = 'guest'; + + protected $permissions = []; + + protected $username = ''; + + protected $homedir = ''; + + protected $name = ''; + + protected $available_roles = ['guest', 'user', 'admin']; + + protected $available_permissions = ['read', 'write', 'upload', 'download', 'batchdownload', 'zip']; + + public function __construct() + { + } + + public function isGuest(): bool + { + return 'guest' == $this->role; + } + + public function isUser(): bool + { + return 'user' == $this->role; + } + + public function isAdmin(): bool + { + return 'admin' == $this->role; + } + + public function hasRole($check): bool + { + if (is_array($check)) { + return in_array($this->getRole(), $check); + } + + return $this->getRole() == $check; + } + + public function getRole(): string + { + return $this->role; + } + + public function hasPermissions($check): bool + { + if (empty($check)) { + return true; + } + + if (is_array($check)) { + return count(array_intersect($check, $this->getPermissions())) == count($check); + } + + return in_array($check, $this->getPermissions()); + } + + public function setName(string $name): void + { + $this->name = $name; + } + + public function getName(): string + { + return $this->name; + } + + public function setUsername(string $username) + { + $this->username = $username; + } + + public function getUsername(): string + { + return $this->username; + } + + public function setHomedir(string $homedir) + { + $this->homedir = $homedir; + } + + public function getHomeDir(): string + { + return $this->homedir; + } + + public function setRole(string $role) + { + $this->checkValidRole($role); + + $this->role = $role; + } + + public function setPermissions($permissions, $encoded = false) + { + if ($encoded) { + $permissions = explode('|', $permissions); + } + + $this->checkValidPermissions($permissions); + + $this->permissions = $permissions; + } + + public function getPermissions($encoded = false) + { + return $encoded ? implode('|', $this->permissions) : $this->permissions; + } + + public function jsonSerialize() + { + return [ + 'role' => $this->getRole(), + 'permissions' => $this->getPermissions(), + 'homedir' => $this->getHomeDir(), + 'username' => $this->getUsername(), + 'name' => $this->getName(), + ]; + } + + protected function checkValidRole($role) + { + if (! in_array($role, $this->available_roles)) { + throw new \Exception("User role {$role} does not exists."); + } + + return true; + } + + protected function checkValidPermissions(array $permissions) + { + foreach ($permissions as $permission) { + if ($permission && ! in_array($permission, $this->available_permissions)) { + throw new \Exception("Permission {$permission} does not exists."); + } + } + + return true; + } +} diff --git a/backend/Services/Auth/UsersCollection.php b/backend/Services/Auth/UsersCollection.php new file mode 100644 index 0000000..f72e395 --- /dev/null +++ b/backend/Services/Auth/UsersCollection.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Auth; + +use Filegator\Utils\Collection; + +class UsersCollection implements \JsonSerializable +{ + use Collection; + + public function addUser(User $user) + { + $this->add($user); + } +} diff --git a/backend/Services/Cors/Cors.php b/backend/Services/Cors/Cors.php new file mode 100644 index 0000000..2d3dbba --- /dev/null +++ b/backend/Services/Cors/Cors.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Cors; + +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Service; + +/** + * @codeCoverageIgnore + */ +class Cors implements Service +{ + protected $request; + + protected $response; + + public function __construct(Request $request, Response $response) + { + $this->request = $request; + $this->response = $response; + } + + public function init(array $config = []) + { + if ($config['enabled'] !== true) { + return; + } + + $this->response->headers->set('Access-Control-Allow-Origin', $this->request->headers->get('Origin')); + $this->response->headers->set('Access-Control-Allow-Credentials', 'true'); + $this->response->headers->set('Access-Control-Expose-Headers', 'x-csrf-token'); + + if ($this->request->server->get('REQUEST_METHOD') == 'OPTIONS') { + $this->response->headers->set('Access-Control-Allow-Headers', 'content-type, x-csrf-token'); + $this->response->send(); + die; + } + } +} diff --git a/backend/Services/Logger/Adapters/MonoLogger.php b/backend/Services/Logger/Adapters/MonoLogger.php new file mode 100644 index 0000000..e10b7af --- /dev/null +++ b/backend/Services/Logger/Adapters/MonoLogger.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Logger\Adapters; + +use Filegator\Services\Logger\LoggerInterface; +use Filegator\Services\Service; +use Monolog\ErrorHandler; +use Monolog\Logger; + +class MonoLogger implements Service, LoggerInterface +{ + protected $logger; + + public function init(array $config = []) + { + $this->logger = new Logger('default'); + + foreach ($config['monolog_handlers'] as $handler) { + $this->logger->pushHandler($handler()); + } + + $handler = new ErrorHandler($this->logger); + $handler->registerErrorHandler([], true); + $handler->registerFatalHandler(); + } + + public function log(string $message, string $level = Logger::INFO) + { + $this->logger->log($level, $message); + } +} diff --git a/backend/Services/Logger/LoggerInterface.php b/backend/Services/Logger/LoggerInterface.php new file mode 100644 index 0000000..c11c61d --- /dev/null +++ b/backend/Services/Logger/LoggerInterface.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Logger; + +interface LoggerInterface +{ + public function log(string $message, string $level); +} diff --git a/backend/Services/Router/Router.php b/backend/Services/Router/Router.php new file mode 100644 index 0000000..f566da6 --- /dev/null +++ b/backend/Services/Router/Router.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Router; + +use FastRoute; +use Filegator\Container\Container; +use Filegator\Kernel\Request; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Service; + +/** + * Uses unique query parameter to pass the route info + * Does not require rewrite rules, .htaccess or similar. + * + * Example routes: + * + * http://example.com/?r=/some/route¶m1=val1¶m2=val2 + * http://example.com/?r=/user/{user_id}¶m1=val1 + */ +class Router implements Service +{ + protected $request; + + protected $auth; + + protected $container; + + public function __construct(Request $request, AuthInterface $auth, Container $container) + { + $this->request = $request; + $this->container = $container; + $this->user = $auth->user() ?: $auth->getGuest(); + } + + public function init(array $config = []) + { + $uri = '/'; + $http_method = $this->request->getMethod(); + + if ($r = $this->request->query->get($config['query_param'])) { + $this->request->query->remove($config['query_param']); + $uri = rawurldecode($r); + } + + $routes = require $config['routes_file']; + + $dispatcher = FastRoute\simpleDispatcher(function (FastRoute\RouteCollector $r) use ($routes) { + if ($routes && ! empty($routes)) { + foreach ($routes as $params) { + if ($this->user->hasRole($params['roles']) && $this->user->hasPermissions($params['permissions'])) { + $r->addRoute($params['route'][0], $params['route'][1], $params['route'][2]); + } + } + } + }); + + $routeInfo = $dispatcher->dispatch($http_method, $uri); + + $controller = '\Filegator\Controllers\ErrorController'; + $action = 'notFound'; + $params = []; + + switch ($routeInfo[0]) { + case FastRoute\Dispatcher::FOUND: + $handler = explode('@', $routeInfo[1]); + $controller = $handler[0]; + $action = $handler[1]; + $params = $routeInfo[2]; + + break; + case FastRoute\Dispatcher::METHOD_NOT_ALLOWED: + $action = 'methodNotAllowed'; + + break; + } + + $this->container->call([$controller, $action], $params); + } +} diff --git a/backend/Services/Security/Security.php b/backend/Services/Security/Security.php new file mode 100644 index 0000000..4c0bc2c --- /dev/null +++ b/backend/Services/Security/Security.php @@ -0,0 +1,79 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Security; + +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Service; +use Symfony\Component\Security\Csrf\CsrfToken; +use Symfony\Component\Security\Csrf\CsrfTokenManager; + +/** + * @codeCoverageIgnore + */ +class Security implements Service +{ + protected $request; + + protected $response; + + public function __construct(Request $request, Response $response) + { + $this->request = $request; + $this->response = $response; + } + + public function init(array $config = []) + { + if ($config['csrf_protection']) { + $http_method = $this->request->getMethod(); + $csrfManager = new CsrfTokenManager(); + + if (in_array($http_method, ['GET', 'HEAD', 'OPTIONS'])) { + $this->response->headers->set('X-CSRF-Token', $csrfManager->getToken('protection')); + } else { + $token = new CsrfToken('protection', $this->request->headers->get('X-CSRF-Token')); + + if (! $csrfManager->isTokenValid($token)) { + throw new \Exception('Csrf token not valid'); + } + } + } + + if (! empty($config['ip_whitelist'])) { + $pass = false; + foreach ($config['ip_whitelist'] as $ip) { + if ($this->request->getClientIp() == $ip) { + $pass = true; + } + } + if (! $pass) { + $this->response->setStatusCode(403); + $this->response->send(); + die; + } + } + + if (! empty($config['ip_blacklist'])) { + $pass = true; + foreach ($config['ip_blacklist'] as $ip) { + if ($this->request->getClientIp() == $ip) { + $pass = false; + } + } + if (! $pass) { + $this->response->setStatusCode(403); + $this->response->send(); + die; + } + } + } +} diff --git a/backend/Services/Service.php b/backend/Services/Service.php new file mode 100644 index 0000000..1d60ba5 --- /dev/null +++ b/backend/Services/Service.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services; + +interface Service +{ + public function init(array $config = []); +} diff --git a/backend/Services/Session/Adapters/SessionStorage.php b/backend/Services/Session/Adapters/SessionStorage.php new file mode 100644 index 0000000..da99aaa --- /dev/null +++ b/backend/Services/Session/Adapters/SessionStorage.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Session\Adapters; + +use Filegator\Kernel\Request; +use Filegator\Services\Service; +use Filegator\Services\Session\Session; +use Filegator\Services\Session\SessionStorageInterface; + +class SessionStorage implements Service, SessionStorageInterface +{ + protected $request; + + protected $config; + + public function __construct(Request $request) + { + $this->request = $request; + } + + public function init(array $config = []) + { + // we don't have a previous session attached + if (! $this->getSession()) { + $handler = $config['available'][$config['session_handler']]; + $session = new Session($handler()); + $session->setName('filegator'); + + $this->setSession($session); + } + } + + public function save() + { + $this->getSession()->save(); + } + + public function set(string $key, $data) + { + return $this->getSession()->set($key, $data); + } + + public function get(string $key, $default = null) + { + return $this->getSession() ? $this->getSession()->get($key, $default) : $default; + } + + public function invalidate() + { + if (! $this->getSession()->isStarted()) { + $this->getSession()->start(); + } + + $this->getSession()->invalidate(); + } + + private function setSession(Session $session) + { + return $this->request->setSession($session); + } + + private function getSession(): ?Session + { + return $this->request->getSession(); + } +} diff --git a/backend/Services/Session/Session.php b/backend/Services/Session/Session.php new file mode 100644 index 0000000..704abb3 --- /dev/null +++ b/backend/Services/Session/Session.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Session; + +use Symfony\Component\HttpFoundation\Session\Session as SymfonySession; + +class Session extends SymfonySession +{ +} diff --git a/backend/Services/Session/SessionStorageInterface.php b/backend/Services/Session/SessionStorageInterface.php new file mode 100644 index 0000000..ab6822d --- /dev/null +++ b/backend/Services/Session/SessionStorageInterface.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Session; + +interface SessionStorageInterface +{ + public function set(string $key, $data); + + public function get(string $key, $default = null); + + public function invalidate(); + + public function save(); +} diff --git a/backend/Services/Storage/DirectoryCollection.php b/backend/Services/Storage/DirectoryCollection.php new file mode 100644 index 0000000..a4816d1 --- /dev/null +++ b/backend/Services/Storage/DirectoryCollection.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Storage; + +use Filegator\Utils\Collection; + +class DirectoryCollection implements \JsonSerializable +{ + use Collection; + + protected $location; + + public function __construct($location) + { + $this->location = $location; + } + + public function addFile(string $type, string $path, string $name, int $size, int $timestamp) + { + if (! in_array($type, ['dir', 'file', 'back'])) { + throw new \Exception('Invalid file type.'); + } + + $this->add([ + 'type' => $type, + 'path' => $path, + 'name' => $name, + 'size' => $size, + 'time' => $timestamp, + ]); + } + + public function resetTimestamps($timestamp = 0) + { + foreach ($this->items as &$item) { + $item['time'] = $timestamp; + } + } + + public function jsonSerialize() + { + $this->sortByValue('type'); + + return [ + 'location' => $this->location, + 'files' => $this->items, + ]; + } +} diff --git a/backend/Services/Storage/Filesystem.php b/backend/Services/Storage/Filesystem.php new file mode 100644 index 0000000..48f01f4 --- /dev/null +++ b/backend/Services/Storage/Filesystem.php @@ -0,0 +1,287 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Storage; + +use Filegator\Services\Service; +use League\Flysystem\Filesystem as Flysystem; + +class Filesystem implements Service +{ + protected $separator; + + protected $storage; + + protected $path_prefix; + + public function init(array $config = []) + { + $this->separator = $config['separator']; + $this->path_prefix = $this->separator; + + $adapter = $config['adapters'][$config['filesystem_adapter']]; + $config = isset($config['config']) ? $config['config'] : []; + + $this->storage = new Flysystem($adapter(), $config); + } + + public function createDir(string $path, string $name) + { + $destination = $this->joinPaths($this->applyPathPrefix($path), $name); + + while (! empty($this->storage->listContents($destination, true))) { + $destination = $this->upcountName($destination); + } + + return $this->storage->createDir($destination); + } + + public function createFile(string $path, string $name) + { + $destination = $this->joinPaths($this->applyPathPrefix($path), $name); + + while ($this->storage->has($destination)) { + $destination = $this->upcountName($destination); + } + + $this->storage->put($destination, ''); + } + + public function fileExists(string $path) + { + $path = $this->applyPathPrefix($path); + + return $this->storage->has($path); + } + + public function isDir(string $path) + { + $path = $this->applyPathPrefix($path); + + return $this->storage->getSize($path) === false; + } + + public function copyFile(string $source, string $destination) + { + $source = $this->applyPathPrefix($source); + $destination = $this->joinPaths($this->applyPathPrefix($destination), $this->getBaseName($source)); + + while ($this->storage->has($destination)) { + $destination = $this->upcountName($destination); + } + + return $this->storage->copy($source, $destination); + } + + public function copyDir(string $source, string $destination) + { + $source = $this->applyPathPrefix($this->addSeparators($source)); + $destination = $this->applyPathPrefix($this->addSeparators($destination)); + $source_dir = $this->getBaseName($source); + $real_destination = $this->joinPaths($destination, $source_dir); + + while (! empty($this->storage->listContents($real_destination, true))) { + $real_destination = $this->upcountName($real_destination); + } + + $contents = $this->storage->listContents($source, true); + + if (empty($contents)) { + $this->storage->createDir($real_destination); + } + + foreach ($contents as $file) { + $source_path = $this->separator.ltrim($file['path'], $this->separator); + $path = substr($source_path, strlen($source), strlen($source_path)); + + if ($file['type'] == 'dir') { + $this->storage->createDir($this->joinPaths($real_destination, $path)); + + continue; + } + + if ($file['type'] == 'file') { + $this->storage->copy($file['path'], $this->joinPaths($real_destination, $path)); + } + } + } + + public function deleteDir(string $path) + { + return $this->storage->deleteDir($this->applyPathPrefix($path)); + } + + public function deleteFile(string $path) + { + return $this->storage->delete($this->applyPathPrefix($path)); + } + + public function readStream(string $path): array + { + if ($this->isDir($path)) { + throw new \Exception('Cannot stream directory'); + } + + $path = $this->applyPathPrefix($path); + + return [ + 'filename' => $this->getBaseName($path), + 'stream' => $this->storage->readStream($path), + ]; + } + + public function move(string $from, string $to): bool + { + $from = $this->applyPathPrefix($from); + $to = $this->applyPathPrefix($to); + + while ($this->storage->has($to)) { + $to = $this->upcountName($to); + } + + return $this->storage->rename($from, $to); + } + + public function rename(string $destination, string $from, string $to): bool + { + $from = $this->joinPaths($this->applyPathPrefix($destination), $from); + $to = $this->joinPaths($this->applyPathPrefix($destination), $to); + + while ($this->storage->has($to)) { + $to = $this->upcountName($to); + } + + return $this->storage->rename($from, $to); + } + + public function store(string $path, string $name, $resource): bool + { + $destination = $this->joinPaths($this->applyPathPrefix($path), $name); + + while ($this->storage->has($destination)) { + $destination = $this->upcountName($destination); + } + + return $this->storage->putStream($destination, $resource); + } + + public function setPathPrefix(string $path_prefix) + { + $this->path_prefix = $this->addSeparators($path_prefix); + } + + public function getSeparator() + { + return $this->separator; + } + + public function getPathPrefix(): string + { + return $this->path_prefix; + } + + public function getDirectoryCollection(string $path, bool $recursive = false): DirectoryCollection + { + $collection = new DirectoryCollection($path); + + foreach ($this->storage->listContents($this->applyPathPrefix($path), $recursive) as $entry) { + // By default only 'path' and 'type' is present + + $name = $this->getBaseName($entry['path']); + $userpath = $this->stripPathPrefix($entry['path']); + $dirname = isset($entry['dirname']) ? $entry['dirname'] : $path; + $size = isset($entry['size']) ? $entry['size'] : 0; + $timestamp = isset($entry['timestamp']) ? $entry['timestamp'] : 0; + + $collection->addFile($entry['type'], $userpath, $name, $size, $timestamp); + } + + if (! $recursive && $this->addSeparators($path) !== $this->separator) { + $collection->addFile('back', $this->getParent($path), '..', 0, 0); + } + + return $collection; + } + + protected function upcountCallback($matches) + { + $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; + $ext = isset($matches[2]) ? $matches[2] : ''; + + return ' ('.$index.')'.$ext; + } + + protected function upcountName($name) + { + return preg_replace_callback( + '/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/', + [$this, 'upcountCallback'], + $name, + 1 + ); + } + + private function applyPathPrefix(string $path): string + { + return $this->joinPaths($this->getPathPrefix(), $path); + } + + private function stripPathPrefix(string $path): string + { + $path = $this->separator.ltrim($path, $this->separator); + + if (substr($path, 0, strlen($this->getPathPrefix())) == $this->getPathPrefix()) { + $path = $this->separator.substr($path, strlen($this->getPathPrefix())); + } + + return $path; + } + + private function addSeparators(string $dir): string + { + if (! $dir || $dir == $this->separator || ! trim($dir, $this->separator)) { + return $this->separator; + } + + return $this->separator.trim($dir, $this->separator).$this->separator; + } + + private function joinPaths(string $path1, string $path2): string + { + if (! $path2 || ! trim($path2, $this->separator)) { + return $this->addSeparators($path1); + } + + return $this->addSeparators($path1).ltrim($path2, $this->separator); + } + + private function getParent(string $dir): string + { + if (! $dir || $dir == $this->separator || ! trim($dir, $this->separator)) { + return $this->separator; + } + + $tmp = explode($this->separator, trim($dir, $this->separator)); + array_pop($tmp); + + return $this->separator.trim(implode($this->separator, $tmp), $this->separator); + } + + private function getBaseName(string $path): string + { + if (! $path || $path == $this->separator || ! trim($path, $this->separator)) { + return $this->separator; + } + + $tmp = explode($this->separator, trim($path, $this->separator)); + + return array_pop($tmp); + } +} diff --git a/backend/Services/Tmpfs/Adapters/Tmpfs.php b/backend/Services/Tmpfs/Adapters/Tmpfs.php new file mode 100644 index 0000000..974b1c0 --- /dev/null +++ b/backend/Services/Tmpfs/Adapters/Tmpfs.php @@ -0,0 +1,136 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Tmpfs\Adapters; + +use Filegator\Services\Service; +use Filegator\Services\Tmpfs\TmpfsInterface; + +class Tmpfs implements Service, TmpfsInterface +{ + protected $path; + + public function init(array $config = []) + { + $this->path = $config['path']; + + if (! is_dir($this->path)) { + mkdir($this->path); + } + + if (mt_rand(0, 99) < $config['gc_probability_perc']) { + $this->clean($config['gc_older_than']); + } + } + + public function write(string $filename, $data) + { + $filename = $this->sanitizeFilename($filename); + + file_put_contents($this->getPath().$filename, $data); + } + + public function getFileLocation(string $filename): string + { + $filename = $this->sanitizeFilename($filename); + + $realPath = $this->getPath().$filename; + + if (! is_file($realPath)) { + touch($realPath); + } + + return $realPath; + } + + public function read(string $filename): string + { + $filename = $this->sanitizeFilename($filename); + + return file_get_contents($this->getPath().$filename); + } + + public function readStream(string $filename): array + { + $filename = $this->sanitizeFilename($filename); + + $stream = fopen($this->getPath().$filename, 'r'); + + return [ + 'filename' => $filename, + 'stream' => $stream, + ]; + } + + public function exists(string $filename): bool + { + $filename = $this->sanitizeFilename($filename); + + return file_exists($this->getPath().$filename); + } + + public function findAll($pattern): array + { + $files = []; + + foreach (glob($this->getPath().$pattern) as $filename) { + if (is_file($filename)) { + $files[] = [ + 'name' => basename($filename), + 'size' => filesize($filename), + 'time' => filemtime($filename), + ]; + } + } + + return $files; + } + + public function remove(string $filename) + { + $filename = $this->sanitizeFilename($filename); + + unlink($this->getPath().$filename); + } + + public function clean(int $older_than) + { + $files = $this->findAll('*'); + foreach ($files as $file) { + if (time() - $file['time'] >= $older_than) { + $this->remove($file['name']); + } + } + } + + private function getPath(): string + { + return $this->path; + } + + private function sanitizeFilename($filename) + { + $filename = preg_replace( + '~ + [<>:"/\\|?*]| # file system reserved https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words + [\x00-\x1F]| # control characters http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx + [\x7F\xA0\xAD]| # non-printing characters DEL, NO-BREAK SPACE, SOFT HYPHEN + [;\\\{}^\~`] # other non-safe + ~x', + '-', + $filename + ); + + // maximize filename length to 255 bytes http://serverfault.com/a/9548/44086 + $ext = pathinfo($filename, PATHINFO_EXTENSION); + + return mb_strcut(pathinfo($filename, PATHINFO_FILENAME), 0, 255 - ($ext ? strlen($ext) + 1 : 0), mb_detect_encoding($filename)).($ext ? '.'.$ext : ''); + } +} diff --git a/backend/Services/Tmpfs/TmpfsInterface.php b/backend/Services/Tmpfs/TmpfsInterface.php new file mode 100644 index 0000000..d73a5d2 --- /dev/null +++ b/backend/Services/Tmpfs/TmpfsInterface.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\Tmpfs; + +interface TmpfsInterface +{ + public function exists(string $filename): bool; + + public function findAll($pattern): array; + + public function write(string $filename, $data); + + public function read(string $filename): string; + + public function readStream(string $filename): array; + + public function remove(string $filename); + + public function getFileLocation(string $filename): string; + + public function clean(int $older_than); +} diff --git a/backend/Services/View/Adapters/Vuejs.php b/backend/Services/View/Adapters/Vuejs.php new file mode 100644 index 0000000..3757c5b --- /dev/null +++ b/backend/Services/View/Adapters/Vuejs.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\View\Adapters; + +use Filegator\Config\Config; +use Filegator\Services\Service; +use Filegator\Services\View\ViewInterface; + +class Vuejs implements Service, ViewInterface +{ + private $config; + + public function __construct(Config $config) + { + $this->config = $config; + } + + public function init(array $config = []) + { + } + + public function getIndexPage() + { + $title = $this->config->get('frontend_config.app_name'); + $public_path = $this->config->get('public_path'); + $public_dir = $this->config->get('public_dir'); + + return ' + + + + + + + '.$title.' + + + + + + +
+ + + + +'; + } +} diff --git a/backend/Services/View/ViewInterface.php b/backend/Services/View/ViewInterface.php new file mode 100644 index 0000000..2c53a52 --- /dev/null +++ b/backend/Services/View/ViewInterface.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Services\View; + +interface ViewInterface +{ + public function getIndexPage(); +} diff --git a/backend/Utils/Collection.php b/backend/Utils/Collection.php new file mode 100644 index 0000000..01f43a2 --- /dev/null +++ b/backend/Utils/Collection.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Utils; + +trait Collection +{ + protected $items = []; + + public function add($obj) + { + return $this->items[] = $obj; + } + + public function delete($obj) + { + foreach ($this->items as $key => $item) { + if ($item === $obj) { + unset($this->items[$key]); + } + } + } + + public function all() + { + return $this->items; + } + + public function length() + { + return count($this->items); + } + + public function jsonSerialize() + { + return $this->items; + } + + public function sortByValue($value, $desc = false) + { + usort($this->items, function ($a, $b) use ($value) { + return $a[$value] <=> $b[$value]; + }); + + if ($desc) { + $this->items = array_reverse($this->items); + } + + return $this; + } +} diff --git a/backend/Utils/PasswordHash.php b/backend/Utils/PasswordHash.php new file mode 100644 index 0000000..0834986 --- /dev/null +++ b/backend/Utils/PasswordHash.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Filegator\Utils; + +/** + * @codeCoverageIgnore + */ +trait PasswordHash +{ + public static function hashPassword($value) + { + $hash = password_hash($value, PASSWORD_BCRYPT); + + if ($hash === false) { + throw new \Exception('Bcrypt hashing not supported.'); + } + + return $hash; + } + + public static function verifyPassword($value, $hash) + { + return password_verify($value, $hash); + } +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..3cc85f6 --- /dev/null +++ b/composer.json @@ -0,0 +1,39 @@ +{ + "name": "filegator/filegator", + "description": "Filegator", + "type": "project", + "require": { + "php": "^7.1.3", + "monolog/monolog": "^1.24", + "nikic/fast-route": "^1.3", + "symfony/security-csrf": "^4.3", + "symfony/http-foundation": "^4.2", + "dibi/dibi": "^4.0", + "php-di/php-di": "^6.0", + "rakit/validation": "^1.1", + "league/flysystem": "^1.0", + "league/flysystem-ziparchive": "^1.0" + }, + "authors": [ + { + "name": "Milos Stojanovic", + "email": "alcalbg@gmail.com" + } + ], + "autoload": { + "psr-4": { + "Filegator\\": "backend" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/backend/" + } + }, + "require-dev": { + "phpunit/phpunit": "^8.0", + "symfony/var-dumper": "^4.2", + "nunomaduro/phpinsights": "^1.0", + "league/flysystem-memory": "^1.0" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..3e31cba --- /dev/null +++ b/composer.lock @@ -0,0 +1,5669 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "288a0ce16c371076bba16138c1a1704a", + "packages": [ + { + "name": "dibi/dibi", + "version": "v4.0.2", + "source": { + "type": "git", + "url": "https://github.com/dg/dibi.git", + "reference": "79f841ec90662b5bb0e61598e727fde6a01567b8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dg/dibi/zipball/79f841ec90662b5bb0e61598e727fde6a01567b8", + "reference": "79f841ec90662b5bb0e61598e727fde6a01567b8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "replace": { + "dg/dibi": "*" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "~2.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + } + ], + "description": "Dibi is Database Abstraction Library for PHP", + "homepage": "https://dibiphp.com", + "keywords": [ + "access", + "database", + "dbal", + "mssql", + "mysql", + "odbc", + "oracle", + "pdo", + "postgresql", + "sqlite", + "sqlsrv" + ], + "time": "2019-03-11T20:38:25+00:00" + }, + { + "name": "jeremeamia/SuperClosure", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/jeremeamia/super_closure.git", + "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/5707d5821b30b9a07acfb4d76949784aaa0e9ce9", + "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^1.2|^2.0|^3.0|^4.0", + "php": ">=5.4", + "symfony/polyfill-php56": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "psr-4": { + "SuperClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia", + "role": "Developer" + } + ], + "description": "Serialize Closure objects, including their context and binding", + "homepage": "https://github.com/jeremeamia/super_closure", + "keywords": [ + "closure", + "function", + "lambda", + "parser", + "serializable", + "serialize", + "tokenizer" + ], + "time": "2018-03-21T22:21:57+00:00" + }, + { + "name": "league/flysystem", + "version": "1.0.52", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "c5a5097156387970e6f0ccfcdf03f752856f3391" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c5a5097156387970e6f0ccfcdf03f752856f3391", + "reference": "c5a5097156387970e6f0ccfcdf03f752856f3391", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": ">=5.5.9" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7.10" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "time": "2019-05-20T20:21:14+00:00" + }, + { + "name": "league/flysystem-ziparchive", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-ziparchive.git", + "reference": "c6d7c7ea23a57ee802d533ab9eb9f19dd5c5fc45" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-ziparchive/zipball/c6d7c7ea23a57ee802d533ab9eb9f19dd5c5fc45", + "reference": "c6d7c7ea23a57ee802d533ab9eb9f19dd5c5fc45", + "shasum": "" + }, + "require": { + "ext-zip": "*", + "league/flysystem": "~1.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\ZipArchive\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Flysystem adapter for ZipArchive's", + "time": "2016-12-20T08:36:16+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.24.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2018-11-05T09:00:11+00:00" + }, + { + "name": "nikic/fast-route", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/FastRoute.git", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|~5.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "FastRoute\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov", + "email": "nikic@php.net" + } + ], + "description": "Fast request router for PHP", + "keywords": [ + "router", + "routing" + ], + "time": "2018-02-13T20:26:39+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "1bd73cc04c3843ad8d6b0bfc0956026a151fc420" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bd73cc04c3843ad8d6b0bfc0956026a151fc420", + "reference": "1bd73cc04c3843ad8d6b0bfc0956026a151fc420", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2019-05-25T20:07:01+00:00" + }, + { + "name": "php-di/invoker", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/Invoker.git", + "reference": "540c27c86f663e20fe39a24cd72fa76cdb21d41a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/540c27c86f663e20fe39a24cd72fa76cdb21d41a", + "reference": "540c27c86f663e20fe39a24cd72fa76cdb21d41a", + "shasum": "" + }, + "require": { + "psr/container": "~1.0" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "phpunit/phpunit": "~4.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Invoker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Generic and extensible callable invoker", + "homepage": "https://github.com/PHP-DI/Invoker", + "keywords": [ + "callable", + "dependency", + "dependency-injection", + "injection", + "invoke", + "invoker" + ], + "time": "2017-03-20T19:28:22+00:00" + }, + { + "name": "php-di/php-di", + "version": "6.0.8", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/PHP-DI.git", + "reference": "a634876c69b643b779a89e4b7bec1ed1df803afc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/a634876c69b643b779a89e4b7bec1ed1df803afc", + "reference": "a634876c69b643b779a89e4b7bec1ed1df803afc", + "shasum": "" + }, + "require": { + "jeremeamia/superclosure": "^2.0", + "nikic/php-parser": "^2.0|^3.0|^4.0", + "php": ">=7.0.0", + "php-di/invoker": "^2.0", + "php-di/phpdoc-reader": "^2.0.1", + "psr/container": "^1.0" + }, + "provide": { + "psr/container-implementation": "^1.0" + }, + "require-dev": { + "doctrine/annotations": "~1.2", + "friendsofphp/php-cs-fixer": "^2.4", + "mnapoli/phpunit-easymock": "~1.0", + "ocramius/proxy-manager": "~2.0.2", + "phpstan/phpstan": "^0.9.2", + "phpunit/phpunit": "~6.4" + }, + "suggest": { + "doctrine/annotations": "Install it if you want to use annotations (version ~1.2)", + "ocramius/proxy-manager": "Install it if you want to use lazy injection (version ~2.0)" + }, + "type": "library", + "autoload": { + "psr-4": { + "DI\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The dependency injection container for humans", + "homepage": "http://php-di.org/", + "keywords": [ + "PSR-11", + "container", + "container-interop", + "dependency injection", + "di", + "ioc", + "psr11" + ], + "time": "2019-04-02T20:25:18+00:00" + }, + { + "name": "php-di/phpdoc-reader", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/PhpDocReader.git", + "reference": "7d0de60b9341933c8afd172a6255cd7557601e0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/7d0de60b9341933c8afd172a6255cd7557601e0e", + "reference": "7d0de60b9341933c8afd172a6255cd7557601e0e", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpDocReader\\": "src/PhpDocReader" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)", + "keywords": [ + "phpdoc", + "reflection" + ], + "time": "2018-02-18T17:39:01+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2018-11-20T15:27:04+00:00" + }, + { + "name": "rakit/validation", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/rakit/validation.git", + "reference": "6396c98dff18ddcf6096cf06278d598efb9bab3a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rakit/validation/zipball/6396c98dff18ddcf6096cf06278d598efb9bab3a", + "reference": "6396c98dff18ddcf6096cf06278d598efb9bab3a", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5", + "squizlabs/php_codesniffer": "^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Rakit\\Validation\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Muhammad Syifa", + "email": "emsifa@gmail.com" + } + ], + "description": "PHP Laravel like standalone validation library", + "time": "2018-12-21T03:53:50+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "8fa2cf2177083dd59cf8e44ea4b6541764fbda69" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8fa2cf2177083dd59cf8e44ea4b6541764fbda69", + "reference": "8fa2cf2177083dd59cf8e44ea4b6541764fbda69", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-05-22T12:23:29+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "b7e4945dd9b277cd24e93566e4da0a87956392a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b7e4945dd9b277cd24e93566e4da0a87956392a9", + "reference": "b7e4945dd9b277cd24e93566e4da0a87956392a9", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/mime": "^4.3", + "symfony/polyfill-mbstring": "~1.1" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "~3.4|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2019-06-06T10:05:02+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "ec2c5565de60e03f33d4296a655e3273f0ad1f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/ec2c5565de60e03f33d4296a655e3273f0ad1f8b", + "reference": "ec2c5565de60e03f33d4296a655e3273f0ad1f8b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "egulias/email-validator": "^2.0", + "symfony/dependency-injection": "~3.4|^4.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A library to manipulate MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "time": "2019-06-04T09:22:54+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c766e95bec706cdd89903b1eda8afab7d7a6b7af", + "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.9" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "time": "2019-03-04T13:44:35+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2019-02-06T07:57:58+00:00" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "f4dddbc5c3471e1b700a147a20ae17cdb72dbe42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/f4dddbc5c3471e1b700a147a20ae17cdb72dbe42", + "reference": "f4dddbc5c3471e1b700a147a20ae17cdb72dbe42", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-02-06T07:57:58+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/ab50dcf166d5f577978419edd37aa2bb8eabce0c", + "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-02-06T07:57:58+00:00" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "b46c6cae28a3106735323f00a0c38eccf2328897" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/b46c6cae28a3106735323f00a0c38eccf2328897", + "reference": "b46c6cae28a3106735323f00a0c38eccf2328897", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "time": "2019-02-08T14:16:39+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "7c1fc94098ce58452d28af4006b6870f8839d075" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/7c1fc94098ce58452d28af4006b6870f8839d075", + "reference": "7c1fc94098ce58452d28af4006b6870f8839d075", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0", + "psr/log": "~1.0", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/ldap": "~3.4|~4.0", + "symfony/validator": "~3.4|~4.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "time": "2019-06-03T20:27:40+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "e7e3509ef7de66ea4970c75f9a0a72bf132d452e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/e7e3509ef7de66ea4970c75f9a0a72bf132d452e", + "reference": "e7e3509ef7de66ea4970c75f9a0a72bf132d452e", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/security-core": "~3.4|~4.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "~3.4|~4.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v1.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/191afdcb5804db960d26d8566b7e9a2843cab3a0", + "reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/container": "", + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-05-28T07:50:59+00:00" + } + ], + "packages-dev": [ + { + "name": "composer/semver", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "time": "2019-03-19T17:25:45+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.3.3", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f", + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "time": "2019-05-27T17:52:04+00:00" + }, + { + "name": "doctrine/annotations", + "version": "v1.6.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "53120e0eb10355388d6ccbe462f1fea34ddadb24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/53120e0eb10355388d6ccbe462f1fea34ddadb24", + "reference": "53120e0eb10355388d6ccbe462f1fea34ddadb24", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2019-03-25T19:12:02+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "a2c590166b2133a4633738648b6b064edae0814a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", + "reference": "a2c590166b2133a4633738648b6b064edae0814a", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2019-03-17T17:37:11+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "time": "2019-06-08T11:03:04+00:00" + }, + { + "name": "friendsofphp/php-cs-fixer", + "version": "v2.15.1", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", + "reference": "20064511ab796593a3990669eff5f5b535001f7c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/20064511ab796593a3990669eff5f5b535001f7c", + "reference": "20064511ab796593a3990669eff5f5b535001f7c", + "shasum": "" + }, + "require": { + "composer/semver": "^1.4", + "composer/xdebug-handler": "^1.2", + "doctrine/annotations": "^1.2", + "ext-json": "*", + "ext-tokenizer": "*", + "php": "^5.6 || ^7.0", + "php-cs-fixer/diff": "^1.3", + "symfony/console": "^3.4.17 || ^4.1.6", + "symfony/event-dispatcher": "^3.0 || ^4.0", + "symfony/filesystem": "^3.0 || ^4.0", + "symfony/finder": "^3.0 || ^4.0", + "symfony/options-resolver": "^3.0 || ^4.0", + "symfony/polyfill-php70": "^1.0", + "symfony/polyfill-php72": "^1.4", + "symfony/process": "^3.0 || ^4.0", + "symfony/stopwatch": "^3.0 || ^4.0" + }, + "require-dev": { + "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", + "justinrainbow/json-schema": "^5.0", + "keradus/cli-executor": "^1.2", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.1", + "php-cs-fixer/accessible-object": "^1.0", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1", + "phpunitgoodpractices/traits": "^1.8", + "symfony/phpunit-bridge": "^4.3" + }, + "suggest": { + "ext-mbstring": "For handling non-UTF8 characters in cache signature.", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", + "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." + }, + "bin": [ + "php-cs-fixer" + ], + "type": "application", + "autoload": { + "psr-4": { + "PhpCsFixer\\": "src/" + }, + "classmap": [ + "tests/Test/AbstractFixerTestCase.php", + "tests/Test/AbstractIntegrationCaseFactory.php", + "tests/Test/AbstractIntegrationTestCase.php", + "tests/Test/Assert/AssertTokensTrait.php", + "tests/Test/IntegrationCase.php", + "tests/Test/IntegrationCaseFactory.php", + "tests/Test/IntegrationCaseFactoryInterface.php", + "tests/Test/InternalIntegrationCaseFactory.php", + "tests/TestCase.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "A tool to automatically fix PHP code style", + "time": "2019-06-01T10:32:12+00:00" + }, + { + "name": "jean85/pretty-package-versions", + "version": "1.2", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "shasum": "" + }, + "require": { + "ocramius/package-versions": "^1.2.0", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Jean85\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" + } + ], + "description": "A wrapper for ocramius/package-versions to get pretty versions strings", + "keywords": [ + "composer", + "package", + "release", + "versions" + ], + "time": "2018-06-13T13:22:40+00:00" + }, + { + "name": "league/container", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/container.git", + "reference": "fa38155fa392ad2ed05fb6418e9d9d58064c7e76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/container/zipball/fa38155fa392ad2ed05fb6418e9d9d58064c7e76", + "reference": "fa38155fa392ad2ed05fb6418e9d9d58064c7e76", + "shasum": "" + }, + "require": { + "php": "^7.0", + "psr/container": "^1.0" + }, + "provide": { + "psr/container-implementation": "^1.0" + }, + "replace": { + "orno/di": "~2.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0", + "squizlabs/php_codesniffer": "^3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Container\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Phil Bennett", + "email": "philipobenito@gmail.com", + "homepage": "http://www.philipobenito.com", + "role": "Developer" + } + ], + "description": "A fast and intuitive dependency injection container.", + "homepage": "https://github.com/thephpleague/container", + "keywords": [ + "container", + "dependency", + "di", + "injection", + "league", + "provider", + "service" + ], + "time": "2018-09-28T13:24:15+00:00" + }, + { + "name": "league/flysystem-memory", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-memory.git", + "reference": "d0e87477c32e29f999b4de05e64c1adcddb51757" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-memory/zipball/d0e87477c32e29f999b4de05e64c1adcddb51757", + "reference": "d0e87477c32e29f999b4de05e64c1adcddb51757", + "shasum": "" + }, + "require": { + "league/flysystem": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\Memory\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Leppanen", + "email": "chris.leppanen@gmail.com", + "role": "Developer" + } + ], + "description": "An in-memory adapter for Flysystem.", + "homepage": "https://github.com/thephpleague/flysystem-memory", + "keywords": [ + "Flysystem", + "adapter", + "memory" + ], + "time": "2019-05-30T21:34:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2019-04-07T13:18:21+00:00" + }, + { + "name": "nette/finder", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/nette/finder.git", + "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/finder/zipball/6be1b83ea68ac558aff189d640abe242e0306fe2", + "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2", + "shasum": "" + }, + "require": { + "nette/utils": "^2.4 || ~3.0.0", + "php": ">=7.1" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "? Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", + "keywords": [ + "filesystem", + "glob", + "iterator", + "nette" + ], + "time": "2019-02-28T18:13:25+00:00" + }, + { + "name": "nette/robot-loader", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/nette/robot-loader.git", + "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", + "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/finder": "^2.5", + "nette/utils": "^3.0", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", + "keywords": [ + "autoload", + "class", + "interface", + "nette", + "trait" + ], + "time": "2019-03-08T21:57:24+00:00" + }, + { + "name": "nette/utils", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "bd961f49b211997202bda1d0fbc410905be370d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/bd961f49b211997202bda1d0fbc410905be370d4", + "reference": "bd961f49b211997202bda1d0fbc410905be370d4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize() and toAscii()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "time": "2019-03-22T01:00:30+00:00" + }, + { + "name": "nunomaduro/phpinsights", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/phpinsights.git", + "reference": "d0c34de16c8d56d5a8b095a6976bcb6190203a28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/phpinsights/zipball/d0c34de16c8d56d5a8b095a6976bcb6190203a28", + "reference": "d0c34de16c8d56d5a8b095a6976bcb6190203a28", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "ext-json": "*", + "league/container": "^3.2", + "object-calisthenics/phpcs-calisthenics-rules": "^3.5", + "php": "^7.2", + "phploc/phploc": "^5.0", + "sensiolabs/security-checker": "^6.0", + "symfony/console": "^4.2", + "symfony/finder": "^4.2", + "symplify/coding-standard": "^6.0", + "symplify/easy-coding-standard": "^6.0", + "symplify/package-builder": "^6.0" + }, + "require-dev": { + "illuminate/console": "^5.8", + "illuminate/support": "^5.8", + "localheinz/phpstan-rules": "^0.6.0", + "mockery/mockery": "^1.0", + "phpstan/phpstan": "^0.11.5", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^8.0", + "roave/no-floaters": "^1.1", + "symfony/var-dumper": "^4.2", + "thecodingmachine/phpstan-strict-rules": "^0.11.0" + }, + "bin": [ + "bin/phpinsights" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\PhpInsights\\Application\\Adapters\\Laravel\\InsightsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "NunoMaduro\\PhpInsights\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Instant PHP quality checks from your console.", + "keywords": [ + "Insights", + "code", + "console", + "php", + "quality", + "source" + ], + "time": "2019-06-05T08:34:00+00:00" + }, + { + "name": "object-calisthenics/phpcs-calisthenics-rules", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/object-calisthenics/phpcs-calisthenics-rules.git", + "reference": "e4599d8c2a4a916007f57043de13bca910f8954d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/object-calisthenics/phpcs-calisthenics-rules/zipball/e4599d8c2a4a916007f57043de13bca910f8954d", + "reference": "e4599d8c2a4a916007f57043de13bca910f8954d", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5|^3.0", + "php": "^7.1", + "slevomat/coding-standard": "^5.0", + "squizlabs/php_codesniffer": "^3.4" + }, + "require-dev": { + "phpstan/phpstan": "^0.11.4", + "phpunit/phpunit": "^7.5|^8.0", + "symplify/changelog-linker": "^5.4", + "symplify/coding-standard": "^5.4", + "symplify/easy-coding-standard-tester": "^5.4", + "tracy/tracy": "^2.5" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "ObjectCalisthenics\\": "src/ObjectCalisthenics" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP CodeSniffer Object Calisthenics rules/sniffs", + "time": "2019-05-15T17:09:16+00:00" + }, + { + "name": "ocramius/package-versions", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" + }, + "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.0.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-02-21T12:16:21+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.99", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "shasum": "" + }, + "require": { + "php": "^7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "time": "2018-07-02T15:55:56+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + }, + { + "name": "php-cs-fixer/diff", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "symfony/process": "^3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "SpacePossum" + } + ], + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", + "keywords": [ + "diff" + ], + "time": "2018-02-15T16:58:55+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "shasum": "" + }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2019-04-30T17:48:53+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2017-07-14T14:27:02+00:00" + }, + { + "name": "phploc/phploc", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phploc.git", + "reference": "5b714ccb7cb8ca29ccf9caf6eb1aed0131d3a884" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/5b714ccb7cb8ca29ccf9caf6eb1aed0131d3a884", + "reference": "5b714ccb7cb8ca29ccf9caf6eb1aed0131d3a884", + "shasum": "" + }, + "require": { + "php": "^7.2", + "sebastian/finder-facade": "^1.1", + "sebastian/version": "^2.0", + "symfony/console": "^4.0" + }, + "bin": [ + "phploc" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "A tool for quickly measuring the size of a PHP project.", + "homepage": "https://github.com/sebastianbergmann/phploc", + "time": "2019-03-16T10:41:19+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.8.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2019-06-13T12:50:23+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "0.3.5", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4", + "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "require-dev": { + "consistence/coding-standard": "^3.5", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/phpstan": "^0.10", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^4.7.2", + "squizlabs/php_codesniffer": "^3.3.2", + "symfony/process": "^3.4 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.3-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "time": "2019-06-07T19:13:52+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "7.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "aed67b57d459dcab93e84a5c9703d3deb5025dff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aed67b57d459dcab93e84a5c9703d3deb5025dff", + "reference": "aed67b57d459dcab93e84a5c9703d3deb5025dff", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.2", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^4.1", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-xdebug": "^2.6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2019-06-06T12:28:18+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2018-09-13T20:33:42+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2019-06-07T04:22:29+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2018-10-30T05:52:18+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "8.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "047f771e34dccacb6c432a1a70e9980e087eac92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/047f771e34dccacb6c432a1a70e9980e087eac92", + "reference": "047f771e34dccacb6c432a1a70e9980e087eac92", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.2", + "phpspec/prophecy": "^1.8.0", + "phpunit/php-code-coverage": "^7.0.5", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.2", + "sebastian/exporter": "^3.1.0", + "sebastian/global-state": "^3.0.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.0", + "sebastian/version": "^2.0.1" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0.0" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2019-06-07T14:04:13+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T06:30:41+00:00" + }, + { + "name": "sebastian/comparator", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "shasum": "" + }, + "require": { + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-07-12T15:12:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2019-02-04T06:01:07+00:00" + }, + { + "name": "sebastian/environment", + "version": "4.2.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2019-05-05T09:05:15+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2017-04-03T13:19:02+00:00" + }, + { + "name": "sebastian/finder-facade", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/finder-facade.git", + "reference": "4a3174709c2dc565fe5fb26fcf827f6a1fc7b09f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/4a3174709c2dc565fe5fb26fcf827f6a1fc7b09f", + "reference": "4a3174709c2dc565fe5fb26fcf827f6a1fc7b09f", + "shasum": "" + }, + "require": { + "symfony/finder": "~2.3|~3.0|~4.0", + "theseer/fdomdocument": "~1.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", + "homepage": "https://github.com/sebastianbergmann/finder-facade", + "time": "2017-11-18T17:31:49+00:00" + }, + { + "name": "sebastian/global-state", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "shasum": "" + }, + "require": { + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2019-02-01T05:30:01+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+00:00" + }, + { + "name": "sebastian/type", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "b2a7f9aac51ce18cd7ac8b31e37c8ce5646fc741" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b2a7f9aac51ce18cd7ac8b31e37c8ce5646fc741", + "reference": "b2a7f9aac51ce18cd7ac8b31e37c8ce5646fc741", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2019-06-08T04:53:27+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "sensiolabs/security-checker", + "version": "v6.0.1", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/security-checker.git", + "reference": "ce8d0552dcb8d3677ab9adb6d19a5837949bfec4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/ce8d0552dcb8d3677ab9adb6d19a5837949bfec4", + "reference": "ce8d0552dcb8d3677ab9adb6d19a5837949bfec4", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/console": "^2.8|^3.4|^4.2", + "symfony/http-client": "^4.3", + "symfony/mime": "^4.3", + "symfony/polyfill-ctype": "^1.11" + }, + "bin": [ + "security-checker" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-dev" + } + }, + "autoload": { + "psr-4": { + "SensioLabs\\Security\\": "SensioLabs/Security" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "A security checker for your composer.lock", + "time": "2019-06-08T06:46:26+00:00" + }, + { + "name": "slevomat/coding-standard", + "version": "5.0.4", + "source": { + "type": "git", + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "287ac3347c47918c0bf5e10335e36197ea10894c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/287ac3347c47918c0bf5e10335e36197ea10894c", + "reference": "287ac3347c47918c0bf5e10335e36197ea10894c", + "shasum": "" + }, + "require": { + "php": "^7.1", + "phpstan/phpdoc-parser": "^0.3.1", + "squizlabs/php_codesniffer": "^3.4.1" + }, + "require-dev": { + "jakub-onderka/php-parallel-lint": "1.0.0", + "phing/phing": "2.16.1", + "phpstan/phpstan": "0.11.4", + "phpstan/phpstan-phpunit": "0.11", + "phpstan/phpstan-strict-rules": "0.11", + "phpunit/phpunit": "8.0.5" + }, + "type": "phpcodesniffer-standard", + "autoload": { + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "time": "2019-03-22T19:10:53+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.4.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8", + "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2019-04-10T23:49:02+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "2edc417da273bafee589a8758f0278416d04af38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/2edc417da273bafee589a8758f0278416d04af38", + "reference": "2edc417da273bafee589a8758f0278416d04af38", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/cache": "~1.0", + "psr/log": "~1.0", + "symfony/cache-contracts": "^1.1", + "symfony/service-contracts": "^1.1", + "symfony/var-exporter": "^4.2" + }, + "conflict": { + "doctrine/dbal": "<2.5", + "symfony/dependency-injection": "<3.4", + "symfony/var-dumper": "<3.4" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0", + "symfony/cache-implementation": "1.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "~1.6", + "doctrine/dbal": "~2.5", + "predis/predis": "~1.1", + "psr/simple-cache": "^1.0", + "symfony/config": "~4.2", + "symfony/dependency-injection": "~3.4|~4.1", + "symfony/var-dumper": "^4.1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Cache component with PSR-6, PSR-16, and tags", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "time": "2019-06-06T10:05:02+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "7ff3902cc747dd5e2c6f26dc42603ed07b530293" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/7ff3902cc747dd5e2c6f26dc42603ed07b530293", + "reference": "7ff3902cc747dd5e2c6f26dc42603ed07b530293", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/cache": "", + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-05-22T12:23:29+00:00" + }, + { + "name": "symfony/config", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "6379ee07398643e09e6ed1e87d9c62dfcad7f4eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/6379ee07398643e09e6ed1e87d9c62dfcad7f4eb", + "reference": "6379ee07398643e09e6ed1e87d9c62dfcad7f4eb", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/filesystem": "~3.4|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/messenger": "~4.1", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" + }, + { + "name": "symfony/console", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "d50bbeeb0e17e6dd4124ea391eff235e932cbf64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/d50bbeeb0e17e6dd4124ea391eff235e932cbf64", + "reference": "d50bbeeb0e17e6dd4124ea391eff235e932cbf64", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/var-dumper": "^4.3" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2019-06-05T13:25:51+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "4e025104f1f9adb1f7a2d14fb102c9986d6e97c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/4e025104f1f9adb1f7a2d14fb102c9986d6e97c6", + "reference": "4e025104f1f9adb1f7a2d14fb102c9986d6e97c6", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "~3.4|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "fea7f73e278ee0337349a5a68b867fc656bb33f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/fea7f73e278ee0337349a5a68b867fc656bb33f3", + "reference": "fea7f73e278ee0337349a5a68b867fc656bb33f3", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/container": "^1.0", + "symfony/service-contracts": "^1.1.2" + }, + "conflict": { + "symfony/config": "<4.3", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "4e6c670af81c4fb0b6c08b035530a9915d0b691f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4e6c670af81c4fb0b6c08b035530a9915d0b691f", + "reference": "4e6c670af81c4fb0b6c08b035530a9915d0b691f", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "^3.4|^4.0", + "symfony/service-contracts": "^1.1", + "symfony/stopwatch": "~3.4|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "bf2af40d738dec5e433faea7b00daa4431d0a4cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/bf2af40d738dec5e433faea7b00daa4431d0a4cf", + "reference": "bf2af40d738dec5e433faea7b00daa4431d0a4cf", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2019-06-03T20:27:40+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176", + "reference": "b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2019-05-26T20:47:49+00:00" + }, + { + "name": "symfony/http-client", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "c453b1bb8e8a8b79c9db65a1bd86822f8c6e2bb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/c453b1bb8e8a8b79c9db65a1bd86822f8c6e2bb7", + "reference": "c453b1bb8e8a8b79c9db65a1bd86822f8c6e2bb7", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "^1.0", + "symfony/http-client-contracts": "^1.1.3", + "symfony/polyfill-php73": "^1.11" + }, + "provide": { + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "1.1" + }, + "require-dev": { + "nyholm/psr7": "^1.0", + "psr/http-client": "^1.0", + "symfony/http-kernel": "^4.3", + "symfony/process": "^4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpClient component", + "homepage": "https://symfony.com", + "time": "2019-06-05T13:19:12+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "05201f91d4f03c58f7324d019bdd791c8e8e418b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/05201f91d4f03c58f7324d019bdd791c8e8e418b", + "reference": "05201f91d4f03c58f7324d019bdd791c8e8e418b", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-06-05T13:28:50+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "738ad561cd6a8d1c44ee1da941b2e628e264c429" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/738ad561cd6a8d1c44ee1da941b2e628e264c429", + "reference": "738ad561cd6a8d1c44ee1da941b2e628e264c429", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0", + "symfony/debug": "~3.4|~4.0", + "symfony/event-dispatcher": "^4.3", + "symfony/http-foundation": "^4.1.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php73": "^1.9" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "symfony/var-dumper": "<4.1.1", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "^4.3", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/css-selector": "~3.4|~4.0", + "symfony/dependency-injection": "^4.3", + "symfony/dom-crawler": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "~4.2", + "symfony/translation-contracts": "^1.1", + "symfony/var-dumper": "^4.1.1", + "twig/twig": "^1.34|^2.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2019-06-06T13:23:34+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "914e0edcb7cd0c9f494bc023b1d47534f4542332" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/914e0edcb7cd0c9f494bc023b1d47534f4542332", + "reference": "914e0edcb7cd0c9f494bc023b1d47534f4542332", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "time": "2019-05-10T05:38:46+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "82ebae02209c21113908c229e9883c419720738a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", + "reference": "82ebae02209c21113908c229e9883c419720738a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "backendtea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2019-02-06T07:57:58+00:00" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "bc4858fb611bda58719124ca079baff854149c89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/bc4858fb611bda58719124ca079baff854149c89", + "reference": "bc4858fb611bda58719124ca079baff854149c89", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0|~9.99", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-02-06T07:57:58+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "d1fb4abcc0c47be136208ad9d68bf59f1ee17abd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/d1fb4abcc0c47be136208ad9d68bf59f1ee17abd", + "reference": "d1fb4abcc0c47be136208ad9d68bf59f1ee17abd", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-02-06T07:57:58+00:00" + }, + { + "name": "symfony/process", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/856d35814cf287480465bb7a6c413bb7f5f5e69c", + "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "6b100e9309e8979cf1978ac1778eb155c1f7d93b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6b100e9309e8979cf1978ac1778eb155c1f7d93b", + "reference": "6b100e9309e8979cf1978ac1778eb155c1f7d93b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/service-contracts": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2019-05-27T08:16:38+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "f974f448154928d2b5fb7c412bd23b81d063f34b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f974f448154928d2b5fb7c412bd23b81d063f34b", + "reference": "f974f448154928d2b5fb7c412bd23b81d063f34b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2019-06-05T02:08:12+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "2b7c857d553423b2317ac0741fb2581d9bfd8fb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/2b7c857d553423b2317ac0741fb2581d9bfd8fb7", + "reference": "2b7c857d553423b2317ac0741fb2581d9bfd8fb7", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/var-dumper": "^4.1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "time": "2019-04-10T19:42:49+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c60ecf5ba842324433b46f58dc7afc4487dbab99", + "reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2019-04-06T14:04:46+00:00" + }, + { + "name": "symplify/coding-standard", + "version": "v6.0.3", + "source": { + "type": "git", + "url": "https://github.com/Symplify/CodingStandard.git", + "reference": "e09716d7ccd49c8d5a345ea689ff4c2525e6c003" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Symplify/CodingStandard/zipball/e09716d7ccd49c8d5a345ea689ff4c2525e6c003", + "reference": "e09716d7ccd49c8d5a345ea689ff4c2525e6c003", + "shasum": "" + }, + "require": { + "friendsofphp/php-cs-fixer": "^2.15", + "nette/finder": "^2.4", + "nette/utils": "^2.5|^3.0", + "php": "^7.1", + "phpstan/phpdoc-parser": "^0.3.4", + "squizlabs/php_codesniffer": "^3.4", + "symplify/package-builder": "^6.0.3" + }, + "require-dev": { + "nette/application": "^2.4|^3.0", + "phpunit/phpunit": "^7.5|^8.0", + "symplify/easy-coding-standard-tester": "^6.0.3", + "symplify/package-builder": "^6.0.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symplify\\CodingStandard\\": "src", + "Symplify\\CodingStandard\\TokenRunner\\": "packages/TokenRunner/src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Set of Symplify rules for PHP_CodeSniffer and PHP CS Fixer.", + "time": "2019-06-11T10:25:42+00:00" + }, + { + "name": "symplify/easy-coding-standard", + "version": "v6.0.3", + "source": { + "type": "git", + "url": "https://github.com/Symplify/EasyCodingStandard.git", + "reference": "c0c3d8b1b118f634c693f4773023e065e4f1c810" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Symplify/EasyCodingStandard/zipball/c0c3d8b1b118f634c693f4773023e065e4f1c810", + "reference": "c0c3d8b1b118f634c693f4773023e065e4f1c810", + "shasum": "" + }, + "require": { + "composer/xdebug-handler": "^1.3", + "friendsofphp/php-cs-fixer": "^2.15", + "jean85/pretty-package-versions": "^1.2", + "nette/robot-loader": "^3.1.0", + "nette/utils": "^2.5|^3.0", + "ocramius/package-versions": "^1.3", + "php": "^7.1", + "psr/simple-cache": "^1.0", + "slevomat/coding-standard": "^5.0.1", + "squizlabs/php_codesniffer": "^3.4", + "symfony/cache": "^3.4|^4.2", + "symfony/config": "^3.4|^4.2", + "symfony/console": "^3.4|^4.2", + "symfony/dependency-injection": "^3.4.10|^4.2", + "symfony/finder": "^3.4|^4.2", + "symfony/http-kernel": "^3.4|^4.2", + "symfony/yaml": "^3.4|^4.2", + "symplify/coding-standard": "^6.0.3", + "symplify/package-builder": "^6.0.3" + }, + "require-dev": { + "phpunit/phpunit": "^7.5|^8.0", + "symplify/easy-coding-standard-tester": "^6.0.3" + }, + "bin": [ + "bin/ecs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symplify\\EasyCodingStandard\\": "src", + "Symplify\\EasyCodingStandard\\ChangedFilesDetector\\": "packages/ChangedFilesDetector/src", + "Symplify\\EasyCodingStandard\\Configuration\\": "packages/Configuration/src", + "Symplify\\EasyCodingStandard\\FixerRunner\\": "packages/FixerRunner/src", + "Symplify\\EasyCodingStandard\\SniffRunner\\": "packages/SniffRunner/src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Use Coding Standard with 0-knowledge of PHP-CS-Fixer and PHP_CodeSniffer.", + "time": "2019-06-11T10:25:42+00:00" + }, + { + "name": "symplify/package-builder", + "version": "v6.0.3", + "source": { + "type": "git", + "url": "https://github.com/Symplify/PackageBuilder.git", + "reference": "eb51eacbe57f6dfe18278ce0783eb45f9d219d15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Symplify/PackageBuilder/zipball/eb51eacbe57f6dfe18278ce0783eb45f9d219d15", + "reference": "eb51eacbe57f6dfe18278ce0783eb45f9d219d15", + "shasum": "" + }, + "require": { + "nette/finder": "^2.4", + "nette/utils": "^2.5|^3.0", + "php": "^7.1", + "symfony/config": "^3.4|^4.2", + "symfony/console": "^3.4|^4.2", + "symfony/debug": "^3.4|^4.2", + "symfony/dependency-injection": "^3.4.10|^4.2", + "symfony/finder": "^3.4|^4.2", + "symfony/http-kernel": "^3.4|^4.2", + "symfony/yaml": "^3.4|^4.2" + }, + "require-dev": { + "phpunit/phpunit": "^7.5|^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symplify\\PackageBuilder\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Dependency Injection, Console and Kernel toolkit for Symplify packages.", + "time": "2019-06-07T21:09:52+00:00" + }, + { + "name": "theseer/fdomdocument", + "version": "1.6.6", + "source": { + "type": "git", + "url": "https://github.com/theseer/fDOMDocument.git", + "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/6e8203e40a32a9c770bcb62fe37e68b948da6dca", + "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "lib-libxml": "*", + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "lead" + } + ], + "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", + "homepage": "https://github.com/theseer/fDOMDocument", + "time": "2017-06-30T11:53:12+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8", + "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-04-04T09:56:43+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-12-25T11:19:39+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^7.1.3" + }, + "platform-dev": [] +} diff --git a/configuration_sample.php b/configuration_sample.php new file mode 100644 index 0000000..728b8c8 --- /dev/null +++ b/configuration_sample.php @@ -0,0 +1,149 @@ + APP_PUBLIC_PATH, + 'public_dir' => APP_PUBLIC_DIR, + + 'frontend_config' => [ + 'app_name' => 'FileGator', + 'app_version' => APP_VERSION, + 'language' => 'english', + 'logo' => 'https://raw.githubusercontent.com/filegator/static/master/logo.png', + 'upload_max_size' => 1000000 * 1024 * 1024, + 'upload_chunk_size' => 1 * 1024 * 1024, + 'upload_simultaneous' => 3, + 'default_archive_name' => 'archive.zip', + ], + + 'services' => [ + 'Filegator\Services\Logger\LoggerInterface' => [ + 'handler' => '\Filegator\Services\Logger\Adapters\MonoLogger', + 'config' => [ + 'monolog_handlers' => [ + function () { + return new \Monolog\Handler\StreamHandler( + __DIR__.'/private/logs/app.log', + \Monolog\Logger::DEBUG + ); + }, + ], + ], + ], + 'Filegator\Services\Session\SessionStorageInterface' => [ + 'handler' => '\Filegator\Services\Session\Adapters\SessionStorage', + 'config' => [ + 'session_handler' => 'filesession', + 'available' => [ + 'filesession' => function () { + $save_path = null; // use default system path + //$save_path = __DIR__.'/private/sessions'; + $handler = new \Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler($save_path); + + return new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([], $handler); + }, + 'database' => function () { + $handler = new \Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler( + 'mysql://root:milos@localhost:3360/filegator' + ); + + return new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([], $handler); + }, + ], + ], + ], + 'Filegator\Services\Cors\Cors' => [ + 'handler' => '\Filegator\Services\Cors\Cors', + 'config' => [ + 'enabled' => APP_ENV == 'production' ? false : true, + ], + ], + 'Filegator\Services\Tmpfs\TmpfsInterface' => [ + 'handler' => '\Filegator\Services\Tmpfs\Adapters\Tmpfs', + 'config' => [ + 'path' => __DIR__.'/private/tmp/', + 'gc_probability_perc' => 10, + 'gc_older_than' => 60 * 60 * 24 * 2, // 2 days + ], + ], + 'Filegator\Services\Security\Security' => [ + 'handler' => '\Filegator\Services\Security\Security', + 'config' => [ + 'csrf_protection' => true, + 'ip_whitelist' => [], + 'ip_blacklist' => [], + ], + ], + 'Filegator\Services\View\ViewInterface' => [ + 'handler' => '\Filegator\Services\View\Adapters\Vuejs', + ], + 'Filegator\Services\Storage\Filesystem' => [ + 'handler' => '\Filegator\Services\Storage\Filesystem', + 'config' => [ + 'separator' => '/', + 'config' => [], + 'filesystem_adapter' => 'localfilesystem', + 'adapters' => [ + 'localfilesystem' => function () { + return new \League\Flysystem\Adapter\Local( + __DIR__.'/repository' + ); + }, + 'ftp' => function () { + // see: https://flysystem.thephpleague.com/docs/adapter/ftp/ + return new \League\Flysystem\Adapter\Ftp([ + 'host' => 'example.com', + 'username' => 'demo', + 'password' => 'password', + 'port' => 21, + 'timeout' => 10, + ]); + }, + 'sftp' => function () { + // composer require league/flysystem-sftp + // see: https://flysystem.thephpleague.com/docs/adapter/sftp/ + return new \League\Flysystem\Sftp\SftpAdapter([ + 'host' => 'example.com', + 'port' => 22, + 'username' => 'demo', + 'password' => 'password', + 'timeout' => 10, + ]); + }, + 'dropbox' => function () { + // composer require spatie/flysystem-dropbox + // see: https://flysystem.thephpleague.com/docs/adapter/dropbox/ + $authorizationToken = '1234'; + $client = new \Spatie\Dropbox\Client($authorizationToken); + + return new \Spatie\FlysystemDropbox\DropboxAdapter($client); + }, + ], + ], + ], + 'Filegator\Services\Archiver\ArchiverInterface' => [ + 'handler' => '\Filegator\Services\Archiver\Adapters\ZipArchiver', + 'config' => [], + ], + 'Filegator\Services\Auth\AuthInterface' => [ + 'handler' => '\Filegator\Services\Auth\Adapters\JsonFile', + 'config' => [ + 'file' => __DIR__.'/private/users.json', + ], + //'handler' => '\Filegator\Services\Auth\Adapters\Database', + //'config' => [ + // 'driver' => 'mysqli', + // 'host' => 'localhost', + // 'username' => 'root', + // 'password' => 'milos', + // 'database' => 'filegator', + //], + ], + 'Filegator\Services\Router\Router' => [ + 'handler' => '\Filegator\Services\Router\Router', + 'config' => [ + 'query_param' => 'r', + 'routes_file' => __DIR__.'/backend/Controllers/routes.php', + ], + ], + ], +]; diff --git a/cypress.json b/cypress.json new file mode 100644 index 0000000..470c720 --- /dev/null +++ b/cypress.json @@ -0,0 +1,3 @@ +{ + "pluginsFile": "tests/e2e/plugins/index.js" +} diff --git a/database/sessions.sql b/database/sessions.sql new file mode 100644 index 0000000..8d0d1a6 --- /dev/null +++ b/database/sessions.sql @@ -0,0 +1,8 @@ +CREATE TABLE `sessions` ( + `sess_id` varbinary(128) NOT NULL, + `sess_data` blob NOT NULL, + `sess_lifetime` mediumint(9) NOT NULL, + `sess_time` int(10) unsigned NOT NULL, + PRIMARY KEY (`sess_id`) +) CHARSET=utf8 COLLATE=utf8_bin; + diff --git a/database/users.sql b/database/users.sql new file mode 100644 index 0000000..3338a43 --- /dev/null +++ b/database/users.sql @@ -0,0 +1,16 @@ +CREATE TABLE `users` ( + `id` int(10) NOT NULL AUTO_INCREMENT, + `username` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `role` varchar(20) NOT NULL, + `permissions` varchar(100) NOT NULL, + `homedir` varchar(1000) NOT NULL, + `password` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `username` (`username`) +) CHARSET=utf8 COLLATE=utf8_bin; + +INSERT INTO `users` (`username`, `name`, `role`, `permissions`, `homedir`, `password`) +VALUES +('guest', 'Guest', 'guest', '', '/', ''), +('admin', 'Admin', 'admin', 'read|write|upload|download|batchdownload|zip', '/', '$2y$10$Nu35w4pteLfc7BDCIkDPkecjw8wsH8Y2GMfIewUbXLT7zzW6WOxwq'); diff --git a/dist/favicon.ico b/dist/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c7b9a43c8cd16d0b434adaf513fcacb340809a11 GIT binary patch literal 1150 zcmchVOGsN$5QZm2NTI$erQpKHrdQX(jn+pVxKN`Ng)RzW5+8_2Xb@Y)Dkd6tq9V8u z3WAh^C@KZ1kA;tohzs}b3NC_*QmUXr$oP*rH(2mdT{z*(KX=aj=bX$9kqMvFRKj;Q zwI&d~A);J>5-PDega~WT5us%#Dc(Y}C4WpP?+fS;FaZ*z_CFzgiW=w{I02=q_TUz( z?=^H2uwoIK1n%|Ay21~QgjV1emYtWttJdz^L#=DjJ@Ex*9UPc*7<=rZo*_NAh4PxA zqkso~Ioa1y$e+3kIkXi29YNLi&lW}vY6C}ut4{8ou(7w=$_=$v{yJ$h?y!&bJfq*( zL_NQRF37$6e>%9erGV?p^lRFD?|5J_eupXaS;QluyrOmBT>PJhirMYb*i?(4Tf=j~?VvnUlY_ zDCVuuk3E&T9aP~Cr-0i-MaKUjf_|U!=R&t}_CfD=d${p~HH`BPaqb9aXT}UI$iGRg z>0^GlZ`vM4?;$*LhfI(RG|XK4GF+@-W*W}YJT5&2N_ZyZuaM_Ry=%PWx>r0P(Rc?> jRc4}SfGA>*agjwN{7E7DEm(*)%rSx{B0<6wBoglxJAy|R literal 0 HcmV?d00001 diff --git a/dist/fonts/fa-brands-400.eot b/dist/fonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..4f991ad37a9fa5b8c837c22074a802c917386463 GIT binary patch literal 129648 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 X;h(-E@rAdnIq~tY+kZYe{^$P-$I9!` literal 0 HcmV?d00001 diff --git a/dist/fonts/fa-brands-400.ttf b/dist/fonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8836d9ff640f68dbec3382859658289281634e50 GIT binary patch literal 129344 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�>JI&Z1^neD&JEaF_A^2cqd%zf7XH<#M2 zflDEY0Qek|ZpNH5K*N^Kek9$R9zgSXa)FG|w0PM|xDbQC1HeGN(}=$q&y;F&@zo5W zuUHB_E1d^}dWR|??9l^Jt|FbH$KsU~z0g2OSc}y?o4{w$*3GHQEv=5=-)>~Ex6uYT zY_U26lD(g?gJEegZfpvhDi^F*i4ErVk3-zm%doBX0j+f-jj^*aiRRD-tu3mLWzvYY z8(BoP5lf59ZAUgFZ~$mC^NX}JDt3!~AjAE@cHmmM1zps=*-q>$dw9&ykwec8I z28;6Y5k{gIc(+j**2ravKOe4EGM7;o0hhzBaU7@7uD3GO0vsXGs9g67)T>gYFDK9b zZ43@1NBeW&#f0~&6OdZ=L;cA?S;CD{jr zFx$B3<}FH2Mn3kL$Ixkh46A?_xdTRzyf;2E>hBdI7ygqQ?gl$SH zrOm2!vFu@{Lt%*?-9X|KjBpBJrYD!G?@dfiP4r*Ct9jnq2(v*Un=o>vM4@iha=FCF z`l069!w+2b8^7_HS1eFLQ8$7hZPRuEo)bKBIUlL5-egdu~3L4LDRY`kO-K zCl@@qP{xL*_eb!tv;7eXC#({n7ZQx;1*8Uc-R@OyIDIhhyN@_6=k+Hpx%f~%m%44c zZ*2Xq=P5Ok{dg+%``2DOn!Znt4+wYW``|v$rzO}R8)>|*5F~C;PimaeXdcgdr{n-h z=>t=WNAH;N=|nm;>i(9s;heL>UHZClD)xK%$^4vmS>oN*O(4z) z0z< z{BQ4FTFR(&y*oX;a`*yuPt9G8F@az|WJlxO2`w``xj0_$kA&5<+eJ1sh5V+UQEOj) zS@E;ad9ksW?6-P50mCm}T|KdNtY%JFFzKz7-gVO@-JXrFbjH?<1+6@`qcJn)jAVtT zn{rmYjDV-K4W7!6z=306oI?_ap5GQ>%Ng zx#odu8lQZ|q4RD!Pt{-Fz4q1DUc0|PQ9n<7FF7R*SLWO5bNID~h2scf^;9sGyB9?| zxvkPiDYinXqwTjO1IdDD_`&+1FV{4Y+eT@E1IS;y-?PZm6uTAh%ZU+L*+0Y{py%ML>1x2Mx)s#-SFCtwYw zb~H{9Mdp4QXTGIAjSVAp@`n1*0V1Il8jmpAx)ekh5LZZ3f^ghx37I2LSc$?wxS=w| zY^*vj|IqW|dz>aAvWXWy@cv$PdbF=pEj3+M>5N^^jxHRF zl~&jZ)0!j$F%j^}K!XQ5_}pi$eBhOpvH|wvVB=8Th1%txkRYP{g+=KZ>rJ+OWz4?V zO51xa8y)2LFW9p9?N;mx+qw$1@f~PK%*E{A9k*g%j>mp$%(C7k_~PR@XqNSQ%Q|RT zN3Eo_8;K&*`khNHYuK{hW+RqtUBTkMWm!GTdN;ehg95Y|Q~1yl7qN#L#QM-_7?Owx ztr+0B&27h}*9cvOOCk25WN}$CHzS+P^@^8yc8(T^h4<>!!}IO-{INaL&(vp|ZY7`A zSFR4L2h`?teX;g0!)41Zd6{(AqpV!6Q~u`(%AWg^^@bXe-GFLed;y*2P5Mu3iGca(q)_-50@Y_KhGhF)2XQR1qXz0K33;->K`U=w=dv{f)K4Cmc z?I-b8c?sx7oTf;bDv0ZxFp4X(PBbsMnM|JB27>XWH}JABH2{-i`bJ) zo^RiF0;aILxvL0{~!(uamzL4POImnwR^SmjsX*7Qrz^vOoq%U7Mqx z8+1R?1?W3CVQ{5V^hu%i#d4lq1o|b*2^t*!754%ki>w9$mR0e`G%_Y|323Pi`4Tse zHRGMCUrmG1=_>1M_;4`h0jM#1qH25M3gQG}J_5AT1le1NjB*$@G(E4lwrEv$`0;|K z)h3deY9_@z9BrpeY)s_O@qS4z$M5{<`N

I|vwwU(ot6AtgVZlnSAWY4K7q-pJ@~ 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

VN2<Xke^_}?R=yfr)!8DNv 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�r0cx^+IVXfw~N;CnEIa21HuCd0*+5 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

fBvA&WLOZ7q(= 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 OeR{T~XC>bN0002Wa^SE4 literal 0 HcmV?d00001 diff --git a/dist/fonts/fa-regular-400.eot b/dist/fonts/fa-regular-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..f9c3418a55ee81feb6bb16e0bc691fae99330530 GIT binary patch literal 34388 zcmdtLdwg71eJ{G#e(ybd_PigGM$%|TGo$x&G$UKKEI;BniDQez2_}I=vL!zf*%Erh zP6(iaNdpAx1UF4{=)q9P;RI-NcpVxZ$Iup18aM%3E*~zp^$mSc4sB(Jlt5v8zrVHj zjAkU+p?uE$<6dcI@3q%nd+py^>$iUIwdTM>g3$F2L12O?(4QzM5>FuKETh!kaefj6 zzmrd8g=I?rAnX=qg_FXfkQBBHr-W%?0oNyRP6|W#?iS{ermI_UJSr>+ zGr}bD1i@aHbE7aQ3<#Tq9-)X-AD(HuM(y{ZzInXuIDh|U{=Obz7*7uf?Wq4ZhYSxh ze7$J5B#iIgecor}_$|~I#&zql6N{&V&!B?^_Bo8$ftlIElRvudFCP{J4fV0YiOJJ*!jFYN zMtT_KlP4!nOn2q`KQ9QU{!S2-+va8$7Js>aJFefn1xdi01{I|MALCuKbDk+w3oJsk^9xhw!;@zVZ_sf1CFbJyQNV%X6L- zK90eqKdPAVyfM1OpUnQ5ofQ;h?`21DeZ6~rS*R1v&;wFKyo)-=*Q|(l6Gy4cmNr5>nLHcQ`>&m~2V}g%e;DG3Kj{~&qoNiiYXxOVFhobvQc^_RbAVqKojfHCE-IOg1^_m`jLc~s^?)pr?b zd^tQq&uYvV?zWB0fjk}D` znYOvveAxVvXS3&OzgS%uJ}{&pVl3zTd9Ad{_73lhC3R5 zk~o(5apSJWziE2BxxV>W^Ourx@>ufO7PIBXma{EiNgYZ3OL|}WLaV>^p4RWSmNL=I zcy>qjshpV`&pnj;Lhf=~TiZ-`x5lFlf9&t_|8YY!-rBj; z(XkY6Y;D?~NT(C~n_3&6ktDX7D1I=Qwmmyy(#zcSEvhS&rl7Y9s zJ&=^@?y;@#W7~~3W4ku>?$ObAPsJX5kcGvpee|(V%-FTdjE5dOYG=jhnPBkDhYp3` z@|N(SckkFC;N4d)F#HQ4ytf0QrjQwkHnOmqZb@agvV381AUaTp4dt`xl$uV_v5^&0 z*?eIj8qTKFFz)8r=HmWDxO6_8*kAMx=JSUJ)6%A@*H~wlA$K}gl0hq;x#H>7sPAm zbxMw)8es#C=pPKx?|<{rN5A>#N1j?*dTNQOw<%WA+G%J(jeQQ;kAAcCE#xmf;-CjX@ZXINmVV)s4Bb1dd^z&`DLUjQu|@&ozBH`c)B#F zvIBVhw!82{Tc@Qg62<8*kMNLt~HIiAaL6ctDbL&6m6)tR$1kAH|bg5CRS^0|!lDq0|34 zjd#7<@kKTsPF%Qv_9xZSPt>yv$x`3k9Cc~w0J{&p@vZ}e%TyU;E*jG`6sK#BWqD*` zL&ZWfqi-s^qj8|XeW0=ItpHVSY2&Pw1D3Z2S|V2z0lD__zl_GG9TBEp#!1sQ=5}ASW-j)O zj_P_$H%3Pdob;Nj+R6FoMn&8QXh>^es-g+4F8R@@4>>d(l9&SryNMHpEr#)NL%-87 z0L#dGb;Eu4q(c`B{bPo4Cx>wBdvpV1R^9$#VQhmQ2-_kNNSZXD1fybcRN~~(cKW19 zv!zS~YPw_)Oi@#M6ipABmaZF8ozD}n49!RwYGy3EZF^m+t}a#EIq!-kZNIK6nx+_5 z*srMy9#<^CW_b)PqM3#K=jow3-cLA)W5E9au)mjMKhYpy7G`f@D4#1Rz$=@jQ$1iQ z`Qj)@oi=Q5D_|{D3t>@mF ziQjl9>qEiqJ$|3o60^O^Bxu3-WcU6dexCf-n|JQK`R1Kn+tY$_S;H@6pz)tU3?us&NVdm4&@#Aqs`g+VCJni@~k_b=#V5gC#IlBEmdaUaTD(q zw{_3sdroT&ISp!0H8r&Cyt#A{Ig{gPp_{>Zh{HQQLX7wL2zba*m~Vt)+GP?zl;SGO zh{USW+EvokWr|gdXoL+pd~dLP9*9bT7I3AOfpcw^)n-lLd$rRA_g^LNf~ur6JFy z1Jy+SeO{w@;cGZN!p0Ke3RyRbrIm{~TmK~0gq_VT)rFYzXu|K{XBc>Kk z;O%|){L`^mhdNfexV$VVPNO(4YsOsOB^{7{=*mCP1wVY1QvC1`rEuuu#Y0{;&Y!=~ zrz^YZ77l{M@#H$lUTGLLZ$`VCM98`>s^qc`#uNx)I8kU~k#Hs!1qmYwu#7xK1r#lt z11SOB#Z5w{ShkmmVJ+lgrsdndrKxG`XxwLy?C@D;B+&K1?PJH{H%*sr3difV-+lMn z?rw_vWH}mPr<=z5S??_a{kPP`!+}UtmVKjkgO_;{IjztoO1Xq5obD{{xU0}*ylzXe zUsiX#e#efUbYncJX`0>Jm~I{M=wjP-UCMwedu(JTF@B6>dY0t0Psl{7B>BMzN%1UM zExLzEXx~=cWyHddLQyQ(}cIZe(paiW^bnM+Zh3=3cgtMGpGOhCYLA2o(Rb!{e1jT{d&0yM~9`GJ3SI zE@#N>3IqlVTXyeCN-Fc<%Gc30I55(fqU-abX|zu$%o~9Cu~^jEpL7(WdZul7c-Lsw zBkQ8<^{mS|9_%zdOqG(mc5f*R25@D_s@9T7@ymdhDHH96DSGwdqDC4!<^gER7;wc8 z%_u2!IT9>TqKYyO#!`(8vo9SO*veWW;lW~+XdbIdi+*p^3krw{mw?#DE<$ums_(M) zSomD9K<*y4*m;y$rE-00M~4am`SjE3RD}w*ahl`IQR24|SbH0VjL;2St`Hu`2HV&u z19gsq%e3S|LoJb3S0^Zo2V&81z%h=iF_YP5OfCK8KKAs!<0arts6G^`znLHZ%JRLF zfPSaX`aQ$4jE1>6q7ye$3HL*^%B8;p!fnDEI2FX~5IdQwMKSb5FOaSx8z5fA{sQC| z5HSe-F%l9`B#%=%MdA$pBTXU*Om39XN98(Lbbx&#)$ffp1zJT_4zr=2Na|KoGQ4Bn zPzVP@G9m#(4qEm8jsfv@I}))!(9k8De#H|`HUv64LXoYeW#~3De_@AhJIo6GsX$ZA zYniFWw!t<%VEuy?(BmOnZ4Cu`TP@Fh5!;SvUEy?~Sr0~AaBta*3jvc)XY*#XawBEcm73mpbVObShQ~iAr`%Vn4 zZdm5lNPKU&AsO~4epBvh_<-g$RQ4oqzzxC7;07RP+V6uk4k-j-e^pjR)5Nl zm|3qcscp@Q&&aLOpxzuvhr2Yz^ghPB5Oamv@5m#A&iIFT%UL6f#z?Uvj)*i)4lV#e zix3L?(L$MbQmn|e{6^pjwV32D{11*Yl+=0{eWGsr@99rPbJ6m6>0aF(Fs(iiGB+Nv zY|VhN6RCdGuoi&~+o-}Iujz|;H$b8A-uM~}Li4NI-!I%M+$jh#Vs#{b4CO~9NR9o4 zt&Bu=!U5_AsJ?u*YHAL69#(S$C;&Q29~1*h&;+nWP?UkfAPNV$wIiGQqBB@#C{VA_ zXgT=$YGW1oeLhlS4(@m(KGR!4p7O-`wNb~8xQOHGncRlc06lY)umdxnn=m@TI5~bh zq6(i512G9i5`97kZqlf|3=QR>N#RNMNjni9cZDLHKOVLh)roN8M$pXz>Os@KM^(Qs z_K8qF-(rVLKZP90CBreEuuG$A2Od^S&#M#a*KPA4rI=ufcx23_>wx(@bd`wE3B6#X z40Tzy0^y8l>BwM+>@U6Lrj)@hYwu)!BD)X=*CpFl*xt9i{D3O%v(0BryF*nU+LO=k z$zRV^c{b{R>qxP7YP__fGFcS&O_{cB9wWobb10nOvzM#%T(-P&k;6)M1(Gdmm`}BR zh@GWAaKX5P8)?8OD>>-CRqKr_TMAspOOoYnZOuwcBpM4hiGu^9;!vTevOL4{6XDD%L{Dz}lcC*$ehB}is4dwSHJ40fh5(?{G z(`*i9v-R{?+i>X}ot=uD(X@=rUO0NgjsgErOw+dZxAqO)bYr2fwSOzX&or6?JFY)Y zw1D(Z_GQ4I0d8#~z6{8LT0PLB03tdx5AsgtxklE68BWAbX#t%5T*&OhY)3l>!|cBs zLA$hU_+U8@eSz?vVKCgx=9X~4CzjsJhPxmNzAK+yzTLDSBl~pAWRfqwvupG1o(N59 zaIGELuAOn8q>W6m9*B)>>Mt`5z#~Dc(Cf1PcoRYi-VE*0Rq#kb99&f-)72VdtSUbi zf$%fJxT1q5In<3;~O5q0GhSRkSNAaka)wqL);$ z-L?#{3F{#2!v`(*G*LY<`)J}5X?vlngmv)TswhZ`u48y5now;gT4yDzG5ge5qA~6y z(>}*mTpM=`RuR~0*4nwtCU#&Uw;^kz@JVQDDwl;+ABzrf>$Yq6eg_u;-@}gyHS81B z-gCXG=nJbYM{2D}hbz)zsQ&f3=nZR|Hfdq6sOL6>tMBS?mFcfK0M!kuO)i^qw2SqC zEpWhQ-_ov%nhwmk1^59NH-fC2!*`-z3#*!_H#c(-0on$Awt;Q3+-GIjp#M7j4|34e zz~V>KRu745$ky_>PD zA6eGShE(puAcXilzcG2MdZ!OQne@6|9E8Urka2wgW&3}153-5UdA6m-@*XwTib7QA z@~Q#;5yOZYt{e})$zPx^2ZYz*-Ml{`vDz#QY6A}}=i!`x$E0E|lCtGUIM%~Pm12zC zwWR5k#Yjvu67@l&Fzra-Z6PKn4%qhD*hqh;?kObNx?7uu`feDBrOuvh>D$tg4UKBD z?yqldZ?CWOn5tFo!84W~4ocGPoKLWn-G(~qk_9=Gj3?UzbvJd7w6z3$(xzlQTKdx2 zv&SSoP}g3+Jr~U+qCQg-*%u^L*0jztE?Kf6>88jzPd!@h$np+v@Io#on*t)@$l{0( zye*`gI4Zcf#xKfVZ-vzzis!6z+Qf|lcT}Mf8&$*BS&y>AIlbQD1T0>SgVns&6za*| zS%e&ccSFW2WU5UrYgp@>zpAV1VO>9ruDPk)UF5B-u+Ni-3g_H+XP~BV z?^0B~7Mio2t1n;L@ZD$2@4onJznf%3xZ$YV*)`hzOu1&}-|)?ESOtwWT;=7C-o6Y! zVF2_4ag>hsR)xULEEkbl0*=nEKUdD61rp2H{2b$4PSXb?Cnv?NcTshL5?P-ht)U(fa3=$7GO7FGPEH*oOSAu|YV(8GK> zT0NG@o~ZL!sW#nj>w$fs9*;dVv8Ip)cf|2O@&5 z`@~|dsO7X=Ors!}Vl3-Y!HN~&UxL9cw(Rpou5a^pT5Z=ynq+$m&uc=K)#YXl-F$QK z&V2sPpnHDy_N`lQ-};)KmX@BD7p+dK{rZT{S9vnJyWPp7$^rqr0F}LUsPg#hshXdm zf~~h7Mg=VhJP?H#WRRZ%x1&Tw6_VoNUV zSR`tMnlqE52s&v!HUfXx?R~d39yl}55gLQPOqSDaW^lB1+qk7}s_!0PFTg?8-s(Sb z+rWW15Q}ijkr!M#iWd?A2PutSlaBh!#O#?3X&Fne60_^BO3TW!5XJArFw0$oVQXci zoVXZvEBDTqzQtM8|FNUDcSkRKm^5VmL(izw2&6ygF7{srQ6i7O5q#d*ID#f^Tk#(V5`7=>TA+cU3 zM(~|&mi9Q>@PFn3ixj6sw7bk3io#a-0&gTQ(6zZl$Z@E_w3&su1Goi@Bf=3YXkj>j z)M6@(bY8=qoJxM9CRV%(XZeL`2I`u9gyZ7fQ>f?TIu%;j-8Zu8K#!K*axuQW|gdwL*| zHfoaCUKRMj8rY{=s#I)f#%Uj=gKg1P6=Oy=j%vIu2&1ny zYR+87(AX*j0LNAZ=@as9C%Z}m_E^^?(z5C?e5PObiJB6(`r;n1*Au@g)TQ@-)XFq^ zf?kiRh^$x94*OzI>es^ChUGf1Hp5oq#>#ByDqtolDD0rF$N#J?k!VX?9k#P$<&w)Q zD41wNL|nNaB|#HBps6j0PwfZS+$)TO{tZUb#YlQc!x^8UVvT8<@LOAz-f%x1D8`}` z00azy0e5gfB^e6wKg5)%qUB_A3~_lle7jo8Y~rF_Uvm7hpyaLh*EK7lWYp|#fWjHGt@HX_KaH($s*ew)|>6@|^!r+>nZ*!H+F?LPgP1x*VwRc-v6 zjnSwy@e55fzFcMN=z9pxfP>4Uv7Z{u>vyBZsZA`zdH^?&h;VJ@cZ;_2JC{1U6a?Un_O zNLNZ%z9cHJXG9Rg&;ksB@F#&%Q#=x+Ko~Y4?n9i-#X?F9$n0b6bM*uA7CG#(Ok=Lo zZcol9VW0~pA zW6`etoy>dazbCD`Zl+_$zL))GM{g#&ckAVRxcmKR<5aMRgG#G0k_ZtRlR33^!ilgYrDmPY)Ty1b+N!)p5BSz9PP1E|-)BLpj+0oLE z>>xZ@y5TpB9^=7OW41X9QxH5__K38jr#`!kKn&As!H@MFekz^o3n4IriH2EU-w{vm z`uk90oxbYZDrS3QQ8>0r6PboUQvhSPY7ZqHAiv&+pb+Z8Cl6(oL@{b!mf}sI7a<^} zK=>93*SJsy+qZ4q-#XSdl9k1v=1H`~TZ0{~txbskgxFQ%VDY!VW=n1?la>`pYV;V< zNG6&ZXpouQAY-KkqZBH>ael1EE9=Ji ze_4|2ZyDQuOPwSJWVLB*YqKJMTap@_JQkFd=CRQx$hymAYYGJfu11#MF3Sm}(A$%j z>L6#Uay*jC#2OS8?b$G&=8hW&M6+fP9t~RzT0iP#(%wg#DC^MSHB$1&XqA(rgUrv1Dm1 znPeA|xnT}&jpvO@Xe;3F)mFI`} z+}tyBdo5zqT#mX3dU9Ua2`X|E`r}sg$Gz~_yj%Dk*dNGfQZ|Bdz@6T38c|MHdZ_GE zr3O~g)M^P|1rH(CG!o-?5OfN<#Jge;{vPCK+^p&sQX0hv={`Lx=BX`vtc$$y2Uojb zHRB>$Ub;Zdzer{IVL8c$xo(OF4pLqo_b;AbeH{IZi}e{vtj9o6jE9g+e$PS){GGSX zp>`yl_tUc&HD093#^Bm4Gc=9MN(xt^rD8hN5<-L2yOXn}bIyn`_ z9VZk6=>Orp%wIYWD=}UN{IWbgs-qXFIa(z+fp;&N&SEco=Pa2 zd@%7wK8Ik+fs2CA2lNEcD&0cPAHYQMt88wdw|77W)<0ocvYTdLC8g(Yy5}Z**x79h zO-&2i9R5(9-a9k1w=_XVf<<)a`3GUsodYCXvcxDjs#A7oi;~Sl`{fZ&F^I+m$U9M( z?Xu+(05*$=u*y<~4K7GTp$hmdkUfs3;6&{ATX!0ra>)BjZ-_B=C^wuIZ)lB_(dH8n=8*zFKC3UzY* z1>$_7Oh~nv{(y9_xwEtRuKkVi=y2nso&ASWjj>ajzI(SQp7I%od}dV9BWz^;4H;Eq1nxdy=Y`&cj)4jET4(B0G`2ptCo8tZTJwFqEqbh_rS$0DNbp7IY2HwCaLlmvSU^{D zO5Df!l!&;c|AE+uKL^D-4n2*BYeT4myhmy-WO7VoGVPN%0$2ei#r0xks)L3YL5w4< zQze5C$&9qP$GIYORWYEvVeUnkMi*lp35%iNP^4MQC0S#%p;wIt)V_vry_{^ME)FegxVmhP` zsXIc$;gB47xOsp@Q;OQyaOQYJqoy>429xhl)l9&Dujw_uX!+Eo3B$}-o`*cPV!aUx z?-QB@ef??6`g2RMJ)e;^Rk9wUiAB0gKgSX-^@M7C(kC^rU`W=KGNq7pIT%zl*ycE`*ab6$ijaCm!f7uq z6vI%EyvbH=e3;j2OCQj+Q?bUxlbnEjFpRl#ib~?J7_fhIlf9Io(!yZkk3+=y)sMbL#@c3?OJvDQc8kH%O z`F@`i^*<#^nu0*dLk2pN?9!{Y2A|_qT^q%P^>!|+aSfWB83Qrkz>MYw$n*wjrbg8% zh>|LGYEoZPQ*yGd%lnVCiJOy3(BDw2=%fLRq~39W>{+iU+HHeTslCPY>SILz9seRm z30lqwWZqvpW^P@03>=Q-Rc375f;f$@dzypX1Ya|RD!4PqNdgJVT}%e8wo=U6`_WZz z5d_=XRb$n#dLUB`g6dTS?Qpu-l0a+nMS@t6 zBNE67Q%Q|8?OL$0;eeqR3c3-{>7>_Ok=A#WPP}2G^6t~6U$-3;14UNJwKfx%K5-=l zbgCQ$b*-45@-RD5QO)l)^qcsy+OAn0fjid@llluRy}gOAv+X|Vg!zyz?yl`=L7WS% zkanT8vB?1!LAZ?yV)H0N#}9HJuo8#`SaC3*DFH1V5c^b9F_kA^<1jz|v?SGBl|Hpx zdf}}Q)-S%5vGZ8P_LPb>hC`CHbsNKi^gC9sHkV%PVNIof=w(e^CDzhgdXeT3$=4US z{t*RqRHGQDs&C7lgKt0H45xPeKuQv_RW%PO;C!R#oL#Ow4B}P zJ+B$;Lbkqiu|9j3XdS@aWPKLFQc1dxRi?(40n?2Is-`a+Mu{R4mUA1hea?=`i}}mf zHI${z(E8{dILxgkYl+Gq0y;yhJy2iN+H|l6TUZm;hGkYYkg!*(1B*VjS|`g@1tp!X zya_du59W%v4BJc^bYQP=1lzC)Y>;A4hSHE>Y^*<`MS{?2(wwXYAa{e7#)NV(M8UDA zg8yuTI;f^;`9Lhn*O}7tK=?e;T>b-kA&?CD<(Z6tTE`|VYWE{HVzZ>zTj@ZkDH@86 z#BMVXhdy>+pFj4)SfKP8n=aYoiaKKiyBm$L7|m^B5*zJEOj<3bKVuk8aaB3fy;YJ9 z_^j=^rbe`)`vYQVFV!jZ!A-IPNyzYmw!c;jNIoMv z5=o1r%Lh%_8%k(VcH1QS;Dx7;N8OdFDp?lXMS{?ZpqqPU|yW@6DoJhPigCG{(& z)@?b3Xyt-vbtAIH(7L=Rg!NOpC3?Fw%p{^Sj=YlN`~~qQu*kUPm&$q7q<~ImMoC}C+)yF?r59)!#|wBOn}5oqhvF$+PsKyJN6;#Cl43C%xDRI!tp{F1(|Jth zHKDC$thp*CTb-^62fkQJZrBQJ?J!sS*(kL0ne~ks)BQR=wI_G(SI5Mss_n+*$ys)@ z1_vl;fk=Utp|vKYrNwASXk1?4Tg~j{p4K8KHGgz&INsCL)Y#lz$1)j&m}J_=q)cl@ z8e<3ft}_R@ul287g4LH5O_SwX^JBLzE!{en&zo?<5^cJ`?LIUH#8bCy-2Wj`u}L!k za$u#56T815=8O}vl(!NoU7R4o%MZ~F@rI04m~=3e0cA>kge+_VR0E$4`kCke`Tj17 zr2qQh1tZVj9`YG)gf)Yt5mzu9!s)MrDdpy^#h4bhitubxEt&vpO1ydN@FiKgC)HdGH4(BJTReJ;sL`6Y-uL4lqmvl#Cjpic4+gr0+elhy z0O9oEfpY8uEL2G+U>5yaZI^7M=q?w6jqH+uB@=)Royf&{OXS7U1&rf`i{Zq^HpmxV zm|$bDSY8wu_NThQz6yE%Ly+a0NI>cZN8^%GwpWa}?%4_x=8@Sj1q>0}B*khQ#1=44 zl49wC>_5evlLbELO17MF!pb1ROv0ICMX7aVUWhmJB)y+oBS;LU3wnnZbF#px+2>U3 z@}t{1c$!q%r&?lU&j=Wx$5Ushe$A)@H3=y%Rn#!Ub9Z>}FAv{vVjxsi{4(Y4a=JEWxm6d4>>1-a% z)?q$hvF8J1ImeQa4mnH*y9Je*m21I*Eo+pa5ZAf2K`!Hjz`CkuF@vB06aFLAP`^WX zFcOA#OG=GfQwZ*qQ=bez5)`Goq_31NLU}{sq`PKgobTpPdWMr9=VFs#s~&YzV`HNP zLNs1_rq3yh`9ZYOp*wNVojlrcJ=Z_0Z1z}7?MNG2S%}-*FkjKmp;{$n&2i%CBRT%c(5pQ@_K#_9A^ z6*KD!GC@*tyqhl$eYpG-2&JP#FJn9?5}$1Swcw3F=td6M4`1353gn3bz}`c?2xp}M z?ORnQ^5Y<11s-5~TJ3;?iaZdYF%|ufqUA|hi1P^A(hSy`wOUpyEe=>Kf2V|X>&1!= zl7P@~(m-);)x!TrA#m)(HbPUnKBcJo&RVJeYY1iZIrn@UysN;un3`&JBdYoK3LrI{ zoRCF*a6sqGllAfd&hFLP7OmG+iTgjO1%lJkY8?mdTB}!Z-#y3>SGiS~Pq4pAjcQTz zvKr-L?b~W~7`&?-6(YJLsJVKbqZdG(iG%j`ByJE!zb@V~R?&%gB2 z`SV=%1;ZqrN`sC)BwU9cb|Z0N!t8|e4EPF+p>o^oo5A843(&$guMn)<@f>y#9z^ zKZt!tBrLhMC00ZQ47yN>muKL&rIqva06*|Kco8}{@%n}h>==-F%Z@&%F4x$btX3Lu zHs3p^&TQQZV}x$tq(==ptzNB_72LI-|GZII_es#c${t8g{BtM8J(kxau03;k*4_5z z>N_O8oiCrPK0f=ZdnTt-< zefOlCC9I**5MRQY14v53Fx7xLZkUqtN!2tG3NnL=2p@?%$w&&aw%N21#=u*u*d~)5%U* za876!q%@M+tBR;DHK=aq$1T4a461&F^9I%G^tp98&fT{;B7IF9&b?PDySKW+>hu{` zyyx*NtK&)QqjRtg7O_JoqIK4e>*~4!$AD9wV_6zSbOQohIoB%ZUu{h=(|8Eq7OppD zIh#JnBmah~a(ICL^7_TXf67a~hO3cXoPEc5ZOc_TZ{ztC*ibv3)IRJRw6eEHA+ezaiCNz;NP|u#XVn z@z%_HXFYlWF}T~oEp9-x=mA=vv<^OZ-dEPAmt|8|*X8j)(ZM3ZAYfRcD7U0+oqu@-;U_9vF9jLMK+SD6SxacP6f)r@O)@tFk^(quIdh5uU=wWjvf%SyYxhG?>SjK+1s9T+9fM1T>Iute+jvV9H}PC zZByO0Op5(R3expf&SK(X36P~svfGQV_wiO((`sf&*M!m;~ZHY(01@59=3o+ z7Kz7F#{h*%UByvci?{3$Z)zC>=XU#TMX9%88i?Ee03tp=quBo4x)_!Nej{i}(By5) zyj+FDzr&}MgO8&@xzXpPQnp`|>ha(%U!xop_1*q@iK(`sA?ipqpQ*;@%2=28q3#kk zzd8<+VFd^PNg8YyS~!JbkYNTWd`;Z_f>(QJKORmcC14hBMmkmJ1uy7v0?wl>|T z^hvhV#}C*SmS;itC_(oS5%c7M-b!)PHzM}w7-$E^26lc>E*SEGfEa=@CIVeE1&j^( zwm@A-6`<|jz-zb^p{X+Im7NT>CbUun4Is|1~ZwGH%0S~ zydf#bfHjt1XL~}jPY#7QA81yYmK|f7a!bgc>h*^Ts{AJYz{WJJ zjO&Q$C~wnFoxSITNBP&Ey4NY7#4 z-p>JtVqA0F2|0iwlB#eB(G8sc5Y5BNLK^``z?~*+oR`UJqav+B&T15Y1R(*h(nt+hM3ER(GOPkKD^Wv;6c@x{6mg?k&7aq;zt){u5=j+44)ddl=dh_XMHZv zsMX!QiM$`1?yj>vUEz3{Rm8(xo|menlxkU)+P4Qg4_4;MZ_>V?LodM~Ks_~Q;}1S* zV*k;Wf?*I1HHe^|Bcke3+25?yEV!QFx;dCG+(+l=ECEC-w;&?7A9~s}R_M_zs8Nhv zg{$n;Di36NV1JWNd%|0fRkvJ|#&#t>CT0F`oi_6U&K`e#L}8X0#wO)l)m9BX7|*X$ za=yfe^(5a`HX%3-zk?(8lQr_g zN2>$_X2E`7sANA-btBlyarr=%wBTy|u3TFq2hf;qqDay*ABZ7{3lbg7hMXNz>@2Z- zI>S%iB&~(EtgHSf4&+DE>2~Y~ATl)&i3DVsjw<{m{)V8(87%i#Ej-R-^>bL?7`5#v zLcvs3f*%F4i$_GLwXTaAq&>s(u?!y+7yduw&!Bf#=P7xR(~w;;PhsPWaVxHCvysa< zSpKn%%&RmIxLaL8;iC|~Ey=Wq(0U!=(_h{B!Zn(#Ku%wMR%C4z$y<>e$^2|}%bH)M zAAYy`@g}$ZzXU&P;gafp{A{0a&E^d@NyV};i}uF_c5=H4@jRt0#Fm3{fuzvJ;Emy4 zRQOM`X|O`>nx-{PtnV5P-|fkA+!ZZ<*mNvnukc}GcW8ki_SKC^TF?q4WJ&iof6ycL z<{_LPJ^E+>;jccE%jeyXM16MD*8mq8R(6%K0%y_zfE0U8lgwqAqdi@c*VCNj`UKIpRs3=6nl&~H!BID(<=BJD+{M~- zCvXVKgEw9(sZU?*JJlw2Qg>O54SA+h>d+qAMhUI|3wW7}tXSQ)O)ew)vOJd=Gr^+%@5r zEBb`u(+}ZWQ7~?)KwaDK#OF4EIk=YRLBw$)A+FKmkJndtm}?E5d3Eeyt*cCm+k*!< zx~w9Kyw0{&>ESYwD>LBo*^x6G+Iw#mn$`-~4rQ&_YP2=)Azra_BRg%G2Y~$}{K_>p z=Zlc`$`(t_H43cWyQK6@;fE*|He~laID=!aAfi ztiHws%^n^Gff&Y1yN`6^_$i-iST2PO)q6o8=hpE2QNC@DJ3N;*kCWg!zImRS^?P-7 zzenc*m*pGeGKdE|s+|bIU9RDo;$>Ft&P|By=-J2vQml9qIK9uhs9i=M4SJ5_LU6YC zb6p@WY{`N)>mfCs1wh+5UM=wBL)c&dKj2b}Ug;j}lnG};BYI$rFzj9<0Axs&T4j!yF4Rh491+_O_*rk0+^It*p4 z<^C&Gl(=sY=AH^^zOj(whI~;rRrHULV7F5=6aTA+&B94DNPO>f(;_sL&$wwxXu+xo zr;IE#ushwfB4pT~x@lF2iw$nt6uQLsx@lMi#Q)`{{X$6UbkhMrllHsmpwJ-wj+>64 z%y-;$6lHz}&n}a}$bq#KaX@JXh+pHTMf~FKN8Gf8{ina^re&eP(r#K2Ze*w2v?}zm ze{$2Na8S&40EM+uU?eC`hk$(-D;Un46BG%s+z4&0B#*OdnmEnZ%DzulX(NO8#&5Th^qIm4A6!xW;?ChkAy4uy6Tq_Lgha zEP%cIZ~Nu!!GTRZ#lgO0TTN5$o1R}dK6`R=k~gA#wH39$`aOi!IluVby|$OBI(Jlu zXgInn-F^UgLO&5sKOcSw-pd7~PXLb=IQGnOj4J|Oe*(o97v~l>_x2t^yCxlM?KwP)8^7N8ZZw|% zyD@X4cdX8W|2N0^Et zU_lmQVeE*2y(n3n)vAYr zvHfhEy@uVwZe<79ZR~dTTH#&nAbTCVgWbtq&)&f9Vt2C%HpvdL!)%I8vm@*%JI0Q) zd)U2fhMiz1*({r5Z)Edqfi1Enb{{*%PP6;j1ME%gLH1_$7Dfwgev7@0y`7z5?_dwH z-)0Z9cd~b}ce6*>d)Rx~@36D%QT7;nA3Mi>7t1H`tMK!S^1|Zeyu7q9J+BV%JVG&c>y_Tl$pEmIAUYMC&IA$H5oS8m3H91eUYe4H0(lebP953~+THnw;0&LJI}~*?nws=7=&gePZ^c=kPp1(tUVxeo8tvHRV5sY1chB zd;H{LHz)eOs*IWGBa7au>!rEsyHm5LPRfVDEaZjB`=-@}H!e-iPwUes@0*?hFvbkA zkV8u|hvY-kGc)?J*@d~|i<2{+xtXPfZl|#7^n|i-;`q$8a%3JAN++g|>Gw|Ge`po} z>g9Ihp~?Hp{dVH`$x01wCpy(x3ur#Ni~~a5G&i}h5I{?(7v0Qmg4tJ-vosg1x#pc9 z9|1r*9jM2R#bZk+4lQ&q&3W7uRU<7dos>_^&YrA&1NE6XHH#kRqpTlVIzBUX{Nz!m zwz;Vz2Cw$i?EI9;Q`4spPtW*xa&Gq2^gJI6=N88t%K>Bl@Ui3fO*{FMOH;>Zo#cJT zr>19}Di6<2O{3S3Ok*HV9`(#k&P~sEqvK9at4Ed=56#XPC#O#>@NAQY#KElqaCc#P z3J5Vr_=hL0*+chCA71P}IzPKKXS)|mC;6oZNP76*`@2uhE>08HpPV+1%`VL!1(q%t z98=~o6HEtZ2ml9t77ia@SeTt(@bDWm#~;ApI)xVIP~KX_vFUmD;pxf4)86v&OeauPKI{v|;hE!ed>TY1=P@=-K=s>;XLdS8!Dt8~SdBNm!v>W&DRVIN8_bXG!A9&z??Fa_u z*fda?CNJ+e?dUujaClnA`J_$-yl#=fSRvL8Z=78}O-RS1f zC^M5wM~|8O$O~9b(y77o zpT4j(KR17TVOm){4x&ulnO(U8j?Ivw4M3v!(v>9qKF+WPmAN@DA$)J59d=+r_}K?W zw>vVVM&mLv0c0NU;p6V3k5-Viyyg(t9M?t zOXv{J3c{&n+&AsJv3FqGJAd3D2XMQCJvLy)8506aD&tAHOnuJq7 z!*l(}^gV~C8827D5k1yOEd`eir z{ig*%+&?{YXyRvA{p|ySprJliI6iUrtnhQ;uaVw>^2rku$EUjT{ht+tlRpsz<)+!0 z`Gw!_+lKqsZ^k|f$A;k1c;5ap5rD}yRLNp)TN zoj5A^*f~lIIz8h6Ejd>_E9cWQo!{e`Q~uKLd3mRdAdcc5b)n8b;EH><4#6o;?^OTz zcgEM`=?oZC{)wZ`bNY7qU7kl}&Q<-Ekj9V0BUG+2DpPsaEkorl_oK3a{}Nli^e^Hl z-d(!%TPM%06M1f(mG7ai|G>XX#d|Nl?c&=ne(K_9E`Ijn z=P!Qg;&(3o=;FV;AimJ{!mTfS@P%*x%Kxj6{_2M>-u&W`7w>)Xp%>r%;s;;+#EYMP z@k=j018O8J%d230Wd+vP)xi1z!1}csSmRZ&UVmZi!mSr3FTCZ#!+`aRt6;qvu>KSJwr0!TlJ^hZpL>7m{l53_ynp5W zi1)+ZC%ym0`?&XE@1J;&dv|;5tmmu`T1Py8>v@l-)f4te<|Xsr%zrhXH~+!>zWHqj zH-HWQQ~WU%81F*L$tF$j>c8^C>b(DT)1$(D!dHZs*a`Lp_Pp33o)W($$n`8HyXkXw>11BaWwJs#+{9S-}Gp6ee==gFC^vU(d5%D zX3MoLr(3?1I-L4tdT;t%tH1S**6+8LGSSRfc6;`ToS7TT-Jknh?qXY8+jQHr?XB%^ zYXAF=y&YfeEOfr1v($BM*Av~r?#Fxdp2NL*?*n~Zeedp1_J3-?8kike9y~qxgZ!ra znfxz?l0%Oa#KJ9wXNqd^AkaX(^xI4SAgbWIL7^3x)WlRDQ&YXHhZTy2Xl#VV3i(_X znYkXOso`c8EwXR4#-j~??eFscbwf1X+PT=#u^4V_ZQ7SerxW{{S{t8|B(~Ii)853# z{Qi$6_U&(OH99(s^G&Zz#nr}ix>1d%UfJ|9S*Gs`zDrMw{p^cETuAZn`&cZh_TpRF ztt^)P8jk&(Ae#_qe1 zg~hCWZig@+2$_Ls zBMYnPmQ;2N%NGU*q63B4P(GVZsp%A*8(ATh%@+ou;cQ9`<7u94D(*{!OJ~E0eMRqJ zK7Vj9Ep2RS+9;(5e{uKz{dey_I<{fM*oM>liuK_{B3xhG=l7qjPY?S2gX#LG@O=N> z@5b{DW8g#jrDxbnkPJ1!Co~H}5T8-;xgb76pHp%K)i4`qME_uj-u11AAO6vS&O!`r1stA5mW&w=hNbSDg+1>SEQI;}*sk zZT*taCP1QQ13+kuu;vV>7743pQ+6nj9m*GCO)M6Ugf$xW&``Mq-3<<~v94|L&ghmM znIq9{TMf;x8S$n_pk5Sn?U^HwUNziwxM^c|eh*#PY{E>`FW1{`$;KNs!_e5Hb|R8s zEFO>~UGpU`3Cqc3@@MfR7oLEFOTa-BSm^YBPUBtgc6^bIg%jt_q5Vm<^b7SgL$cI2 zJ4;1`S_J2n0a zNrlz(uXFAE%V>Ps5n<|OoHT7^ZudoN=3>vth_1(UV`Rj@MX$N5otzJ^SHyjRhO`!@ zDw@#hk{^xwkVC^Ei8*kv>o`%^Y#1Lg^ji%BunfOLH{5SeICR0#KWrGcatOD)T{kdh z)$QLPjIPrIVOt~uNs|VYU_>mANSr*{PM;KMwv>rLO_vOUDQZfOqUk}?(se_s^LYZ6 zp&1E7&5UNZZmUbx)un1X=fPOg_Uo#mX^LTm{hF%ab;a^)mdDT{npwzymR_pk{e+V^ z3j7ZM`+GU|6Ac1pVfGe=^0|Tnys}w3)dQB2FOGoJX#<5~4@;?9lgN_2+qS)Co9wk? zEt-#YOH#*Uw{D)fIYEg}J@&%2Z_H%gc;=0n__epPJ`~*6i7Dt&OO@Go-NZY@t=)6@ozYrDPJ`N0O${wOt}mTO&cqm6 z=w@&p;_yz75aT^Q3?6bsm=T0x+GP?zl;R4@h{USW+GWz!Wr|gdXqXK-d~dLP9f(SS z7I3AOfirEE)n<+3ce%?s_gR^U^x=L9zrJvyuXL6;%2}s`MOC=R1LZ^|=SRfk9X^z| ztUUb^rAJst>H8{VsNcCfH6&!+d4n;gQ7dAWV5k*`iANwlVO$GaF~E<0@6ku^=p{XhSuUMo#THHUClbCfyP-5o-F0>p zy;d6AYB#XB`d6d(tL*ex=`Giv?~gCVh^d7W_a zTPpeEy7E)H;is=sil6SM6i$7-c*x7f`1|MjbY&Mk!by-go?HdlD=id+>(QxP86D0B%FywLBdD^EF(`*0Y%H^KuSP&@sN-ymhEL?SPOZWY5BHoZfY7m z68G7|+kKW933T0i^XSp|byKD5!tuIox8MGz+neG(S&l~7-A$wYtoMe2{u}Dz;XouR z%f1o2!OJ{}oL1-(rCh=jPInf!-&W`{UbVT{FRR;My?uL6x-p*AG|ld9Ot%hubg}KK zE@eQKJvK6v7(YfbJxg-hCuAa3lKfzVqyvt@OWiWm(ASB&J7#dGJ3SICTGa(3IqlVn|JL@N-Fc<&ezd4I56Cp zqWiO=X|#_k%o~9Cu~5|6XF3W|J=3;f!_JYcN7hBz>sga?EZAv!m?|ZA?%G@!4B*a? zRjnnF;@3QxP`N&}qeBIOeDXj0;26i$ zn8|E2rk4J8FMD$Du@dkmR38e}U(e6qvwUwQpx^4V{=%>1F(BS-MIte;u|Jsz^v)=;pw)$-gG zvF(V~6;215^#%>b^C7?ZW9F1k71H9NR|MFiSWmn|vPu(mIbolG7plk#p zXs~xw^B9WLdh^Cqq-ThQWmRlV_4h^WTQRh{VVPSZ@jc;&WZ0wlO}VS#J(|~0+2gzc zKTh>~tk&LOs8zK?ab3|oD)j++qcLS#{V6+QX1%_owk0b*CAUU{dUGHh?$Q*~`v~ts z%oS?CBaaL^;~(NJXN@cxBgKw5BGR}xxBvt#LMZG<3uWF(u_D*<8-XX(Vv@h`Z*YX6 zq}Ideh`Q~+qdyhRMa$!*dv$lfwE95ETz|x}H3PIzi^{)t02UP)sgrylpm2GHTD;_FcR4b2dEpM`tsSTsX5?zSj`Qf0O%+k zCh3&XRyprpkAZVa`5%##wzkIK2oC&?sy|U(_2BF^2GV0 zQOAzBh~w&++=kNtJ#(Y59W$SsFgn3FIet5$3ZD)GF$qKxeL^R0(x|-+4dtOp;Z622 zI}sjpg(6%(61ErA@o?f=(9Qko0n@%iRevbu!%?2FOCxFrURF!b zs^jW6Z1Vu6m|%){Wz?nXfcY$Rm59&@yCo;f!hN$Y6->y0a03S7oZ zlI3l6%}Pro8Vfgxg99VtP@$-_3;`SERF4FrR4v7_v!(I$WWt7;9kUaY>C!kmo8BeX z+4b>wU7cMg?n>91E&AFMds&S5NQ~`G{QBuckws0PruoeXD<)Rv(l}%nA2=H@Dn#}y zkV{|`&8LDigbBe-7Z9qmcnbajj*%wqjJOCdO7tU=?h$kJ##1B-)@L!pH?*CV;)=1? zP~y_qHAlMaX01;QbtbPH%I`^bhQvN46xO?@*euFs>*=+&4W+kqb}Dj4(=sx9?#MOU z2mC`ZP21An+BbCFwS~Uc{w)AM(`XKCzxo)_0@6F#7Xg0;xV4e^G9U+P^+1aPi0IHf z$UB+m8d(!&I1xLg1#tFrA+ry&9qk+pv;S%Y?b4FrgXKW<1;V>GfZ=8~wS)scvGfkM zp$nqmgZb>z&87tz*{543lYH?VU7K$9L}*fjYi-YV?TGs%ZFrLPKx|}_f17Cl9tm27 zUYGU9>x2p6_0S$&1&`VBL*0m_2L=Z+6>Tw)cBuiT zP%%xq3Z$kqe&JzEF1)mb4dRz4tq{jUT=!dWZuan-hf1TETIK=UoHcDwfUs3MJ&OXf zqdaHy>3YaD^(qd!JX<9$?dR|3oyzWOZME3z46BXiTbpH+-okcR)(&=ioHF8ll^S?O z4qbQVUjrxwS{DZj#<-JA`wUxlZQL_>k zsD-_vo?92LzRSZ^roZX{R5z$LxopbOF4h7z&jFixL%S+!Ixyn~;0It_53+6!-|>De ztZJg(+{{4)XzTRZI=0DjpOs;Q{_F5R$U&C_iz6YJgl%3Pp4W4}&1Fn}5=rJ?@f%zR zufZW$eO@R0sqjwWJ;I0AQgX~q*Mrb9kfCXfd4?HRV-Kpf`&6fus`Az8e{Vh2byian zxRQuxah-_$OfMyMot@W9k5~x{$M|}e(o;?@TXL=?_quLjH}jzN0}DqjBPu<`@VU}? z{XzQHI>(8s%m=E{YYRVZS$?Z*3v%V)W_Wg1bJaCwG?FjKidN0L%hoZj`f-rYa^VIH zylnO&M$XM%;NxXlU#arrY-AdmNmUDmHPk)A&zI)CvR2X^uZ^SUek+% z@K^*gt`DGW|F7;rHeNc*HrH6*qsD4chzea?F~C1$7*WHOibunoe1a#55yOA2bTnjs)HoVsheuZJ&+} z_jl@^LZYp^wP~pDn&DXL^y!wq%^lg$h$id)`sVib`Z|xPTIC)*W$EFdB;CyU1WVa% zsG}}fkVDCMvOQ3DUH5QXOTZ^>Ova<7FPuJoRMG==?e*Jo(M%%hGc}QYPEut}>n!7v zB^#1%ik$P*qveh)@9+jM+|jyT|LA>G7L!Npa6QTA#ptZr94r=812ZWOqs z3XRx^8n#Y*l;3NZ)Jt8F8dUEuK1QNgK||k=YBf_HHCYZqUx2{i9a_NXhGsIy^ zgVlqKse>-aK?QR^9bif8LlzzU#KKj8?6;Tp$OOnUoHp-wi23KLK-zC_F2htB2d+Eq z24#b%cE9jyqMKx=64M>rLzS*rDIn33mkoLlX&K}g!Ufi-DsxqjgyNblK`tDC4TtPi za@kh(9nG&qS!^&X`K9iwdIM6x!wpr3^mv0QS&a?dgGOt-Eqa}gc{E?tf3%S)M#$D} zzm|wLn4Y@h+03YEnWfKiIpDo5O|8v|j=FHzv_sxyZ%9j~4S7>iX4wEz=l(I=fv<-BdPKRkyuBwhFGFbYkR5%Yu6jN1E&I#6-{_nCf6l z+yoIF(w`QU%i$2nC2gya&C!8DRG~7H>kJ2}jrr^l`;I-(+G-4TH#Az3r_a>Ppkt`B z43Dqp>TYz)h7ByL_)D+h;IV^d5Za)J`E;~;G?P7E=dn_4y5H6V5nXKjhj@J|AB(|I zuu1l8HT=92^l*5vtGTu5DDR_YPtdUAX1mXy(za)xP8W3l)w&tBy`hak_*ls=&VcU} zk1#6ib~z^61vw-WUN11dsa$T<&01YP%u#avO#X}Oq2K`_Nw)}?|KE5I*Y1W`m3p$U!#I8Hy=U;EeJdig&1UzUjetHL`4;n;^E~) zSP`UT=$2><5)xU{U|TAxq#zfwEOrOHVewcbYJ{3I6C(&ZX+1g&f7s1^H#P1*HP8_n zg}+Re(`{yOq;>0N;S=9fry|;IJFMEJHJ36s!`L)0C?uq<^0VO*-Q$y*X2(5rg=(kpfBQ^|WI) zR;3u1&a*C*D<9*P6cTH7Vg%pWW@)#h4gY5zut;%AM7ztpp(t#DFYsFO0$rI)gdB$& zOq*GlJAhljI3gUef)<7YNG+zqNar;?$*JTwYGTF9aF*YiW}vRwSI9M3qSE6JdsV4b zQcSCE@H3iEuiq;&NowjggO>Mh1*ZOxcv)6dT87zL3hWGM-e^40(--oIA-kj5r`^hw zfL-?q8%~+j0|C(+OZ(tqf?J-(pVNz~KDgoK+74O?7U4*IIk*H}I~5H1pe961L1kmG z0`X)l!QcWZT&C?m^23O4)`@1^6g7_|1x2II6eX`MiMkRn#Sn|b_HT+YhG@IXw);6* zld}g6qp>rf8@mm|Q`}&yhB+=VNk#SqT_<>4+UmAeY`K?{2B70Ywv9!JSCH$Ji@7{5 z$88?kHh7uFeNWTmw5JCWX`?2I4OT!xLX&%(9N7pNVM)7eqn@(VErGqNrAozyW?c4C zI@lI%RWW8{OBs=rUj?DJblK zuE)R9mPoWEE)U!3(Q?V9WfV-bAtJ8akCLDX9?;Yl#HaRyYwi)oK>r3K>0%^3q~VHV zs90l~Cj8b`q&GZI2a2&M1pomb@o8({Ga+Qw*-C6joQ{+eo}&}>=Y^ZQHVUwx&&F_?=_B$N01J(^d; z;rUcDS?T+8uKe2z8uxO2PYjKV!z3Jmv_*J$?g)&yQ1yB)hcD0rS`!pXm1tFb?V4s9 zaVs45)L$OSOCNz=)2b;OWW7~Y^;cXhH&$!ss<2UE^XAbjhY%z)s{c3MV_T6- zE`LbXpjQ`EwV-K1rmBs9zdjn3#(%4c#^(%)&iX#QrD;`f325(%{9!}(YDBAHDU@9+ zsuCS2=G2_4Lk|$rK;yCj>vLjq1DZRIMws&Y?;7wc(d9bl@C=&5GS^pQm z*}%n=ojiRLmtSJlkKMAs5$RIt(icPp_KXN(7+QcK5dI`kYKljK6bQox#C?dfxmZYv z0hxV_eY$=?-YkbbmTAm(+U?1?gk1ljOy=)~OXJhu^+fcC*wc1PQ|Z2#N0oYp19Bp| zzt6MT_rn2SD|_>D_h*cd^$mPlP_gpu8N`l!8u1f#LJ}CzL)srBn=R%K_#uTW!m>;< zLXKihvpFpSP*e>P_mETsgi$Dg5X93O`$_V)iEM7)sXBhm-@bd3r9@cn>bkCcW=rqr z)!*NoHLo6hO=tY-9Lr2?8jW`C>tx=8|21jdc0HXt_P*#hJ9;zGJzFm3!}ZtpMqeM! z4@G;gEu9~^HkR3%za|vw+k)9IaASx#%9db#qPW3M*vLuhyHU6u(36N(ZQ+4tB!$V3 zNmi+_R&5`H_By0hNr~0I6~_qc=)RGvG9ot$m;A97+w4^8e4~CpI}fMY7K#tCrpNB4 z%L51)Iclvs*b)RdSd&{~%nxBMSo*ZCzjR4p$4x7hdW`#0joIcbOhNEy*~8NIp8D((0x?Xl1wYnz z`K5HGFNDAhCK_gaeMdaK^B+Tvb^3~LtC;PLMd8>gjb|DHO#zJEianHcfc#n?f|wl*RD6Jl45 zgT>$eip{yvOj=eXsnKIZBbjJwph0GGgN&6HkgrHN174B+eo(k>4K~%p`xi+|1E?fB zb1>omj8drh`uVXMudEy6|3yizzhQLS4Rw+jkkzKqEzOGj9Z70%@>oz-nny>PAnPub zttk``xDr`@vn(f+LT^uAs)L-Z%JE1l6KhaZv}fIXnmcYB5Y3uFc+7^evf+>unTi0& z!HT)3WhFKW7M}8S;Lb!ULvyDEzrau$9>#Pe#|!b7cqJ$}n5$H_QUSdeLwWMjv0ss~ zXtz~5M^RQznvEhonkSf4&UzQNkVMlT6f?^UJoZZcU~ zqVp&d=yjCD-#M~Q<@qT-JNwk^9*fvCm!r;uo}3kSfQnp){>)Clt%GE zdQR_(d1}jU>pXA#ft4;;$vBUem(Ef1&r?}`T1v7FTsOrF2PiL(=jYF^ypI0G&DxA4 z)?=V3#zROZe_){m{?1xwP&<;&_vu}X8ZT01V{mPj8JfmrC50=|QZXHB37}Pw(AYV9 ze|6Nw(w;qIrL*T@otzBgi4%$e^#8yf<}aOv6_Lh_+sH6i&w&H95gl>qKKXttpCWfo z0Wl)z`&+dCiw>mRc$ z*-bOBlG3x+-Ekcbc6#f4Q`7ubhd)%O_e@XkDUH*aU=iJU{$AL0X8{S9EHMg>>XaSY ztYq`hetE=G45D!X@=g?HyKK1xfXyNztg@70of{HSr~>{7WRIgMI1zhS>kgw+4tam? z4KcNGAo5D8* z>P;;ioOFDFh@Jg!upNC7k|24K+&aJD`H}kV~qW z4Z?n~*w~{qNdfEc1LjG;9&KzHOa{lo&H08PLZ?;D2nEqAsu>KLDmo_=jA{+CWoq*L zH^7|sDeX^%5U5LPf;rpXrq;&6cWio(oBatH+LE#&xQ?g&xWA{ z7D9b9mQfnSKGq=lzUfhly49evQ6n6&m^dtZEY+;5<2_sHZnqDJ<|hz04GTNMU50Y7 zCXnz!Y9pr@=#Z9yScr$cVFIJIyrDiufwL6vgl0D*_M(xA-J$c7vV1Dml5d?0ex;=s zQeHL}xyyP)^Ok<7hrE9mifVBg^3_}*rl0b957~jgY;3)6cUEkPwdVVJTl82K;t)4ZYP;HY8iv4F1Rl(>)cDG_l?{|&Jbe*=nl40;+5*M?9Bd5_dw$mE#FWZEZj z1h4{3itEM7R0j<)f*40yr%DDPk{M}nk8?-ps$xKS!`z!NjV{JI5*9ME)FegxVmhP`soO&v!XY{EK=S~LrWCcY;ncB)Mono74JO~Bs+oZQPSb0A z-twu7^s$|_y$wx);Dvz!Wz;L5rjyv|@ zCPe+t3QNL6m!0W^!3B^(C2L~_&`3LIPc*UOZ>kUh?!xDHtDfbEYPj=(cW1V^lEHf( z_jr!p#W1kLEgQuKB@_EtDtw&NhFme%5{q<~euE`k>T%Whm``e8!H}#eWlACIaxkc9 zu+4E=u@hzp6(RMCgv%b>D2AaRd7Z7=IGERJOYhgUld;Cc~wS&@1xYg{?3ORH+VFqF0}79 zqFM)}z@xjU_0-H2YE-6B=DU4T)c=GeX$k@*4;tu9vP-Yn8hnmdb#)XM*4w$P#x-bi zW(>rD12dW%Ak!P9nHp86AWEv#sY!iFP07i+F7G?sCT>b9L4QN7qLT(Nl6uR2vS+=d zXg3W;rS=xntB(@>cl?VOC1^Rrka_>;n7K9KF>pARSDCRf3*t0>?qwEo6MW4Os^HEb zCkZ4dcQF~X+Db8N&xcmLMG$OjSB+J}>VZr(2&z{Rw8QCYht-u}yN@rUzVGr7-R+1| zKe!?&>-3xBlLT6mFA~Ip9Fagym`ZA#X;*@cZ3q~8p`aT9oi2LK9cg`+>BMW+EAPHt z`eWNcF;HZcTx~OP=@VB{K&Q%4P*;lSDG##~71jI>L%)tMtL>W65x8^ZFsZL&>FsrV zoo)9CC(MU*ad&M`3*ua8g|rK$jZF@?2*Pbt5SvFBI)0G*fR#Wjz>0$bO$lh}fY_&+ zim5yX8;ALkCnc%ouJrMx(sOTwuzvoHjGe_QwkK4qF&vVlEn68Dq~Ee~x2g1e4{Iv@ zw3jt?l~_w}>3Nz%BwwH7`bQMdm3y!g9%`=BL5gtKsAnNJsL(aQP9j@j)F`lX_1SFw z>DNoLHBKpZ8ed-`(sFu-_pD~HbJ_aR`TFc_qO~7Sll55yOC{+!R+$=`2TV5>sG7d4 z8zqWJSk7(0_BlH$FXk`b*HD%=L+hh&;556EtR*V%2Xuy3d!oLmwdr6Dwy-L!4a=-* zAYm_62Nr#NrB0Ts3QD@W@+H(rKA2155^OVR(1AU|Vc`UNeUM^LhSHE>Y^*<`MS{?2 z(wwXYAa{e7#)NV(M8UDAg8yuVI;f^;`9Lhn*O}7tK=?e;T>b-kA&?CD<(Z6tTE`|V zYWE;EVw0rTTj@ZkDH@6m$8ItZhdz2&pFj5FSfKO@n{L^oiaKosyBm$L7|m^D5*z7A zOjs?ZKVuk8aaB3hy+xAt`>bucrbe`)`vYQV57jC3 z!A-IZNyzYmw!cyfNIoMv97&5KO9xEZ8%kNo7J$cF?G-brQEb`l;uAD zo-qMoB-%+)yF?rRQiF$8&fin}5QihvF$+PsKyJN6;#C zl43C%xDRJHtp{F3(|Jth6``$Wthp*CTb-^62R>g)uGV6$Z z?Zut@)iLp@YP)fHa+ck!!2t?dAX1=ZXsropX)ziS8kgtzRx^9Jr?tpQ&0n3_5btSf zYHaSVW0?#>Ofv1GQl>Q{jj{uL*O>#{*ZMt|VD)81(`32U{OFB~i#Lwu^Cq0IM4QfW zyAO>4@zl-h_kV~~Y|;#X99Svi#O|+)Ib(z@<*h_Y=f{cg@>6tOydfhMCLK&=K$%h> zAqyJ^)xfb%KNB4w-`{zW^j{ymVC4DRO+MrGux5}n;tFO%IQ?TVrQE#L7}LU55T0$U zMH666i8pTzz9dWM<)DM~L3wOFG#TgUv|`(!b|J!OO?zOoCPG$Yi$`w}HCpx6yMF$2 zbQ0tJB*0SQ!9cfg8%YZdAe=rtP>!90g(~R;%%Web?UIcY-Q_~Co?Q~KWCF0E6S-Jx zi9BCAhjBc2KAc$J2Kn4`<7^Zb%ku)m{#57KS0T^853+m{2}r%*Xk1dt_KFeLJzHVI zJTe=mfFWX=q*!f**aF5$QY_t&{im37vcLyj$(A!tSQ$i^NjP(?D7CK43-N~Dr0;WU z1c||PL*LM1P8K*d`?QK(esntrPm?P9R7;HP9tH#Sc zpQgT|WB)LKvaGrunteU>NXxdod4I<%TtLz>2$l4XAtE+ZQ(3g5BZ?qCghz_lQO4%g zA$_^pJf1(cvNDY!oy~*Ux`EGE?D+s$&aot{%Nk)Q#C2|MkjpqB zu&(M^%pfShg#QpV)b9`;jD(@xkW%B;B!WBT)W?Dk1x4vL=}V>aP~K2D>8{xrT}9seh{s6=uRATCy#bq&GpYJn?2T2JJQA$7UDKH z%vZE?s8&fCbV3CS0~(Q|5_Y3MRrHA;HQ&axnZoY1_pF(Ml>iX`| z`J|r%E>JZ3uT<4!V|4kIikWo@nINe+-_93@K2UxOgwoNWmoOd_iBGovTJVM;bR!4s zhcE321@c4zVDBMcgtO9s_N^)t`7w~M0uQjgTkU{@iaZdYF%|ufqUA|hi1P^A(lpkZ zwOUpyEe=>Mf2V{s>&1!=l7P@~(m-);)x!UWAaLx!HbRrSKB=hsj#{bzYY1iZInR9S ze5=5@n3`&JBdYoK3LrI{oRCF*a6sqGllAfd&hC}k7OYoQiTgjQ1%lJkY8?mdTCG=b z-#y3>SGiS~Pq4pAjcQTzu^Q!K_19{37<{W76(YJLsJVKbqZdG(iG=0wXLZ>Y$bvSAQ8gdsQwc9bN)a)(<}Bh zWGFD8A;ZpQSRZYh^6JBW{Q&kIk+9_2mRJ!LFz7-hUY>#9mX^=b3;e|A;Cbla#OoW@ zv135yEj#+4x?EvzvRY}t*?jMeI=y8Jj1jtliyk%TvU0atR&dvT{>yr0-8Vt|DtjO~ z@z0$U_gG$!xcbWFS$Er;%kPl%X1;u~`uz0E?wPdg2rE_RFTeaIN<_C;WN?ykv2J>` zMYFYL6>71Nb!FTltxF(^K-fh4J#m6i-k7mavnI7g{Y&1arEo@KKDZCEmI0|j4As|? zrPiwTsX2WcZ%unVh;4)n{9!vGD-6+`^P3g8ldvE{!&?nEoS!x8RJVfmk{_t(I>V@0 zg(#pv=m|Z5OJzjF1g&nyJMTz2OISlAA-;q)2auG6VX6Uh%rGV8W2$K+6l4Y!5k3%Q zY}KODhIVIRYc$Fiw!W682<-!hJu{>@Tr7dnP(acRxQ0UBfMP(wr+EI_ap?p%-M3Er zoMjUj4U*qUoN9SN0EMkXFMC+^`*Ohezjsd4U$Fekv=mrG1 za;{a*zucN&rtuKI&0KHHayET{NB#{}BLiWWfWH)|h{;uhl#lUgaX+6>dpB>veoRJxzTd!3O0|>e zG%vvmzb4gSz;NP|u#XVn@z%_HXFYlWF}T~nEv`Yd=zdzCv<5zR-dEPAmt|8|*X8j) z(ZM3ZAYfRcJ0yAhOZf^b3PipvxNJ4v5wQ58|uF!@;&S?ad%&v%GU+0p`N&s`gj6 zfemO_DRF&!eW6VfEv@}cr+D8x3-oJ2PD!So>Ir9~x+!`0^3id&bE?4;FL)o>L_v>> zv;_cS{)nE%)L6~kihabvc?V`5(HdK#mOiX91GOp11H;bAT4PvyKG+7Nq;r|vzt*L$Gw$iSzA)2fnqj8mR z3r2}E5nx0lEYZ5XEFlLJVIWJP%nqq-)DnbPJF^;bkE)i%%-~@``P@J&am|`8VBhL$ z?$NZK7wZc-nGZxeN2>91+f=u0lNR;MksX_CXPx?%)}usCm#}22E^(E| zb5)|Q^h@lhM}y^+JX)&fNlB@0aaX482<@tzN(7T6(BIh7EIIvA)kD>E%nKSudfrax zdA#XmoFmHv+74dC!xqrUBJo)27@#nzt2m3R@s=IrO)X>K>@L5pDD^f>1996QK*Z-K z72Cf{7sGPEZv-s~n!Ih97prji&-k=*@Npz4H~PF(%Jz#=Jzm`DYm|eczRO=PG1WFS zL>;N-Q`Puf8SC;s)Lp`+m&ai;tN;NZNrUY|3#U*FGRy#luZX*!^J*ex@{ zWFSNcIo>OvYp+jlYtwy7pJYpY{DggBc@}h!5_As{F;5=otrRzXEn=UJf_7kRVCM(r zf*~IWh#@FrBG5Hcz}S#)3)F>F0ov{jyoO5=nktiC*~wsQLMuhkAW~jnDI)6+1*gCk zC8F)c!lI%vE9CD@`9tju;pRkf_mRy*n$laiaZ^v2y{<9b8sB)$k-?qTe8$$k6uRl~!wVjU@ zu4#xQ62skZJf*5vy>H_+kx(K$-1pY~E5+tb?H1IYSFlzq7L}BhyV>3hbh76Cn<8O+ zB3zBzB*!;mpGp`6)~8`*Tt`etd7F0X6i&Cmt+}y|EOjJ%k@?Ln#MVKHGRA*at(PPv z?Gv#jY8qj2^(xcl=4M%E6xED7gb484s&eb$iZcPOPRC_~Da{HFX2|ihqKJOKsO;r8 zlEN6>DJ!Kw)ilH*J%fFFKMfp;am{fD)h%Fk%X-_ac{f6mu&{KE&-0h|JdvfYk z$KP=LDm80)X3xz2xZHo7REAbl%D-8UD4ttE4+m*)AbcE4`UZxF2Yku?;o*-medO@) z@Zqfn+dV%1lGCT0Zr)c*Hd9xmks7dwA~C9DSOsQQqJ|L5dw?-K{2eoiujnS9Ml=R{ zM|ID^y<4W0WqH=YBDNvuiHMSDi=q_q1T*!)ra+>97{q(HUyiNt4>|UEE{c4dpIwx> z)MY3zd}`QI+M^hq^|?T!R(JbG@_uZ*z0US@h2v#b5f68HUZ|E*s%2Sf-)`(YSeYmP zk@f{0dI<&r>Zv&!fAC2Y`}ejK41;K>K?L;-5mlGU{>NI)f@=w`n}g}XeRPh_5XvKL*sjFKq|E!*XfyBO?D3CB z6lR%WY*NluZPn0&@%$Pk=L>vD{+;MkOBpK~ zPx5VL6N1z5TR37rUL!wzs7f$k7VHOxO7;U)H-fDkm-kmm3$DiR%C$9e0FCKJiX<)b zff$0gAko2W$k`#q&JxR~EBxe5(rReSy6S)8Kz=BlZpVHAB2xpANI;h9tioU7ZwPvv z!E*ms3y(8d{T$ZUMr}KaP%u@M;75V%;t>&Qt?Qx&Y0t2HEW-!Ih5!Bh9rW(XJS7iu z8nP?qDQtW(ZpC$NHgXvU%m3L%=4BcP+^w#l@F57_mSkE)XuXc`>96j5;R;PwAg8aq zE3&qVXZqWik z?5i7-w4fD8$dc}Fey>OD%|kdpa^&Fv!e4zRm(RN&iu&xRuK_MHtn4ad1+Jt604esE zCYj5y>y*mPXI4Wf)DV1MutkZA#*J3YFNz_*Au7K9HjQiJM|!#>uctZ5^$DVHEBNEs zHEV1Zf}?Im%drQQxr?>wPT(xKzqklR3S!Qx|F~uG zXS^#Mo%lvW?cTh(TSZJqEj$z(g;j&)d0B=B_ciEAwiB+1IY^KFjxP(}=~`@jC(xN| zk`~u2pT82stPiN?NCv>%CdhA&8p*S+UunXsHYC6^5U01g4Izgr5?vt)+z}v2!?+Uk zA1`YYu+6_v=6m3SXRZjhT+t^KpMDU(ih^-N1?t*4)@ z4)KZ|>)C0`JOJz;;a9G)IbVddSGHJcu2Ep+*=22(;^vNy%^k&5EGWXdCdIkHu*W3c?JTQCr|WSPpyvK0>W^6GX6VzKJ{GiAeN_1L$-%3dqWRswP0tRq_> ztROrU$(GF^n0&N_6V@TEV)Zp9X!gJc5Qq)Y_prrOk2GaS&uYOKp_^?su7 zUu#$LX3tjJ*vK$d+nD;AokrizEo)Vlq-dtXtGUf>eSVW$p^a;1Zmq4ndIJ9y_e?mV zlVc;V1#Os*{pxeGnf6Xe>%tMwE(gH}kh>dFc*)x-Ez+nYPM4&vw} z?^sbu#>Cw_6lQAaIjqA_R$K1BR7HvV24U{0kmhR(Ic~@oWm84}2nlvGMKkfgde|(S zG=s$VRyQp|Q~9KumV_3pig3!vLIbCfDB1ZBSKrlTnHYj}2<3`P#DrHBJcGeG7P`MebDY{3PgZ1MGtY`~D5^J*#0V|UDzl>%Oqf9y5gp<(r=5c?Vw7wlP zv-iv$J92a(*>d4~s1Rky`Tgm^AeTx*b9w2=WZAyNH?{*LMZ0MmPm+6N8H!T{(w>JWU zA{b2{dZX9()32 z=24!oX##hXxGo@n1_*E`$}FHWg#AaSk|(DQ=H`>f@xNdvXJ=+<{FBEH&74TiPc0-T zPD~~jW@e`EJhp(+gscnr)I5yWz4&*Se`W#IS0if=|NLDZDFT%33-rwWMWP%8;Covhs8^&p- zGcsd)n8myZj`T4<3$P#yu`qT-z+RLr&gxh_YhVeiDDjv8&l` zb`85$cpJM8{~!7FY%kl##@H*^4eUm?pWVc6X0H?;WCz%**e&c<_GFLbN7zwzjNQTRWYg?8JHckyEPE}RWAki*Ewa1VNp?58huzCw$L?dVXK!G% z(B@Cro7kJ#DfSk2Kl@Ym0DCKYkiCsP#NN){!TyY$W)HJR*gM%7_UBkWf&UeLZb6=3 zn3$6n=cneBL->E-@6@M{%`bFMOfSfXrzei+2WMvPJU%gZr*iE0#E~g^YVz2EwQ%hC z)O`1$V{?b5r>sLqrw-le-uPa-I5oe3Dec}%Q};|6_;t@uPs|^+4oyr?otT`MquMo~ z_3^0_3+myS>B*@%k8|msnVmXe96AcPx(`mw>29HUgMjQlIx&4%nVvd6bHa0Ijv(ni zG%+_R9i5!?AH}rmo}D>%VxgN8eP30^^wi-6Z`J+cZ1vO0nUg2vLtqy2{KQ>T>ilaL zC+4Q~sS|fiO#>KXnpnue#p#3c!KvwK{pig6?6HN3Y0vER;(WJLSao_rnLmDPdP+Gw zhYF?RQ%ChXr|vm80|51MyYbS*J>`Boe(Xf02DcNP>a2M*A6>=)p>CR;n4b@zrBe%T zW;em?tI1iM4c6TAPLK}+Ae~OstpIR$ergg3F-!P|H?5h2cT62x=sq$xvp8$JH;X6utp`YY=+1k(Ps}V# z5!RoWGLFtH&K&`k&Kn$4<}edX2WJQX2Yu!b9h;w@nVa|U2h+#y#o#)H=4VmfTEVfY zIrrtMi9=J~^7x|}i}QBnj$^>eEuU2@w|rhn$0uez?j)cwv}PwTQ{6#9D`sZhG>009 zbLW(|jJkX-Sre0!b5ry4-87FYH#BWLH08^~du$TZZSu&Jh6FwIoji5|*wKA_;_hR| zkKH>}xj%M--`nnURJ|}WH)YJ9m^le@ap#n=Fo&5=psIY>=Z!3(S{p5LiV z02l62CXd~F?>*XK49w9fpfXKf-f`NIIW*wVl#J^MolaD3QmpHg!()6AfQya2@qcz#zw5I7hcnU12wOvs-*vf3{*NyKzy(09ouRGiFDLTr zhX?=ws!GGc*y&*J>;eG5s{sH2A_)KhUim36*y)jFY+ztu0uY1^nZarB?){IL;tK~r zY5@H6H`;&u2=fcHUjY4TzyRsLBgp?~zmNZX4Sgm#0t1r+1LwmTV*&&Fai#oC<4r6K z4GfG7Ow9rS#Q?!TAS9e+4J}^#{yl*l2L6C!JYvi;gs=cC2cT*((t#>L!9)XuN5GB# z##>&PmQHd+0KePivxAy#WHv_V-lyb|P(aY-a%DJ&jXv9M=@ULLXP_FI9?J_k1C5D{ zpaDiVoTRhF*cT*Jp_MLm%b82l zTbg{=$URfOUcmD$#(&JbeHHaviu(v2|1{BdTDz%FW;3H--(<7fv@N}^_dRc7#F=Th znbwe>ZfpTr+3{Q{_ScX$?G!nV&q^KX+sHQEM$vEwT`|^Tw!VHfyLW1W}nkb`vzol&G6F3WgU#zbA@(h{yLi$GK6 zL!8+||BOE5h$QBSuC2#KUJEE?3{%wzJZ{5wKLDE=WGLDLml*(o>DTsvfZyXI$wRdh zB+d#YuER_b1tYqbD1O=MyhQbi>cU~amg`i$iTIeubpk*2JM=GCs2L9smSf1e3hsq@ z2Y*8T@MBi~O&7r5^8nZ|L_zB04re^0C| zwFb}ZB!k5uAi)R&)gYF_1XBd}{-z~|MyG<=Ang+j zq+7CtUc_`<(-4*F(W2!waD+m%g#FzX&>tVZ>feQy4e_&|i#;B>#mDa4#hM_EBW+k8 zsyDGa3nIvC-nWh;%YhHgk;l=-oS`%}o+v)DW@6+?nugogIAI+>75#h2kppel)i;|* z@4!emxPvbe8&kTk8>(BTQFeQ9d2HCjD0?Y6xG$Vyx5Y|OH09nsDFX@Yj@j`vWM?X} zE-TmV?s(r_niY;Ggr?6R$B*ckXESI@Pu^z8`I?x*$8o z7_ze6jx?4PDB0?%MM`b$ugncXL-H+uUBkb=iR{V7#>vLhSk?nIBEwZb8c-&&yo5Z`x4uhO^FmqqPBQN*8;n%-WKr8cOe6O+CVq}hB| zk4XacBdRUB8>kzM7py$r_1Fx$Z&u_xaZ?UKNGj^LGS*loI)G-{8phz(oBnOi!c>Zz zX;m)~dE>1vY-5+y?}D9&4^0-#>+gKm)V4buo^77sc_^N5oF2xKOGe*eca=5dmyg)! zR)c83ReC4lEt+9?3@ovzWbr%{t92Ht#TNLECDPP^!$uvlbK!ZS%?L|Fn9 zW>7)0{w1&%C#vLkJ(}bG@Ra~?)jgrqZ_xpXTg0Bgld%^S4NH(LkpgIRKYQyC{%46Ql~?f_D$l*n~!vt0$k)Ua}F}PTk3Ssv=WL9$Q`Zr_d%ZKiH|` zcQb}gT%?h&_h_qScOuSTdi#~rxn({B9e6nmqtodNGw5!}MX|`w5Ub2TBkZ%iJcf(0 zP$iZ_B8zlKe`jwpqLibe8m`7B4hn$C+bfrNIq`2-hp6WXx0T3_cqKu4y2YBcT2;X!GFON}MSVW(b2 zd+I3|?k(C_Ea%o2kbrba%GV$>C6tl=4pz`jMlv8Q$>$GPxbPp&_@m>BD&? zEzt)vxT4wuj7_{M10_zGMnMDsFI1!CMk>x2G*PPmODIYaL;>W$r~@1#)V^Pr3E+-P zCy8_qZ={H7O7s1xc?%?&!PlPI8;d&&11G;)LHGIWK!`WP?}J*|v0q;A7DEgu>gw?? zb7%PDO*ipnVAnGtstqE>EFt*3TRbB*?_}jz4s?;Q=4Oc_T+s*4Wz6y>24{85OiOFR z%0)$Z>0URHw&u$gi*KJb+{!L4d8OS3+6;?Cv%|+vWL5l8)%S8yv~~%Jh?JtLUw>RG zDdSS5u&R^RWt)5OR&lra<3mmyUe&c*>IZ3>d`{z`mT}bnlV846tSyM$-XQwCjMX5e zPeJ+yB{Jv@)&3XB@dZJXcXz8!|lK>sByv3f1Mf;3Q?9D+QLa zFqZwvU?aHP=Wgcgj?Y8RL|S%TK?N#72lcad13yqhu2YZx6i|DZVo?gHH=Xr+=qEUk z)Zszu{vC#vl!k464NC^Se$XJPy&P_cU!eg$YMQHvX6tsna(?ZExZz4L1itvN4H)Y} z2s|lLzo~JZXV`Ol4~U92-7OQCBFxXt0x?Fmwq4K1SaJGV#$gZQj$X&5|L%G8e(_0h zGppRc^9IAcD&H-ruFdAL6P_y`z$H3!YF<-wWK;ocHZQFF7s&>i^~bx_>&nUv^DFLIDVWWo zjBOS$VDTvw3GX2ED99Pfxb|1=?R@zEQCQcVSRW{(UN|(agkEf2aaiXBtL%O) z_ndkn{y>i#)4H&{9+`Ibl$VsqrI{7;`5Wj<^+^OPIoK2_adNNbWUWL@jJCd*AiJ80;Wx*6SF$Em|=$2Isx2O&~ZpwH53;OyVyI)#TT8$^VLOu zB}0l6IS^mF*Y>(or;zAHTJo2jcQw76!lWXPo%7y_o1l{aPHDGp&(yg@k4|}|bFA5exFD9L9jUII)fn!M`fJ~L6{RHL{UH0ExLtDfdyt-~G{Fj^=*&fL>PMj$8 za!En@VMQKD3eaB&92CJn8Ic$(hxzqP{sR$WG4Swm5mpilRZDrCY-oSz$~uU!CBDiH zF~dSHm@%2pL0njwS(GsU%6{d#D94JzWJQIPI(Iy$lo^VQha|IxAJ=6g)8DCi1QrDa z2EF5L1nzJA!TpqXV0YGuAv%{rq%zFH^oCPxN~HaO4Phk~ub-npDW9v)18u>54|aPJ zi-|0xD2DXGo7OMPUXfIq+p#RJ=tZ&!cjD?pSH}o#d0l7gGq_epF;mwky>&9NGs z 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 literal 0 HcmV?d00001 diff --git a/dist/fonts/fa-solid-900.eot b/dist/fonts/fa-solid-900.eot new file mode 100644 index 0000000000000000000000000000000000000000..bf4fd60a5f4709e460d2bcba70224d9f8fbbe648 GIT binary patch literal 186708 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

{*PM$M;ZGQ!v1s@V34stBmHah82gI?KplTY z+P}g7I{beJ{8u$&|A2q!5M#rSFgEfUW5?2rjlzE%xQ#7gY&;0q#@LBcz)8mbxu3B& zHZb*vhyIZ`T0h?oEu#LBKtXE7gF# zjH}S^K%c`syBPOI0gyDkuQIM7UfTfJ2SB`zJO=U_DBn25xQVpp769Bnlz}yh`x^oK z884UzILvqe?*PgTpuAuY0CAxd;C05sPcR-?1wgvOHo!fM7io+aI{~)=kf#LYmm;k6 z5ys0(882TC7-Bry4|tvN%DWh^3IdKW9^1@#b&~O#9>(K70N%9>fPA$BjMt&88T%No zUkgBa4JfN&i1EfY0NOAU;Z5C)H{+c^IkSMrETn5$0vKex73H_>2Ap8L{T{|UP=3cr z#yht$GHu~qyBMF{3v&;opW6sPx_NgoKED)zGz+Q$&ojOdo9P0l@D)TL4J2b`RrNNBBCFaZVfK=K`PgI{}D0 zZyo@3oR2!r$GZ=CEb)V`1^VR`xw6x>92g9@&4x-zv>>wuMPs>zUBnu zThK4>2R`pdx(^`V2lg_4?H0zj0@tmGzYhNE5r6$2#&1{)K)P+K07H!5c!=?vHUM5` z{DXLJ-_7{V>j6g@zvT(WcQi8op+dj_;~(D1_)ZOga&85Dv=;!}KX#Du+wlH)H{dYi zpIE~9Clvs~ccGr!dlFJCW|LO#qaSwSa%R4=~F3-6(rE+@IOO_-FC{9Lo9} z;_q1tIKlWA_Aq`g@VIv`;{$bo6ysk+*nO`uzQ+f6jqxvUVElgIcmF}gA2`7H-ffJ3 zCCd1NOBnwu^6W#o56xrzVZhgb)7M^SeE%ThUw@hLZ|r3Jn@PZ4h^_EHine{b3jp^4 zl=T?WJ-(Ll?*swxKY{#DqRc1LjDL4C0P#=V20;3BKLBlddMn^0{71n3$0+9~g@9d*AKnHy!T7UyKi3Ahhw-1HtRt%! z|5+d42;)CTJ->(o(u{-O^IrnTUn2br)d0kU74xIdGybdfjQ_fy@t67-f4P+L-<)Lp z71aG(}J^;!tLR@hIFvz45_^}s|%DMqV zOe#mc73-N)34hfFCdE)+bri6dNpYmDMHzLgm^4EHyw0S0#5e3Jszxl2<_T86yKUSrbo%}iQ>Hmw+C(yDGIy{izgpGm9X zUegFjGYN9G^lreJsH+#@y@#1}HqxCv#H9BuVbWTZxvmQewGm~;WsT(}ePGLtSs8#b(G(#2g&x}+L_^qYcAx)g93(p-Lk zNt=Cu{Y<(d#iaKk-TP49m4JSf*}n_$Jd+?ROIH^H9s#_{q-zG4v}F|l`5`MyAE*Ny zWzx04Z7T!pW72hqzwUJ=UH=5xZi2qvm`F=*PIg~d^h2#J;ZU%FSGBiw%;oL1@s8HY zmM|ZCq01jphLniE>jj@b!k>uv`G;RfNBoN7kECDl)z>rpaYz_x7+W61`41NPpt~yG z*3sG$X?KNkZhu>6O-C4pyFFc9b*6tJ>j?9tub2;H21;sbI%=Gct^BLy;O>Zgo-4p4 zl>HRSPQ%W!5X!yb{ojfF39PeCH z8q5p?OV@PzW2<6m(b&t^bk+w;OM~^DYkUw|p>D7W=PB0A=CWllYd)V{4m0Rm*eB5j zbTEdrfw#ATJj!^b{YK}v`>D22a4v6|&nxYBHk}n}<(ckw*=0-*kGxGdnkDL{^!zoC zVR#g+PRpe6P_jOrq@WZY(|+8i9nx~Y{%NuB@|5Ap?DrT!O$!nj9^NzQ%N!OZZq9oi z?9;S9?Gf?3Eic?k1N9EZX%I9!z)V(wK3#}j#QdT`LNml5#in{&9n_PPVePK$SlVOD z>(bOvdMwR4JcU*Oh4Q*wC?7C91LT|X$ehRpAzL;|jC~H*C`+(K?A`1_n5N%M8`l8l zZx&-hFA_9(zCYAC4eeOakftQCX)_zvDo@K$Gp(KSG=I&s^q(?37gIy!R-cIom+E%ffjjLt z!VhHgc=7@<7TK~k<>G0&L2H`pcZ){WVAiqDX+1u@zXFpqLUX+}VD%R^!Gn_(Z@SsQO#NX(LV(jy#{!Q&r(K$dIdkkUV-gy4`fzmmi1{c>2YRwzuV zhBNbPh04K+ugNdqSFsq%ie#4vS*#N%_${R$+n}mpPqDgTgIeqftMs1YPrprgHXZ78 zAC*;APSB$#=i3f|G# z-qzU>0Z$1>=p6~0967Th)}K{}KkilZDdWz{(Cu7|1 zR~9ulFKXW5^t8{AokbCCmPgVw$umof6glM??W(KDU+pgv(XPU`M0=b?vDi!$(7Xt3 znwS9ZJPqq>IkibJj!C}RL`#%=a@rd zsBk%+k)&rFt_sR^#OqzL+$GDdk6}nKCd$Mi%!vb#;~;$(w1kD2>=d(NzTGgbM&|Lfg0&aiqSy`?1$W0%`gCTXa*Fs!IM+gr(1*sw}3n2814DOH|Ea$D#e7V4X(5uQzoU+S% z&|e_mrUWi@xE$qx3j@kSPRO%$Zkgj_RsJoEMh)crp+{2Rb8x zwnmqtxEkgCF2$8_D~dY-hme)hLcR~N23(w*3#miMN_YTA8Z=;zVG?{JC*nrJEelDe za@+jVlKsOiN3j~M)jjHNx6i#>_2_F2-h!npL6iK>S!TUC>rRicP4j7*ZteM+M1mA9I_qsf8U1>-qlPM~mgI^w!IQY;! zc&726L~Eo8i;G(@%T8>uz&$aK4Tr^05m3$}wQaK?1n^NJw?p*c7l+TPUA}SS^3o+i zr_<%EayX3{Gn;~ouUT}*B^Aq03u1(M+D_c;l3mfJjdyG;E^r{F%k9t${T^`AOYVrw zh`gJ-WTIbdzn8{gT`#bt3dKq{$+T@mWx>VU+u9dkuz;JR1?+_+Nx~W}iPuJgvqUay z=VD7SwdI^YCcBz78>vgsfH@m7jupM$c#{ zz!crn-r$~?RG@O><q-cvEG>XSq#G82&2aSFD`A>TkLpp7ykY@{lUW);5G+=hb|f{XWgR&hYH=7-Igs!MBUNkXYZE8{HMeGTnrAxT6gc(E^@d z-t(cNqL30)U1}(VN04uwT7E#Ak(i;m-2Q+|Ytmc+KlU1e&psz5`8R-XEnC2PPE~Ks zWW5U{OBh=KAr+`VK zz)GM7%1pB?pgKK4WyS^5+cK@MZmYfN6F1emUA~|zJby*)+)b6PpwIP8-uisO zc)R7Vfgj!&y!00TnNYA` zeM?QLzXWs9!l4`HC(!P4O2pz*w695(9k+EG_pT334TaIh4fIt1c%1RT&PuT^ z^R()4s1P|0)Irh7yCG4e-Osyozc(F@%pdeXKwqoL-Zrn|1^+|3WL=lxd0)`&4!W0$ z=LCyJ1H}QsXVRSd2b+{oZtbbXQViHSHoi7IJ1~{B%hT_9_8Alhy+XS*TJGE}jx&6-<&2UQ&S5%e7CJc`=&X{!b_j|pWkKMJ+k3T{C3V732 z^hXtI1Q%f7zZfS=XtGf9=T?*!EDDGOyP|z^Z9Eo$$W9VF0{E=TcuQ?b-9f^qvXY*U zx0FY#OP_dGQE8D8ndu8um7R4)@UXY5wsEmn5g74>NGq$*I8;}(ZojIcxLTJpKXq4y z%Br^0`W6Om^}sDE_Q9Cp)KS=>%;f^a_(&z({C4VI?<_|zWu?%ZcW&Qxf{BIc#f6NvvsDE70tBVex zt%AK%K!*V}A8m|PIVP)}Rpi)3kE%`)qVnJOD2g|c@G44=*PG|&1NIg>kxA!`S`ySQ zB3wOka4;zMXj;~Rz34wDe#3u=emWKYbgYt zj1x3-3Y;e=GH{-z_q69YHAnDt8|Q46R^F$|gH$yhnf>IL#5wEkv*Y2P#P_L5%qG~R zdkVs*z&BvAUke#(uy8jsX&H&h_xElUU|soSFgIUgHA)%s`g7bKYE3lp2_Py9ZyD8=9|7jsXTZ8_e4#b0augP@WUxY;m)Kpp7RJn<#)+)-*E=B3Kq$sOO-i^4*ra$** zBdI#t|2`$;QfM$EO>Xc8(&`u_r0*-7UtHzY9sL9S4&7T-Jikyb?uf0eZVy)#`Fr~N zd;CRJ;r8maF^IJJx=s8>LZMYTv)w1pjL;}oHmioZh(FkNe#i3o zicOnV#JjuBYYS(R2yPbQQ_~`}k>u4h#w*PxInZujF^0Bg-$XcYEF3^OF1(ueVy35mN1qYCD{DE;Fld;pK|kUFUH9i6{9L zl*Pl5XZ=gE4_cj=$P?4F%r{()I=5T-f)I84f~BUb&M8DGj7f6h*BF!gSqNj|w@#m+ zl_4r?#;T6hj?~Bp&6*nXARIxC^PT<<-HB$E_OkJj0d zw9l80;LH&?mQ4JS*YMBLS+iA)ZIpuNP zkz{&VHR4>C_Cms}$2z;_Wv3|YYo{tKpZCRtHdE|&g>{UrHI7+YWLxXd+G3vx?bO!e zpm@DzzwC3NTk?Xm^;3CkV6yy3B`Gkl>_Eb?%G<&fFqRXVUCt-1b7;`x)ysuq*^`MAzE*UA<_LqSPtsX{V`pDN}rQC3{a5XQvc%bh2*n3TEp898;?f z^Alo;*l|G9!kYKfOTBn$o4mYMEEky%9q@W1UJ9qzCh#{$UYqE=DOa*wCE5Wc1omv8 zKG~4aKOkT9l~9IemHc*QQRGkmz2ayY!u#|ROMn> z)pbw6@aj-umj|5Sl4^l3UR*!#1QM3Sfy5NNOlWU%r-IeCPEFWGO`au$Y|6+|gj!Wp zR8?evcYdq^~XY7TGa{>TZmrBu5Ao!TOD-4Ye^e|<~DFcg63W@38;E) zI|dxo+olXqlW2$_n`n>VXL|Z9doVQWG!PW%4Bn@6thCZ|GI_$ILFb*QJ z`^!pbYq%64Mj|+e906b1$}8whBlEkhGIv-Ug`$bwTqEojt`RIotRH{GnkMQ9*d{SH ztAh1lWp-~1Rs46SSCRRhI5w$375v6`tiuI<`yH%-Xvd`ejkU})lVXnc#_fJOrhA)W zzK~aUSV8mh>P8z}6Te0I1EQaDHaXUkU%_+BEtyt+{%tDweO?9A`%jDo?GbQR`eize zwY1P!*9->~w{G+erVi0%w|V~O&XRXuH`8kf-byFI$OmV1lp zlMR}o6rI)BxM)U^%6m*5(y6r%w$^eVWX%?~*xFSIu?X`-(0>iBoh1Ejio9sJ6{xz|pJSrP-mc=Yn|7b&AMb(A(f?pGMhL z0wYVXv2j8$#5o&d3$t)2Vg(4nN3@4OlEp4Fn8R6MOPHnMvO+n_#o{o{NQp{JOZu(=ZukM z3xlO99F?tJoeM{n{0QKizmAzS$FeJ=WUm)ESqFOUot9CDy=e7{rRf|60+}MalCWU0 z7s?mJLX_U=_3m`bGD@TU_aOEG1F%%o@mb>8MER{a5W@($@WQ?|U~36%el(Y3%LNmJ zaD)!~>4d+sm8=zDfge;c% z0&jsg@>_o-;@AAqqSQbjFpxsNWI*qs9b6A6AynNKt*(x?RR@FZB}k6MRS~(mM%Z#c zDJ8K#tR=oci#ZN3v7+M)xO0IM3UtCnCUnt7IAd**s><(vf7iJs?EzO&q1UBGlV{wx zjOzKy`z6@YHLodj1^A4SdNDDPDNK|3R*lW0Z`kQg*f%e2{?7t3* zU1>14Ewv8DEd#eEC+Z6yjm?@B!_jl6x4fpfBpxU(3%EnYo+`e#w574-UCnglyn42# z`Ohke*Od69#idpC^J`3SBnQTZp=~MbeM`uukM=xdN`b`~23!k3k+LwPBQk(Jnzb?R zv?{OdkmkciYxlYHt~|Sx9FOikHm|pLYj5v7oK~%w?bLk1QdRq@?2~&gn7O81yf64i z?>v!c2q|XQ>Y7>_^l8v(5-zaK-!Asytql5^nwHLp8w5g_baY0_B^Np$3seE6ebddd;q)BN2g6TK9RBY4E3N_8nXs49ENOfJxS#3-00Y#Vh&2ekW z=FN)cp0m%PxE;y?v=#a``(A+x%|RuoYBsL3pMg)4nN<8uXoy-t6 zplRaTQ1zo=+HS^AhIH9Sr?P#(8sjaj| zNvxt|--PDS0W~N;-cI*Xdc5UxUCyQL?a^{?<|0kIQg|>@FFRdVVv)paZn?KdBwPn+ zum=VmbCOj0%`RXk9;YapokS*C<$d;$mem)>% zOIob0HChPc!*AVg^ZBRPmQO3ol7ne=2amQ#u9i^6`{fv@}B2)mw2S}mvU z4sgIu5`;zOwoGrGUs69$-ALH>6gWMUK5#L{`eGRZKuE58LREYqjZu$L2d@`LWK+CI zm!Edi2D+G zxnOjdBajN(_{fsa8OXfk=DOFA+)*fv{Xh5PS-Ny7?MXH&x}@@3HN$adAX?xpGGmd- z%1EKlS4i)upT9>KgL##i1yJRY9ET1S>m2b!u$G*rd@hgJW)DI$H;|-RJSbFf(O_v3 z*(mQ4p%0JJIADDQ>n6F4jtXiZhM3k4BmyEX8^e3xNldLebFrAma~UYL^nG6^2?Zs5{ z^LLT`Y@8lg&umxb@tkuq@HfQFG6@o|qOzJ&Tpy-H;_)YPiN{iMiN_Dfg$FbhNDi%< zkgzgGrrc2}#i~H}9NuM}(dQprM1-}qwFtyqv_!&WRo#}J0 zkX6S_ceOinLKud8R2YWf{0x0zsPST%Xv4Nyv@B3SRaLdL#)>V7c!g19@dn_>_hB!_AL7)NIhqO4}}X^;LnBKU(OOglC!@DvBK^Ss6txG zn(^0$7eMZVAe9Rt!%GxM){b#B%r@aBd^{sj<@NklH^9j;uq|2aa? z9lAUPhT>8@Zl9Mso!skld*C$+JTArOd&k(~g1D*!Hdgs%wNm$&7nW;EJg#~x3d{U@ z)Fb;V-R{Z)#S_&E%8JUpYCP_g-3}zPVyoOY_?_WcA}pQ|hyM4daBip$S(8;mGra`? zkExleTa%rt>2R2;)2+Kz1bG4lUK1N$#J~v5vB1!9BTkDw?DqtU>r9V76Z#9)Gj~@g=pU#~1QcsXF3aFrTmT27O*%yc7v4+QW%h*yR_``==qI8>+0i zbBGX%dKMAHOhE*!O2`X~u&)b{1tfNjIe7shJ7~V6C4lQ5xlnuKK(%_yxSUIQ z>FjYk@-~9kmP_{3wKZfyiGX%21OpNaRQ7ndf%E#Jc*OARlR8sbu1nV2?5Hq`xX-?C!PSc9fYkcPG4C$2Y(71 z?l?NTNy1(?zQ7$u4?-o~L{Yf7B1KwSTS%vPv`SSKNtQgdi<1vUkg zglx+dfh*@D(9OJ8P^Lci$j-_BcOoVINDMN8dtG0R^#U7PLIS-!>IwyyEJs) zPcs}@yxmQLtR_!v>!)8RxbYmJ=WZx3t4~9=B9RS`OOofTTL?0T{8wJzP`(k(7PLAD zk{`hBblQ`GSBX33)+Rh}&x!TU56EKT|f7=y>8VbZ`pIV<^9Pn@}B+qYnINXL^W5+9@X7@EhHZ7KIJ`I$h+$& zme;ZD>d#w!0YV_1j|ok8TuA15GnCp}TUjO3(G{E(Jf1zOf&qlMpOWnjtL=$Q)Ms9h zyOeZ+*(wf9t`X14!|r+R+r`zS+ueQQFoq6Q0)mfNG8EVm_%9Acs)HnR2y%yP5+dz8 z#-dj27P349x3x&QQ^sYm`dA1mlw{QB^QvbpI;+%Kj0JUNP$`nC@a>0^G{RJ`&zG$1 zz5Mdt<0}e2;|a@4+I_x;DqqasKF8;)Dd{VzXyy(vB@FP_)vD)A1-S^|;he z6_jN9CYQHTaoO#JzgTZD3u=_Ys9Ejcy1K7I*JlRG8VWVNxFAgvl^&0ai*eR`5qqHR zpv?~4Ex`>wEPFr?{b||I(+*5v-w6#YerN|Ks!LGBB%Y6+#pIO)hf`%HCQ~Y+lhHd+jDGZw$ozO z)edY&-l@-cIyWxv+B$1kTprhdH!kSvJiP6`j6>|Si!j>2I$RiVJy%j9(Bsj4pBR&%1@rpj&7|-mX&nQ0VRYfxZ`m`^!VPzwCna9)K-l71rlj;92v*h+}jH;cn|} zg@!*?6N}?AXN_A%C>;jKG29lDgOM0c2wL5dR%j37k&aHhYg)s&+{%0QdlPdK4>=xp zI3DMVHk+~bGc$j!Ha3UP`J)egs-j;rZiC(_*|VlwxNbUeDGxA$N&iaS{Y>sx#) z&uv-Xy7CKA{8cWfOqN&SS@}UESwZ19Q3~om@PVf!7ymxKT~rP1>1zZW`)1H6Q~D(lhg{TQO%=FE1@C(0>`I zX%DKDyuQ1GnSyfF{i6j-(uc*@l z_`FFY<$+T=do9h#vTmQMCKMEX&wDcW<7d2#wL_GN?UN7~nlyL~m*A*I;G z;J8vuK=D0?X=e{~(T^w7Wr0jzpe!w}dF%?5Wms9Drz|iKC`+dL69^~^?4r|w7ZKbO zC`(X4A{r&RgXjmJwi9xPrN#xL71un_@uZCg&uyjaRd5OeHf*uz1i{uXW0Mu5Ya+aF z4cONjG_UpIGHs14uhGgbZuRMKo+>z;OQCs13QeDyaY``gjP?;y3jHJ7Qsf*^8tbrm zagHZvR|srfJ6h|}0Mgsp-@TaJ65Z0n>&Ojs=5;#(C4iZ5$yT+(>cy2iL1;2atsJ;Xzyd7;IjkP9alT38KV_D+!= z%FgAPH{rGJCX}LhN{Ut42+a+JQOLZI%jr}Kw2;TQ|DB^%Q3M*78#ioCEL{f;1L&u- z4G$1bgdU-wR9x0nva&t1YhG_h{dtQTSA+`7>bid8s_rOnU)ejad4=h6EIO~T+SgS_ zN)%~g6!Onu%(oKsV)k@%AqY1&rnanrlOEDxKw}~EZ-wjXGtbr6h2O8xs(geV%A@-d z?xedhwtRW)$-BjREFO1Xx?1rJ40sf4Zu0Mg_G*RRf#h>BQ)KHfftnHN6sJ~}6}cS2 z0SVG%FC%7k$UJ<%sunIS+)^Zq@5ssS%1XD4qwAh7xo8U_R5f$A*v42pmh}CqQdD$J zk-tEs;gywK^q;P+ldjfHlbb+$B1Bp@DV@9hw;L2;s&4~U_s_qcvV9KZ~R%+d6kuw-wr3kAs+rD zK04v`?t&&n{`2DTf2+)iO_vBZz`Di!I>{sRaKo|`JD)vZ-(#mdSOL*C(#@L*$2Nx z3zDzqn5xbYIOBge#hILSKJy>1tUj?Y4$w3IwoAVIzh4I}{%hS&BK{i@yN+dy71){u zx4nLcv+MYOxc>Kvg|<$dGze$uE`fKSz*}HHc~2>OF^O*x=?6rH9oABfyP?^8N2gxW zF&1v|twdUD%OLS>Vq4ixwi_}_8`ix}C^c<~0|Sqh&oT?GYL{`E(%uHM8;TWsSKJoK znT^6`uCpT&Zfy}3t|YNY?X*w9@*;}CBoNnM>44-vm5m%4OtT~|D{e&%$%=;mi$znzlr9x-eB`(?=Iroo=`0RCG<7qq+TtSyUMGDgRElwrO?H zn4w@r3A$kdhbliGDl<`};+AD45DfYXb%&;Uy>~#_<4{OZsmMB)CsR+-!5aetH^WvdFS3h)^vRlZet>y~EnE_lvc zz5Jm`#2;GYuP)h_=T9uHgru8oSH5kW^)(6ln!{UoQUD?#eN)0^zw=M5_YVvV@Dx1; za%>TdFO%x)8_51J&!GRc_4Qev0WD~t83u?I*pgUpC~0js#5DUhLno~pa%ZhP=!-(j z7L5*+w6~W4`02LeLM)Vb;oEm-sVd)$_uTiip3VD2TA!~^q%A4=mi->bm-3KWJqvH7 zR-ZY$^*zifa7$sWwAOTdtte;BDNF@o*3()%NiRvf01H(a&#vm(cV|0}L!^EhoCKEV z6u>9ef@H9?F=%WsGL3>y@%7@B+R)f1Mgwbl9RXGiq{MkVk_I>TTkKCfAJI0@cM%}_ zLf}aW{b>*@S0(gR=t=A{rYv89R?vPs=0z;4h;p@KDqs+UVX2QyPv1<_)0eC%DXB^R zLwwMTLlv1!*6@_|r39RwCvhibKR$v`Q!+%tM$aZBA54}&$ij_X_8vYPBAplGh%Uim zE{sAdxP)(3ZO1pOwyPe_ir|C`R|Ks*eaNGV`%ReJBov?<-MliBnatETH4m*XX}(U> zW9_5FMkJk0#ZSx6Y}Lb%=POno>++5zd1SLJ%*Qc*zh%vVxAvw#2HUZie=6OB>Zj8@ zXA|g|2^u1%Vz$yAql*tCDFY-&wFC~|e`dep%yiMRBPRDZn9m!UMY6r755#J)jL0c7U4zf?) z0;HW0wio5FH(lVwAyrkA1Z9ZWFj><9pBRy=42h39WN-n@f7wxaofI*`ArG#H6lgxj z2Y#+Zj1qo*8%!?AOhTP?BQG%`_0h%eD{LIfNdt+66-}ijSXjpjy)vx|&*LLnFc*$p z(6MnBzkTER%RFk8qP8re4~jLcD7p})S%dgYm!_?*ZQ!>*dwUWGW{T2?3zxN(vMXWP zYgylLewt44EL%Ep>k22nuv@T=oy7JFlnu6({cfjqp9*Su+6|B$-8LnFixl|o+!=0F zy+$p;S4PCkeMX%N^nj=v@e1So{3`PQ6L6!9VB89%EG0;cEaHVMSc@ZaK-p%eKo$@T z?dQ{c3Hr&pp({IZvVoqlK6zn%p#4S;$n9|jyf>r&C;6obJDStkSr~=vUfY)SI`P3Facun7bq_Ovb{X_ZBHK2Ibht!e zHYo|6uJEUbMG0=zorst}t|PAqtNXDTNu(3qxp+=S)K=2I>{}1?B<7eAm|2S=@JL3? zIf+D~XEJ2cMWiomSIJ&%rm%Snlj#XWz^d9r6Z8YZB?984pho+sCFR@&sUu=(rpb^V zyKoXnq$Jmr;`YuWrv?hgWpKkRP%G+!4$WEA*;b-xJoL%+*sQJpWagKq-{)(tEUH&r zT2aL1^vdc33ci%6$6(?HA*Wdjh$HDQk!T~cSgaA zf-^kE&PZjw&;}0RAYW_^cN$mIUT~4jmDjKv?7^ptqqJeXPACNbdPwXD6R<$=7;$U~ z7l9%zUi%d9!@f{w^o?c~A>9^OBT#^-jBiH^4FK3lA{1+z1tw!%pB8c)$$1@p11`VE zzre2+xcWA%T(PmS#vCwf8u!zh+q8&oJ-g#^k5Y`|6op5ZUAl4kqLzjP=ZS`vI}p35 zi4s;e+qhVA8p$M};_O$*-9l4@o7+OZ6x(K^$Ig(j|0gWswe1+^7T`vK;4N6jz;ft| zm&7&gYlPxNpw|9=`3cc2Kkisj9LRh&P@GKoBQPio7iiwnIS?dxX|++I;H?A_iGXlK z_3BdVGv{xLp1)UG-99r=TpXA=Yo&6At1Liv27xlyyCsLm!+Dddv8>U6je+b_Bu7cK zsHnWuDJl3~BP7%MvPKv6zjfY;|GEN_DXiQ%zGMhxh)uoXvvRaK57Vk_B8EsAYD;lZ zM5+L>6C0Jwajy`;G!3%i1%Ilb+#lVzeAz~+bGcVp=Z!K$Dgzw;02MrYi!h8H>1vLd%oqo~zOT6o5e@@jU4LN-%!F@wr*PPnx-4Z-* zkCW??u6}OzTCJq1cz(lG1@YpV9u%O`MQGwlgIK%hj9tfyTPbdhLwiYrkpoJ~2xNx_ zP9NbRS==J_lsK|ar*M!?2j-bRIyDa_qV^uVpQobH9(!C+UA6uhU&ESRc_fOZxJx#Uo(WL&t}2w8c|*s|7|TrJAsAmrQ@Ky9+#^ zW=>_$Z%QPKUFFeW-)AbChda!|#f@{$_J(M#hvddZ@y5l4CN@b9d>_Nof0FK^7TkA| ze^MiXM}YLOSo{K&SPQX3t!%-Ja;NFbTzqHy%9ZWWt~xZXI35pYSfz$OcSzl)(^ae_ zyXs!^82Gq;T^En0pw7&sqJ=V#l&PqhLF&uul}b=EedCnAu@CEd7uhR7pCq_`_I!@! zGP)e*wV)e}1!fV>c=5z+M+gqENS_Q#+`RZnqkMea)i#K*^Wx;IF?AD@!ogc+H!iP<}gV<1KKyNL_e(k&vy=>k=*}BV0S~V(b>uM@9rwnI7CPQ z?AJa2{vPAyylhI>(BzJT+Gx!yUEI>CVasV|k$7KZO_XP1jkLvu%WxwA_9{9-<~ zP#x`kQ85LhgER+y*eYd`V!!004=-64ArfLUC3Z=0M!7vnGXtlZox5apYI;!$#%fac z49-t-n?xT-3j#r$XUMTyyjt69+p$5yzfOGi7B3MWX^lwHzP?nV@cnh6&^5lq;wrC_ zNG21Cw`y_1cTFf%_x{4fAXMT$-(8xvr^kD`&!N;S4&UkCo;{j&m(Su&Lf=QHi%mkd zw&W#Zu{o`*CH~-C9^Dq|?7*i2F;QScKrA=U&HM2g%Fr2E1ufasCDF=G_1l7-zQDwrondde(QUz;@huFaQCezheXaf1sCvF!NT*p>7BkQ zFhzTsoc3jbfqVtU$*CV0knn$;RPe9x3m`Y)=90Zrf?$FpQ>=uR7%yi9dlK|*X}@-G zrzNNN^|>4l7hQnfDL*FTA*A=dKI>BS&vsg(IZ|o56Vg56OGH{B)Bhjp-UK|7t2`U+ zQ~TD{`=VB>)r-_>?X9g_noT|OEV9Qlqp@eRF}CnFgEt0au+1t%fB_sb2I3e(Vi5?L zBqR)kfFS|I7MzU?Ke<2xNyL94kCU65n5^XgL;JqpIaS>)jb^Zu+~+=bY*kmCuC6-k zcfR%ga2x0O(RQlGdDJ7$rJI%jA#6G%E@P|dkTZBWnW`3pUh4FgFuAE$rbR`w4I1RY5PTZR)0tbyj3q zp$^?tmqF}!t?ux`PiTlzox+w^uK&zWsEO!>E7wExCuj)9Ch#|Wj$CGjb1@YVI z8`)aXBAqnpgWRIW+q2ADhj%pz9F@EgdA|WLX^mS|{O9?yS^Igsuh!}3w_WLRf{t>Y zI7|5|S~^X^EsE`%%YH=K#fC&L11S)w(FnHF?k4?!j&owoHC~hu8sG&{_OIgV zL*h!uY! z8p1)hl^W-JI_rRydD%K7xf_G78o%A&ylO$@yr)r*^SG@JNd2`PJZz&x1R;%b!(bV6_=U2StO795d!T&E~ zy?Xf`FrPu;iUTFmw1L!soBN5}z5jl;zHsx+3s;TbG=3GGEIY8h;m`XJ6XYH-Tb6JB zshg`+93bqp?r^4O`TUp`vm^jH82_XOBVTJFtr7D7iNI};*IpBNYvA31Cojd<1ILbD z5#kz`O_u{^PFX!GmT->e9?h+A(8%=03US? zN*atWcN3h}eOEj1(}{^VlyUfC;4EN&rVi~YR7-Y3$<7_kIv0$G3<3kX*RXBlUcvw( z0HEuY#NfX1kz-wk>)d#qbrj$~Pw2@W4<0Cdv!1r?w0?6~fC7=P;%5=d{QIC0Wbx5u zLKfkBaIMZhn;myPZ{%~S3tin7Qf4~iP?AMlEfc-aKWY+ z!AqJyc=z&l4xG0ApQv7#ex6S}dGYTH970v8p8UJd?tkRp|0AO~@`)13n&!-3*C_znfb zApD}{Z|i@sa9^gsKLd51Mt-6@p0G8V zNLI4g?bxA2D47k$BDk%9+h5dt$Kc%HAXsLPCx`ucjYliN>blXX5E2ckXMDEVuS+~0 zHyp<}V>tZt30%~63?cta`kVs|9lrWg?-Lj7JiZu$(*fl-TMJykyLc`wKT^xfr}?!?^p>!}L^5PuY=!2szt{Mth% z8}N8<2nU!wDY6Ajss3+y9Mmps+Hk88u1`KX60Il(LCMs!GuxB&xyw`$Tr0~Xs@b6H z%-jt3k=bi16-AQeLB(W!^u>8tjf076ROHjD#6XX2*v5dcvu=z-(RT^3Znh zK>wvaY4xY*6ZyZrOVXuM*H#^}`g}VCHU@I@L67u|=TgborQPA}&q%ipofpK!of&2(beN*qS4-z8IL2VUttF=d(xatWpa2!H5x(E zFvnJuy>~-);Ol7(cFQ&J6=u3VmnlIhM{Thd+4k_Bf z*(xPRq}&akmfnhexF5S+Kqbl#x{meBL2)T#8OBym@fvudf2ci+J?WcQ7+6=SB*3rq zg!F31j9bo+e~W+o)@&s+l2J1-Govc;Ydfnxt@Vy~>+WPUY+1oB$7EmSA8#M6%;Gnz zZaALKpq^;UP#F`mvnl#uW~2u@*nlP#{eC8T8zk;6Rv=_QUq#;E5sxl>DPe~|V_=2A zWC0;{goc-`IRNZ~B@c6R1%Fj=^#P~(A6$-5oDs+Ai)Tr0qCXCEjQ#^|71!m=1{#>Y z!uJIW0gehATnfQ(4@rOq=KyR#8K8NpPfgeT%s%Ynln?N{RS9*+Y@Q=)uvf`xX)US; zO;wIX4JEh3F66RBW1IDeUNiK5#nNrB2B32Tz&i6z)#~9zwm% z3h%s1m!9O=+ptuyR@(Xr*h~F*40y`(I0nE@wZq1|(75K~q((#t%^i1u*MMuxSuZN? z_*=#Gop*}w-wIgKP0#l?U2yu`jhs+?Tj6k?TI8-v9`C6Tp2ze3*f(Up^&Z=5NVzCN z-nMv(h<0O_zW9><@#EZp2kb=-wi=S0^upV=c!3Xhcxlh^G4Om@z98)Uun==nK;g^~ zLBYg;5)rBcalSBdaMriQ%p|}RW6rdGL2CU0KS5y7(9}JKu?M&wCHJ~2UqXFzl}f!Y z3q&hmTUD=fOYM8|;dlPpJHsr%)hf#&@zc=2g!VZsOx2p~t;{htJJ366AzLF{pFXEe z4ET3led5H`%-4>#X#>UVW4=GnsC_c136s@ity2}7zM&(6{|ukJDd;d)Jx$`~K>jD- zuaSz-;YzwCKe~e$ZPF6@7F?lQ`p6Ua0QCP&Je~cWBFaeUmYUx~`8`kk5zOuf?s_GU zA;KU67c=k>a;q8vp~FLTIz6+tO%f0HRgP?tGmsB(4zu|O{NpeAk(U$SN$e$_mwxW) zzzLgL9c5qoplPfUZ_3z zIKW4b<9Ti>nd%%I;U)VuWWs#q^-w16IHuTd$Hm89kBd9srP!MtFS*JqtE<<)5)R!Z zTRFA^y2#gkTwJ{CPJ08*KuB$iX6%CD5>%dytjW4ZEbh_p?}C#~`>@k*kl_L#->tjA z-ggD=lHYFNyKinY_AD$euu*vChBo=gu{lHMCa7`% zVzi%<{oW?j@H|vn%QThgo?D;d67=KyxPW|`1b4ET`0vV+#dGu9>O^>aNDe6<{&XDYF)uyK)vJb zUPBJ#uRz9Xpg*Av*-0#72llZaWQZK{&7QM+M(3*uM~R!g z!`ab&*Nper=ZrOwB-L>=%kTV$P1VRH6m<#~m(W?b-Y#0Hf$bG1sHYDP4(%!@%|-a; zV&C{Wc4nqPZEyqUAJD5&HI(%7R8T**b=-*FBvULcQ^}(MYHbWo?X)LT-_^e@6z2PR zEHrzSqPylfTV2rN4nF>vE7FZ|JBeo7~ofVIR^>toO^gSH_R2RnJ2XA^V z*2V?`0UemX`l?&}e$z7VXa~B3%NXm7@SpZ#H-J8m*d9-U1%fYaVSJb4JWozS0|-xs zdjsPf_#Pw+^Rt{xa|%io$uQqq zZb^EJIJ@6S_m-iLb&4alY#iUGt63)w?PAVpEU8S<I`0(al`9 z8F6i0ISMq+*XZgpMV$#gc%i<(q+5N47E=r>=o$@_zhR2pnqm6|<_~h@tp#?&y3Wyw z$SY8&1_(9+Q!AAOuMOu%(z_st5A1_)C?s?YUP+pKaPUceePlH3Z0qA9Xtk_KTG6sX zv4vnHajH0`D7z=5OTTi=Zv~Hz76!a5@;TL2A@x|1U{cFj)5VGXLV#$On_;=54}snS zcy|mb?;ym`2<#S2FLWu9h#DpY?_F9VR0xGLk?85GO%s9%evDF;y z9Z;WioOi_sk6{)tpqnp;BIvK#ebPI$ko;a*ol*6CH%hv7b(DG-b%}wd-iPtrhPu$y z@+w23p%^v{9qQnZF6Jt)5bw;%UTKQ!Ti7kSE-!6E+JpE#j&l$82KqphN(T39*%+v0VCxn?B$;AJEZF#O_Tam-V#s!N!pz??2dAsgzdoXgzp8ZmG&U zh^hJ$=kUsr?>s(ODk8EnfS4870cf7@g&y|0z>R_15ow3f5()7xa6Oc0<33v3Xtch!1{vTW|c1TCeuV_w4chM3zDq}U1S&r(X7p4YMS9UGFYIa3<0 zi_bwUkA222$EilK;S5<)wX?Xm8BGOVW|# zN1OpimJx@S(~syZK&}6jX?}|Sa7vd)RMR|uT>Pm=Q1E!IHtwV!$>&WQe%f!S)$FvB z{F!`S?0swn>n=h%m@Q&*eQ)e_fW5&Ga)H#APp_`P^ZHhu%_8*nDXtNRf#lWN3d*pR zqrca@XZB#sXE=_{CDFdI4vQP6A-W!u0t4Ss3{+~*7ktCp8_s!W)Bnp`RjBzWsXCo& z`4Rn%Prr@|;x7M;{Tk*(8GPgQ0RZ=smIyWQXb$AnYHdQ0a9X{jXAQ9`qytW~v8++b zy-jIH=})?nm^*w9k?4Zoq!8}S9+Oop=Qjc(>?&yvj`#|ANSuDCBV#6~MXZ8hR^>iZ zGKUSx?9+5#x8L=Cu__zi20SNhU8CA#9N|_Veg~`eoaCH_!hmC@XIso7lSX zM=#%0_VYkwZmyB822M6;T=TxmHvT)8wpFEZgG276V(l|cR2o} zHnIbvk*%@JidKOS8A?#I9L=$Y3O#alu@r%P9-j%jwi~w- zT_Nl-&(g1O5WzC+;jVcdJ9#WJ7KslcwB2>3d{|e%smh6iq0q=SHPm-W8=(F6wgsP- z&eS+^V7W-O9Uvf6)E717d;}@GVGXALDY_gBnA;*GuLWpEg?k+`DUN!&+1@aAlSpZ? zDkr-7(nvnwSXxjqkVv}g4wesfB?yYuYse&Te)E}aBcWhrI3lCsdN|M2pdHP)gK@Mf zmP?iN`L3?M5H@WIlw~dOzrhRW&<^-O z%pz{DDg_O@zuyK(Ia}lK6U{FM(^Cq z-**Pc7FO7`8kQTj0EdCMd2hNq8%O(j7l2zi8_yy;c-uy;3!gf_WvcL_h8G4`RYUG4 z;9TtdV2BCJkU}U4%TV(W-h|iK_098JDX zx9#Z3hoeC^wtb9$!^_6D$5?D(4A`)IZu#^s~?{ax=SUCOFG2>|VXrBnkc&B1RN^9Ofrfi0Him?oNU^LYX8w z4DF<5;4^t3MZw9`%k?BqMR;AEJ?qMfw%f^QyB>9-Qa;)n?E*?BCl$4;cVTR3UfY$`f^tDKowtPT?Oo=Fp(3hX4VgrgH-U=tcQOorA8 zX#(K9{QzkAYwlQbCJ@G4=LZO^kKp31{IKsSr{Iw7sK&v9{&(*RICpTFI2t;b}F}b1~4ii`#Dx1i6JdZB|JZ|5l#Zd zmVyAwPzFQ8oK)d{q!h_Rm51$1Gjg7}RrVuY-a5nY}AYWHO!H^>dxc=_w8C;c{4J@9L-b|pt`e}$UCW&=DiI6l67Dmu41R}Cy#K< zK%xq$ou>l;e@A{FGUow!F*>$RUF-cpZ&08a!Jah`8vc-zHq>Vjv-*sh2JCgSY5>f; zLI3)k=Caer8etG7$bDf|I?32csriT4Hek@R+-KM5pMx+wKGrxq0$igK;Q^Bu5_#rn z1gYg|aj-F9*?_?SZL0Uv<^Zf>tfYD>Dcu*1HvcA-`f^MPyBPrF&my!kS|GEEqSZQXW*4i0#_RVv*BRl^#_7wnJO+Y9mbS1GwUma6ABAHtjxXaIKv z?i1cyE%_GhRs9}As|A0Cj!DQ^9B42%zn~vDLGQdK<6Y-95&X_;#Oo0$C?y&cB#Vs^ zpe1W`Z1Uqj1>ugl)|PwPXTm$Cea+9p5REQUUN-S-fi%9u{o=LQ58GON9?_ zQTE_6o_UVe9l8m;1pb4LN9bdAB8u`@;3e4C`~~I3r64s*2PXgm*5V3M?XX$lRSxpj z>0^zaLC19dLY%WtI3iG%0`!~f&_%WWhb|9S58$xUDr=qOX>GEn`3#(8@8LhYhaXqP zJ*!aY9Q{Z~x%d|C<$NXAKk3ju1)`o=k)sxRQ-X#}i1{;-HoNfh zq?=2rMttNK$48^_bf~vWGygsr4-bvR4KXvdQhd}&H`Ift; zM^)MGieyHu9;dv!t|_5>qR^|3PWM=&nMjvi(CWL(PQ4KBj_90M6j+>uNsF9_ zLtr;Noij5FYzq*U*d{Y@%)?ZM#fsp7E*@4WNQ=&@rsvg7>Y_sp*Q zlGdbQOivreq?Np{%j~H;HQOffSPK^s!;(M;yAd3|4 zO??`UHkBzW8pAr7?yH&6sXlLYIf1mquIN%LlrYBcS*K(pDmk}-w35g zyO(`QdpQ=hx^)Y8e#Q!FT}Q$NES~D_;*pG+z;AT@>QJc1(vq6hGdjA^r3J0~bY1F_ z6KdxDshQzywL|7Fghwm{0$9*fG_lAewt{imjf}^jBi!1c0bm{NZ`*AOEeVb!UYI}7 zGDvatT{3zKENQ=9fMtj1slH9xMYNdQo57Zl(uTX`$=ewFXR>n1CNgbt3j17ue}t29 z6Y0=&ZAU~)bmt>0#W^R^{4QZ6s9o-g+chTzHCxl=Viw!*AvX%=&Qw^|Q5FP8qoqwi z&!(d_TEY1|9c$5awI^n#HFGG`9kt5&q3GmfFcSGFQnX;P6ry-gHX2SLLyatfe+?*@ zyX#z@qWmQs&jQ&_uh0W92ax34Qo@k{-9qm2x}pWt$-b7%g8HLsUW@bDWKtjQwmAlk z-94-~f1W$F%&=sHSqdTnSdbTdO(~_SeX+rI(*~pc)l^A2)?MT+%@@1B#O=T@z6wc% zKJLd8kuUz|*_$!1d5k)S6KOASBu^aL=LornA4m~Lc4jO^Qg`#4*sCok^tK!VYnM$^ z$-OP)SWCSj$2{B<(liS?TuqbjLuRQ^&tcOE_3pE~(-TH0WK5*H?He=pixA!MN+b@E zUug&37ugWG1dl8Btq^EXiSvsfpTeop^C$!pwv#3EgnuK>*xH+3yz|r!arn%e_Or?T zZ{i>9!Li(Myb$Nd*PO}?BRj^#%e+rchlI^S3pmiLmNA|O0*AqGje*ObL@YHpm>P1- zxJqoQgU{ZM{gRT<)G(1j(Qy;u<&tivjw2YZI+g_4Fj6sXp!P{gk~GatI8(vHN-xq! zYVt3&jVj2J?mAE{B_+*GMSIGQ;db@yiu7gUmK8p%lZ7L#^$)Mh;&QBLhQ0$}r4_yTqz-?mR{ySWzF-GQ>6co6 zVsNxhfSbf5fP;fLA&wI37cB(LIGur5jj__!rkXj6C8exn_EX`WYfcuzXbf;11!^h3v^lB_82wU{8RtGRPrQiYoeXqS z`C`xw1-rk&CrG{1N;gv}9FdTY2f&5^T#h@baLh427U_=c{4k#hk91n^n%^jlNU|yc zqfA%lB+ZU=VU7@u6ZJG;A1p%a0IAKh$?2CY1V}Ml)tQ10Cj{mO@;X})<9fDZp5HZ) z%?|XeA}r$+!Za#uAMcjxhB+MOE>(Ye1~;6hn-H)Bd8k#FIDCf2XnoR_!`GK2m@J{* zxTNPugoGJ<27xr#gaquy3!knk(h56PEuQ`g{qg_F8R<1PY+LJIQ`qpFjS@_5v%Gw##9D3!Gt-0M^k2Gh< zFQPSLE*X~?wd)cg3oV@SC(dfe2t2)~rMS}AOIEmd7e9t6#26~KLN|qmgR}|s<_HA3Pk{>3pWwO3L zJV#0}wo_81ooqt+21qNc9sJ`IFJl{Tgil1+^?a5rY(KwB5tUmlb2XV z?7c8QB;I`ds{5}xck1|C5->|dqH6fo`D^dF=i2#O!)g?-I7`5}T3??8ei)KW4cJs93$!>wQt-p&`qari1~Y6e zrcXAg>Q{q!8TMm{deA2qZ#&he#f{w@7=F-@G&brl~Xhc|}tr%&Q(>w`5e|Q1=-|yTY{f2fi~Pt9wEGEN^Lo& z)#BEOdG~N3PIMvkYSb%JP*kEb=@BiPW=kHr^f~NV>aXSn-tr|nU*e}CgRD4jUZ8R& zF8Dnc`8^k@Se%NU3sXUuezR6C6Hgav}w4Yc2Bv9nHL^Hz4rQ)E~qLn5~;CW(P29ZF55-*B=ZTEL!~?$-546gkCTeSCB<0&nKb^g#!P zE~lDKj~P*9cZnFs=nyd@+r7``lSsyk@vh7wE{C1QBjS2waP;`A@t9~t*Sn|TO1^_0 zk{&jr_$B@#{8`a1JOk&I=#;QF7Z+ zxfbgk8tRSJNztHSWnxVxUg){{0)N|if9HAU zd(}Ok`qUoF7*=grK4ELi%bI;cmTh%dUKSe8D}DGt5?kKmf4K=|f}PwmF|o%A?lo9R z39=of(he3>O3c^`@cys1^|Ipa8;)l$^X;YOm@UL-2|8-RqkalJ?QX1S@PL9IV%9@y z_Vuqj!SwXQZq_D^5SEeVis&Z&Vk!pP4_jU49#qX$0Omp|vK)-DU^E&;;@Vg$&Uit7 z8B@6VtPcHyex||BRjZiI4+dkatE2}R>DxZoKbq;C8$?zbDp*}L-3Jj5h`XK(tgfQk zoc^zQdgBsB|Ixlo_2~3S(9sSLpny|(;0Vx72{_+oV)RNqe09B1zdB5(XBsGERjwvJ zBj|B{+e!Pj+w7Cu@`4WY@3G z%x@5!se#Ls^ZQ{{qkAY*E+P>ssRG|4E8#Fq<4-sMrQ{#8ofjx>(pM`m+B_Z47E)va zG_Z+YFn;tSgS;yJ|Cd{5IPs3)X0n3sF2C&uu==E2qv z-`qNTP3x?q?8Ec`IxzK4I;8`Rn;+9#5`HrqqI$`&%vT3->)d!j?n@K>DbmnU4n-*i zS$ql#?u}u*kM-}wqL^JI#93yt=Ij5De$zY z02@2lJ6fg)oq)<0#RFs5maxZ@8{#hJ2~YO|Z(fGdRt>sIyEITK_GJ`XPC_t|Z95vz z1b1E6chz8iHsZ-qe}EWqxrkIMOf?OynlB8e6-g-p^ig3ltg@PN-Oj;qar1|nb0cWADR~jdt=GLd`$3#QLxFs$bOpb1lI`2p zXh=@bwPjn$u)C6Z_t?^yW(DQO7D^@3v^I^H5Lg*Ao&ybM9y2YHGw*BN^n)->}mB>-Vcn+i_s| zoGd?hqi(O-`t{o^`xkfX);d<)%KP50hLmB(-nM+xPdo7aAUfo=DZVL2*z-Do--bt= zT3&~kyx!bJJ*GTCuu4vLFzd5(h^Vsj%ZPTrdW?rr?xEAG^U!HEJnAH5#O6f;Eq)br zUtopIYsPr6+gcXL$uw0{)VUfamgLe6uhPvhIKd=1AZauP2roR4Le2;4nDMb8L7N7FI=^ky(v6wW$pNGBs77D#I6x?tudj zmlt8g(#dc|swBY3U7&@*8r|rEXGY77nPQ`N*mJ6Sk z6S{eSXo~iYMo>SLYtXz|>m`7aK7&T0QBz^gsm2{u>GeH*co2HdGQu)7$6@Cv~Ht+8zpK+NFY`Y zCI-pRSi)FIkhQlg@64U^YrQ)gIZcU3a@Tdc=daHwa$NazZdapMRicc_8rOBpa!g?> zV3F5()NMYVUGGly7ZYhk%gJ(=JUupEQ?rWFt*MtOr}Y4R)f)6w9RC!m?v9WfAq#=x zVLD?5$3*k^dCPqq$^jk-`=dhY3`7;6=~(Aym-yLJy16t9B^JLplY+k`OQ#A=u6rZR z7rvx<3N$Uf`R&;y^2ws>bujOc^7&c?eO$o)G6h7&Kz{*Vi(m!3O%7(u5}l%F2MD1I z0Q$bBF9&MOZ`B5{|DZ+WJcX4d_+bnK79wU6s!r31{d@B}8VlO4q~#0gWS+6;|A>^* ziC(4!&3*f57M)Tp9em*1pt&7a9zcB|Iiaa&SnG5pAGNzerBorG?23fbX(VsxP1u0e zVkfv3R5jJnsC_Z^1Sv4|3jbZlDJOdv3%|YKhyJteMRR#;K|nC^UU2gs9)=obxCKt} zeA~6M!*O=_pcG>4*5I4EhLyhuZ6U4_w2!OeICG0pBMyNUI>rG$i{L`BC^mW?K&*wb zxgQR-;F@OG58a(3G#n@Eb~U#WFLmqnlXN|@E4a@wB15qt*7G@Fy$54M5yNS|?N!LK z{;C7TK|TW8GlfuhWV_Hw7xx8As{3d#1{o95Wi0rptCoTvJz18dGB7ATo8lUBfJ`Ft zcpHzs6Om`2KD^dcWkgWVU@61QObh^ZH%zrD;=1A#2ohrTabz>X$21@)p@d9S5kEm5 zRA@2s%;d+4Bs#-q`lC6W20Z&!4O;r14Sv3PKzh^&XMuDhyg7AMF9z0m6# ze+!zuwwAAa9J(A$gKnn_D)>l5(-I;0-_l$pd06ami&%U23fh*`252KgE?@+N_*)#B zUavvb%ER@!(nmaffAcOz^=vSGa8I#5X%&@j$)sy zVdGmwP@EIa&(f&P?(KbFe1VqJlB*}nx;;vz*X0wL}PD)2qgtXw1*QN5ssw6=bL%R7jzTZ)9@dlsuAW+n0@U%!JT%?o%yf%JG+ow;Rr|GrJEz{-=*0-fb9#sVr2bJEx3;T(5v#C>wVo<%ko{#)6pl z!Pu)DV3k69ogH&bC8dU9Hl@A^cLPS^8(hKg1E`?lS;NT2mxD30@I4=tD=>MOZ?3>X1$Nz~0x>_MxdA zM~`;d^F$Oii01GiP5f^&gyAL#Xl zvAb;DfLBVqIhSSdNo1V57C5&a%4!M|dt=T2R1Eosn&+o_lHs^%WKA;`!$4EDwMaZ> z8a)u9!=}@q}n%Vgf5|_ zkGAO>+CuU$A-tnioYBLmaa5Mp=#d00C~X$`tjJ|sJEe=_PCcmRrMa60MlIxDa*LrVrvpE@@b6Vujq4iK)R zs1=VR_4Z+`mZTq6`L9E$(NL}uC(pBZ8n34mQh-89i;~I!@Mg!yzd3}x;h~`(GsA(} z(jjr1+r=+4<~Mkkjq^PrP-Q=0OYpz1V&4T3B6B-$*i}Umx~e z)0|a9X(EqikN;Mpmg$iCPrNQq`xSJYcqQl89~V^nb6!Q-`!3~46BI>M!QW@SsYNsa zPv`sV$Ha`GwGNxh6JlTWXM^9iJlaN>Yylq+x-2a8)8f~UQb!$SVP21y;q>T3v_>HI zd3L!Fw`5a(39@6KfaN2=Jl316?X*`zzvyuR;xqMM{GP2h!AN=GF|Z0CsQC~-o_vAj z3_1klI(#`=axWL3sAqgMN!=52k zUKU!p2Jz0~wD|+BC@a?w3+%7M^+@U3(z9H7*KwOTt#Uos-G}Q#q<0vq9}aVUzM$W4 zMP0j5TPWLrH-%{p0^n`Aq(UU_5z9=!VjT|wEGT8$V`H|Ra-7i(SIzfrRnv=G-Rk{t z*A~^qyvIZ(-cKhhDzIufH{R-9;>vxO8ec04)g8Kc>g(R@Mo90=7)&7tcYd!TX5Y^eAUD2m$vZfiy*8jd)DibR8f!&9yZm5N_S9}#}by8Z~zs8kOeo^GECaKh&Iz1$sF zsC&z^(uKSulD^2?2^{!GF1 z;IjRBVde6#qxG1_dR)eOEIgl)yX;%Geg_`U{lz|qT+d&IFDY_;x76y81ZdR(+FxU1 zcg@P0KA{KYnG;45zCz&5A3Tc?w0# zHrw;3;~c3gwKQFA)_WQm!U_5s@z3xjNzn&+XaH4>SnQ+3XQXnY(dbwX5PNr*wVX=Tgt@wCmiQ2a?hM~7A;Yd7(8enhWhP;Uaj3^6kB zbU_{H8pQuc^;;<!3n>9noV1z2lFK;9-2L5!(!Uz_U4ksKFxYn-Z$y+)a@e zQq~_Y>o1*NEMU{Zz5(^%8rSb8pgoz!&T$*o6jydtN!`Wuo22PX#0T^#6&@B?0yF%p zT?*-syziz4Vw;(ih>uSRy$5b=(QTx)g3|7;16D2*3+@QUGdB zw(5QH^tnao?tI^g3uS}DM4an7)P+sh)Zb{7ks)-vz>L(6>2fAhnVCzPZ1r3i5}PQs ztVB3z``?7m5t0-(dwyU8;X!@^s5&Yf3^)Ib`h<9Cp)VOCp5Bv#N>KNp8#cCb3S9(r ze^37nBLqAz7!&63)?Xaod6BJLshfCTojbN2J%z667&k5f{en4t z;d#8@fA?Quy?#L05B=z6P+8#u1kwg|6^^8ufjNX2P&(n9=*E-j8v8mtk&rtD=Gte0 zI&>!A6OUz$%?EbIO$Of_k3JBM$-1q%2$*$m?-^c*XM5sR9dJZF@!l#O$FbaT&hvRQ z;C_Ki#9jw)A`gTw1RFP~a2XYZcN`2fT)-EVBT+vmZK@}GuNAY@Zn-=Bdsa$&9Zm~o z9z~HfG?11NwlyOa#zmSn?5O>CD)I7g!ZAML7Gi2}F!nIT|n#65A-^!-caM#vu;w(V+x6Rv@X#eRR)2i z$Qy1Hp~1s;3Hufg@DqcHIh2Z_tJsQt#&O?mx&7U*HKKA7S?d3q{2kdLE3JJnl;7#< z`*rLxfGjnp%rF%C$lL=buvGQ|9wV{_SFA6RtQFwsvY0pCs1N`x8Kn^AM#-8mJX27( zPzXQH&<}JwP(s<)^HHekm5kaI{4tb zjM%*jyUoak-)q}LZt#XsEckl6kY@JW(ytrgpef=0_x=ffDrq76dtVGkjGpjsKEmZg z!j7Xkv<4693E*Hrr`%7@&wLj7lL(BMKdm=>Qn8Al4?43qqdDin z<>D;GRPw>o)nmE}mlMM4l^$ThnhmqIt>8y~#!|73H_YS{Z!m1M0oeS&{T4om zA@b4h2h#@6>10jVS0-c7ICGG#mPEPJ2YF#V*&Hlp-{GG6@Lnq4wciYd%#`J3Mszpr zxcyslzl%Bl7wVt7ka`F0L8t>-&3+GQZ=GO%;2=yNc+dhHdd=byDyF@hL z|5_ytP;-TjtN%hJ$gUXR?9du;k+|zejG(g`t?asDucbND1MZaMX95f2&lfDE&suWI z9ajsT`C3#k(H_v)=G68x>=T<)v^1}6CvaJGc7VAivpfHQBmIVqEqy@QZKZR0w0$4W z_}CDy;@27U;|0~Z!+HD4bwur+g7@2%s2SFHK!R=@CmkLGwhnBN|-8ZW4i{pe(h#KG2aG*S#?P2ntoJfh?01dB5NsMp4db0qxuR+yZVj;<9M@5 zEA5QszQgHaS;KWjHfkY@eEB2__O#od$GR{%st+{pll26*FZ-_a^~q`OwhKVz+8KCB zClyCYX1Qt@$+XI~bmdL5{0jwDEwDf5I$|STE5j-%^gZzXro4)4@YwI;7D}RizJJCB zPm+{OVic#0F;3L!Hqdi)EcZ@j|J!kfkvZ@U)UflMtADR+J}Y#ioUSzA;F`nyruR13 z-L^dfN2et)StJvL&F0*hGdN=@UTBWc_xU_JfoQ{DN)7OLR=`C)fxAgC+!4|_)FY`# z3>z}~+Qn`h!KU!&+YNVZ?bkF@rweuskTa#(=E}Tm8CAA|jN9z<*qXKGhxr%KUedS` z&dVCkxhvSr5sFpdBnNHfxHX$Fqx?Z!Ys=huQM-c%ivo7+;2XxweAbGLLh$|Ht_e z_>s?YVKJO1=h8ento*JHrG7x+Yp20}342^Eut1he@HI3HQ2b!0;lPJtL+}|dpNRlZ z!)pXK1C^q_6+I19j*fE)ZcRo;3MQQ9d!pTPhAR@Ty4%Pk6=Uh|mJB7CG48$!!7c(4 z);%L?w=O=O0n7L)8}1;{PjRv5-L?|W*!SLRXTpm8Zuc`-$L((;!b*4!F`fp(`vZ;m=AZ#E9VL4oG@j)k{chDOrb82M`frFl#9!{1x0= z!^|240}?ubgZ>lm_)O}y6tk=qQ>|FXEmOUYAL#0mqK~hvkluoFID8rFMdSkLga)MU3MaeI0i# z+;lTnQh&MQoP8+cfP%uW>7o@-H}FUlySX1-?$yIjUIa!{a77jM_%3heajdgNJP?uw&W<|yJKlM zm}wdr6*LX*X6e}OafPpo&vO3}^5yQv$_S`Xl8&RI-4GgXl{ujg`_Wo5e36Sv;d_5#lS^LfKK&w=N2IaAe-=7v+cdS2D1fs6Ie znE#Kk-vf=D!g{_w5J+)oH*gtVAZlqqOVuZ*;Bo1f#Nehz5CCNWNN|AjBy8y1sOJ|@ zbhXxT!%G^YWAg|qF<4%K{~qF8W&r@CRsAs&AYqs<2o_Q>U+h~(M-2=9jQ#zF zsaoakZUbcOV1 zu;aByYe3*ZO5O*MQ&%(VrIRIG>qcfFW9S+<9pWz}M}!tUi+nSJR*^H!a| zFSV(HSdD%;+%x#<^uPDZ{cHczFJIx_copt|u5xd_Z}4*=T8I)RE;@@kZxZF-;XhvE z7wi@MsXxyze)@$JUC(c(Zqcxht$~;L0#++!cw7uDBMV6Y!6@8?k!CtS1DS*^pYjfi zl}Rco$Z@;iUWKo`oBUS$y(o0U(>p0I4zMeB!G-}0U=>kP-wvnA3jjy#R}=3#6-p#R z^P^5U>?Cuk?&QAP_u;GSc^BQwkH`U>4znW-+ma>2bkrkvvgUh>OU2)%-_TA?pIE&g zK6Q2Xa0Y%^qx1MdF4@%|D|b!q+c!zyU;Sp@?tA(1PpAYDTzg)YR1&soDopBr^tk-n zcqsZsLB90gL%#ISz!!LT;DNv!!CN3?gN(M=7ogc55Oix^;`$W|*TD%0Gm&MzhKAxM z4h7(W{MV++aQKjLBVT$5RHyJB4h~Q5>|hd7$vUWe4Z%>jn1Xv6Oi>6o1#oYY_jQ?- z@`asgJ?w%5wTCk|Uj-A@h!NU0XzeqQ`@)C^ixoSHtoDwcN{kL$x~eAntz;-}h0Ua; zM2;f~l-oP*m-PkXg9q#yM;YNj(xv zsS>bJgC>)LRzgi!mcARKYDEmFd#1z2#ybI^+IgqC@xlA?6TB}Jiqjlbfd58u_Fv(1 zbPr;0{*&{Qd)x>KAcgJ*rS{~3=QSPK@0#Wbh+Bqn0>;4Khs)7>6icQL@J})5MD+!CkL+fP(*q_u=Tg?{!X;g`HpRwG=mPzSa#nOX2X{ zPWbA6T{g|M5e#C$|1G#P`kF*y8bwx0Kcw7j$d;MXZ&45O6XO(PkyNzLiD(hW3FBbX znT;8fj>+1MR`jQxm=sgOe?Nww<0lcjWEm2RSk*|q4B$*t1FdTf{%XfrA?XPAkLpS{F+2Yb{CLJ3p zN4xB}6YX-<=(p{ReRO!65r1T;bGRz0e`!nS`#PPJ@T2W?334^h*lz_*eCt^uibxA26-;U?4nDsBJ@~hH- zBvP(smSj5xo84$Mo(p)77-WIi zQ5l}Yxy5y1Fss~@E=_<)CiF7Ky-J364kZo%FKkR?bW|pHA&D&EWerFH!Ei+fUz>GP zhLLi!uN{mo05fktUF+dUFe)J%oMK9H-##hn0stbBa+A`&K3NKLMomw<`5P0aZJUW3 z^KN=UQ@W>csoAE>rn(i)m5|^)Gbu%YYzpAgh%}i&YHc*4turM4V-H3W!l~yw;D5H- z2Am$QYNqe~5fpMcWB@`TCGin#CX_^EKIeaE8uXPyPZ@W^!%Xt z2{Xv@WOAp!s?T_ZcaD%pJ zD(OopUY}!gh_^f!UE9o4mEO0Z-q`_O?RDdvvFZPfVDHNv)i0*0 z_B#nt-B|26qCGSQ?Yxw|ZJmejza&ipSrg$YBx#`$Iv0cBZ@feSFTH&dW-o zf+Sb@Y1dOqOyH~O#pZYSbQhSevjT#K6`HeL4x$)h?isha&p>d*2*MFtyF&jluA>&5 z{xWG*_#wGfFL9N1OPt7yrAoSu^0XLO(KF}=y)~{TcGX@!vh&D6M{`?8KP*b5sCWQtYEQ4}i0Pb@Ssj%rdEg8HzDx%bSK0myh%I{Dx#1pD`eq783?$ zEr3R&G|XWX7!BkB47c{y5f`QC|RM;8NfQ!?_uSL~q6w7UhSw+Gu6%gws1=0tyO@AH`u zFXBRG;)P5E7<)b6GSb6R?9gst`5y_~02J<*23{U`IPgf|ZGp#tibZ*hiS3>Sovjmz zO+-pC02Ay-60tbYK*Tkn`I>}XpUc^PTfK5W&-bKv+huRx`sco4ZPNdp|H2q&kjl z_7`=$HLm9l_c~+w=GWNd_Uro%JIYHJ`SVj9$3cG1AHdJVb>|)Rt?xF)o#Kc+pl$!z z2ko^mk&utMFg%m?4X$%s1G>}8gCrE%+#e-XOVuz|;IT*rS2qFJ8E(TS6p%Jbh@aXJ#ZHJ+(M`C@smcE=7^L?^$?p z57+;2{&*ca9KoYq!kfX`0E+~MhBi-M+jx$kvo>;2JaGl}t2ZwK%M{7s%?sbcHr4r* z3owpB%Wi6@=4dHOP&t~q5Uu#kH%`)$-RU8jF z0JN`a+MSpAbnqPzzcp?7@+Z`v4EnD%_Ip@czk)fy{fx%3h6E^y1pIv{6^M+t2!uz} zp}QACCaLlL7!ZLqOW|KaX~sQjAcOaE#~Pf#K}mws5a0%ckli%2UPIQ<^M?b+>@D+FA(dC}Q(7a1cevHu3=Ffl-SyM^$U{G32BG z_&?JNt{yhrVn)|sKCtzDjmAFRMoN24&lFulJPIB(AqDy2WAimdacmn9w)8B;h1FWY zvyf2=&yqBHmLA;lS*PTn+6^?PjD~#YlCJIVJ2V3c8!&M(fd&y1)vO)r+Yilyf=6cJ zdayfa#B^R&U5fSh$MDM#o}kAJe1)e`t)R5j6#sdSv*CH_jQ2b|<4VutK4qVW6VUGi z;|~~klqvuN#rJ5S(-3iF>y>!5?_~d)kus+Y^IM5v-^AP4>d@OJ`htmXneb9e8EgF~ z`>J>V*?39zS%pq{h;o$0IGM%Vf#e4}A*@u0!<$Sc;1~e)F?S2bDNbTgWpR&qPBx$h zy%_G#2LS}outF@D=#7M>5eXU$rpR=n<5U`Xc%&E`n&TP1W^H`;v0Ly%=kKjh$ohMu zXDCy=B@}+AB-#77vvAmWizK}>-26uA__YgV;nNVdK<~(B>EGF>$%l{p95Ja8m`OHG zu6nK4NU`8GfVRM1xMl=^<^0>lQOK#W1S#`(DD>9eWq5Lx4Yei{<9*zWwZ}g;xLx zx?$iBedyM``)>o>&XApRt+xORsc$dYn9xtOe^K5;!VujHeP2uJLN#EF#QPvxVN2ff zd=qtU;mPHFh!~_4;mm+wP=GxrJ#n(y5yxiee`TXYxf}a!P z?fZOXd4_i`H}laZMK+?VIaIbNP`MEq3T@JSLsa3qbRhNe!0Z}(#l*t47a`C191Ovc zx7~Q#VxQk%&2Le!4NWYR_f*YIH?Zxa`)5s4J@JaYeSZHxoU?~U3v>M&ifL|!(dVB; zpBH%yrf27%uu$|gDg-?R#ekyH#N9|qiplbfclefFfO+(e0|-)o2p%c3Bi-D8sD~9V z@aPL@Rn7t5_V~e9Iz^o0|DxH~&7F&|&)oV1rP+Q$n4>WE{{cU_pTfvbfWq<)5H5b` z7LY*VgE>Mg*f35IdBs{acBbLaK=uQ{`owaP4N6$`EfW377pGxqEiXem&Sg5M2%-l5&1Q^+L}{1nlA;bbD} zM4T1lY=d|uufhpk@2FYpWfk%A-v^(&v0_+qz*#4s!B4}Z2kWnMzJUG=lnDZhu`)@h**t^(M?Wr&{!q{#5_ue|B<7=YO%Y_Q2O(|nnM`*2$Ywi%o^ z|5s9qI}oia4DoMij`KHe|x_ZWcNrNV~J{$>>vFn{?4)Mzf!z^ z9IsL9#V1mCaxlFI?E-t1|NP2P+)-EY(((I?PbBX|gsknnimzYbn?3hefq%l7gA@~( zj9|+MOGLmGo*%>FKaN#*9OPgO=`!xj;SyIl1|&Y(`vV8D2Tk$cW44fFPQ4E$Ako6o zTRLxlV)MgDR>1GSfZt>5@8@(Y2QW=Wbb@=tPO)uxf(kTHyt4T}5a7k1p*ju^j-uVxv)X7p6?4Co-xmQ~V^2yZNU&cMd4n=_#v zO+{~UxCPpXh{O?o0d^~jY&k=F^xb#UegbDH?B{fjy?g8O)6e6c&fj{rfEBET1U!g6 zS;=3R+d=WMG%=dKR`vhk?M>h#xypOdKDAeM^}eZF-K}o5)U91TYDulxG(DQtv&tSX z<7I4N8+*JWV`I!NY!Yn1VG0$DVCCXa{bFsvq#vi@OMc{csaG09%Kb)BPhrZ*{pn?suS%}-& zovQl*b8Hyc{7akr>id6WDDV&?fYk-N2s?dC7su{Lde(%W_sm&Ot<{9IN)JR=(^T#Y zpkZCIQ`cV9c^Xrams<>fQ-B1X{0`F(6DchTRWfcqSQ5R!k5y2j6)e2c!lL*g5DN+u z{D_vxiW7b&SOm3@@Hd1>M&8o)Pr+=8r&nk>{m8`4N%M!aklGjAP?Y#hhSVZ%ZLghi zOoAion_R~cSWYgkxxmxT1!SpGA#*AlD=eI(MOyl-ZTDIBXOUzyyrHPV0MeFz*0%a= zy2h*9`^_JMA9x(=aTFfAz+_w~13=($J>Uy;i6yx1#yXxv;Lhn{aM3guf#8thP^!S% zPx@`5CyKn1=+PqH9VJ?#_3$sTUTi~~|K9AUlxLo>h}>Zvegsv0hy%%ZYzT!FbvRSG z4w_1?FwuK>rhR6|m9rx^E{q*Y^%REY-i`__yV*Z?H%hPE84P|~ADAu99KLeLAoD}KHTZ|h+u;3 zkZTODYQTiPF9vHQWs1#IYRJFXtTas6QX!(%kVqRkKseulTUp%q z@|V9(=;DCrc??qXp4Ywnn>brrrGKUWP*f#wq5UU{vhW`l6sWQAV8ktbTI|F6fGHl_ zIZ4ArQ#r3PFOC!ys1e&vTS@D*gPgZl>MG@i`5aOaM%}q(%UTW=L{vk<76_UjLtpus zYk1~o=$RgAW2p#;fgjB{G9$Lp= zF;EH;8b}Ny?H0Gu8upoXamO33^^*vnd*k;XC2I67B1?bW%VRg%46Z7z8q8LL2ZBU*SLvYitqL)Sdr27BrI z*@v4kqVBkaHxf}A^K-Phg{6Tr?(;7GHkx+ZWZg^Tt`&30G5tKKnM9l`kmCx_BTTV( z<6c-`pufcs;prG53>@?t0OT3s@bFs&DrZ4G>R|Xp17L$h-7^)xZ~6?B;t-D!HNIq_ z#Jd%xWCWI?MW83LM3f}I7a&cdCUI-9w|B7hJsw4|jKkL8D#inUO`)<^griv}&vloP zZa>>QxH{N-A;7-UH{%KCV2vbL;~f8Q7Jmv^0fRXR_hH$0^gP3!EJjVxdda}Em{m2v z)DX{v8%Zp_=2sJ1kDdS(5WlG_Q2)6veAu;sI1);^lkH;QTc>uq()fIwG)@^(CeDZ_v=dv?$Kg$E6+k*c)Ki_VD zDT6)uwhP|^efmJ41pXL2YC#k=kOwJPOlUQad$XQ(^V5q*ri%4SFoi<*W~w+b+n;xz zwS@Ad6N)SfJ3G8EHg;7Oxs&^*s)a;I7bhbj=SdSq$7qd5FML9r2h8SZjYH>3KA$k1 zOsMeoR59RF85O#ln)pgMTAbLq6~$*qj<#y5jt|MiFav z@aHWLS|6StO9}A zP=$a)h2Js_QVgso)AM5op83HuH9Owk8@Fqs1dSU!o@`rz_vF{P(|dReaZ{jJs1sLr zW-Io+cIJo^qh+KU6Y~1%Gp|0jClc9n?A3SR8KH!cM>V}5%C7U$m;Sypx?>p%Jh48e z3}$1INUV@}Qv}zQ??{yZjWZ^-1-zhQK4Gv=AV1Ck^Z*`fu@lsqmb^62K#^6$Sy`%? zFygZ_E27n26KC>CP>B*Yz)N7+fS-~_K-ZonYC#p$MQQDUq5KkEUV@519&pCivvdp7 zjy1sV8fF60!GP!gf2nL$Vh6{9MQ0A1Gjo%%5D|a*82AE@2iE&`Mtjf&!b4Sh|_Ag+)JnZ z@uNqbJ$uezyRa7^09L{Cd(se<76F&r3rtd_F-sVzVV0phgc%+En$-c()IapMHi%|p z5H-zk2ch6US4NJ_+%d6LoY>WV|FPy#N9>q*YFfMb-4k=liCyAGYHELun?6prijN*` z9vl18#QvML>HcFQ%D(qZJhkhDGPbEf{7<@#KvnDX(~s5ZM5XzwYnD{uP>TEK(nISm zUNlk@<|TUn7+l07@6ko5Bvh8R+fBxWw4)w&r=G6 zm4dziiF`px(bS3X^^?e;;AW;WTg!M6XBlEnB;|!wOn#?wiMASYZd5>V*A>u5`VsHf zNE=2070?TYk!~24+W!l{7kMqCP2-bSMb>>+NK6)O*M3N7f2N7B_IuioRpW0AHEld+ zWOA`L#*lO7jPZk;45x?!(0K!Y8KdYJH(f83{hHR-CqMh)Z96|bv$KM@65D>AP%4^M zQA9AJX%R&oF^mya3DdVfdwZjCJG2O-NRT$37RIj%ZX*EG4NwR%WJHtTxXu+xfkpY8 zOH)y%hy>Nq04D;>l6svR$;9f>o`^e8dPqS=YhAgoP$+z?P$4g zc!D*d8`^~#KfqPAPr#q{dd&STsOE4Nsw~|fcy-`)fj0pTV9_n3d@osg2eFUQF~UhH zGY=~ErV@B1)aRYyB4D^Dg%4E{qjUZa&Q*Me&(U7?zN6!quB-Ue@S)$Sp$*l#Ai>Nu zGPuvgXRXx|tyZfYXtfl4T5y{M8peK&|MOu>1aQ(`!L0#YLCP|^g}&zR*XS6{__xM; zI>ZtE!>ud)SR5+>Z1~3nJs&}*e1aW48b2+cK|e!n)I$3;eDH6D|1kav`RR*40Zarb zD~Fz1pKTRZwTLMHtkoq}Wi_wUt`$P6z^mKmuQq#9t5b$CWenhBOyzrMro~*eC-lP~ zCi?4MGj?^xyKCUjR*?gaGZzm+pFIsj^E~ox!EnktNoIZlew5IG7i2m?OWT7jg}L8kZ~cn!obBmbZ*Q3Ex9yoOr>H3G0N?qx-N3U54HyJi_UPivSmvpJM7?O`^iXA_5xFc zaWXJR|HgBa2(&Ou{({6n_z~KuKLb`8lC+c*$OuYNZ1WV>#_6efp-ZC-V$?AlsCD!8 z$#QwJB(xzz+|fRFhd^3tBb^S1Rn!pH)L}~v?+vRKva^d|GLte|vQJ8&Oc8{yO=_m1 zwl5&?O)<5k;Z!5ZG`^--!^4)Tm$Fslx$=2%nq#WBNZ6Xi8i|Y<{V-bgj-a?nXUen4 z1qMw?zX7igZy?K4myc_(Ow~>OAX28W=}sF*%k=cgs5fdq<`yMF;QQL4o zfB=-ErFTmOW@MZ)1}i$5`+h=$Q`ak zxpfWKm+9!~r)ewW`RTZu78{VlQWSTC0j)vahE)!9uv!CDWMJG#m_B>8c`x;|oRI+m z3!C@Enu)&-iQhocqxQ7i$74_4{&jqAE94Cw?iz&*NDm4YB8C{vmQw6dpC&hu z{?_;mEX^MYC(>piX&p@K!AuCj3W*k<?(jz2K+8VUw>2Ae?>XC^#@d3={e0)Np~az-B}M z1+pTAXzwq~&S>UMh*#Z_E%aWV7d8s-?3r-Wg{K_%d;O|rY`+>+=(PUtg`B^;M~e&% zjD%7#Mah(wHB+Py!2#(}QXG|Ig|sVnhnx?M>aK9_ft5@fea_}JDZ2Op;JH{?3AFM4 zAa}qekf+J#WewbLALTw6tbz?DqaPyoC~TxkDQrC-7`Os9{fJL-zJ6c-pU>@jZr5bb zKO4c}!oamg%$PCE+bab-CFXh1o-8FNanG*FH$Rq+7jk-j;C6&u09iHmr_A(BoYfxH)iV;FY+> z+B%Y)u|lx&z5HPSLaZH76rl1KJKijX`>g-0Czbo>{@!mFPvjCZ_gGIvrXK47dWS-) zd;6E{5+faBF1zS>m|NslEG9zFrjy7}mXry~%Kt>G@JY-180|l1SxPmhQpQ4OqGd)3}-Vlt4e0U_U0Vm0)rb+$wU1fSPewm(+HGF2pEvk#89^yvUJ@ z&T~sh{h_qT2DsEdCj$G~N+{Dq+}m|b$w1o346;y$>;@9~{i@b=!WWAu~h zFz^WZEfL%XL_GuEl`@)wmz~{0NWd%uqk!C2XGB~4S0cb-%S{v&3OPq3L>{qqI;fXQrJr`) zV$A`y5q(<0*g0%PXMYywCdtlYd_hwqU9QYj$7JKvA+Iv*OqY;{#5a&#(`|suLhxn_qVC4&| zys8-iAK*B>^Sy}SHk@R(4`tgbYC04~EOsw)Qxp@|U!N!%dLIvkM0y5)@r&zDkC=ar zcnA2rdB*>u5G zVu^w4=5n}#7%w{<6xn1?&*^A1+CGboTz7xOwfIti@SVT~6ebRvdlQUOQGvk)oL!aq zJ216iP^#Sp`7#M|qD*Hx6&pbcgrUuscb0dml(=ID+_c}9X=D2rV()liRJX=%xRxes zIb+^Bp8uNRD(ydHH?rSZ)htsaZ%N*g5&~JR{{V>$XJW%hWOHC_&eF$TIVPhv<}Mfg${8I(u#1@Kss+|U=8grJK1 z8R}|@HYZg4nED0Yp74qUE}8ZU${Yr;E0u6`0Y@Mrd_N%>%d$;>FP6Ov?K54t&VmJo za`=KfBH{|ii8L62bz9wbkpQN65t=e1UPHN|%_b*|mTLOvTbqc=HI!1?d^2)L!Kw_= z?<|hKzD{&-LNQMRV9qoI?>NkxAgq%Q0{|DU+mocfyk^fdI8uSD84oAyH*IJfUP;XAnBQa(MW zv_PwD$fv`=OkLa(`B8J+su#P;emq^{yjyp1F158gUfsTG3yabN`j8UDD0F3b)O2HKQ zOX}7VKHg5OarM1EB1*8 zC(Y)S*qC2|+Q7$~#50x2mn$*j$I=6$WflbBbe=c4m-R~4N32nz66I94_#w-B$ol|6 zcWkbK7S%il)M0M?4|I8Tx&<3dR~Idb04qUX0|@J$l}4fyYXbd`=R&yNKW{bm%Y5*X zhFE^DHq(->pGIYsCGOkjH-M2ZGp&Gcs>qr%8)Q2Y7_sg*>pW|oS&Xzta0muq(QP%> z%_ttG~Rw(akq@NvO;`AoV{%m^Zmz=j8&$R;oF`&z8@uoU-Ml1L{X<26()5&f7Jm@AwmOwH;mJHt-ZjUj;ByQl{%B^Ed z%vzB8jz08ioBlxhK-%!tqH zjQv20OR!!2$AwQI^zL)eyg=)aXu^a^8bF`~vKEn}DO8-k4jUG7Sd_?HocAg@BK0Yd zfw9kgsrBebd#kMlR$uQiwcgwuYp$E)a{q!8_FKoLW?RH|Kl%rG z-Q2^sEwqpt4}OJERyQYjum7slgO49Vurn&+;rlx6=kR?}m;**B_l5Enyh{)~? z;N=27os|=)#+y!&-Vlx~fWJTo@!@3{7tY@L(DgQAmfL4l-4>JBT)(5(9Leh_C)0N& zBSPTC{a*e{Cb=2l;;td~hZ=jtAAY-%Z{K>YnGBoPj>8m)(U|Jm(`z>-dXI|VEnks;;aW4C zG_QU6M1u!#>Y{xfFpc?s;llqV{ziNRx_tJ=l=Dfh8ZzNK%_s$|itp$&yulwAM<@Gw zjp9EeY!m0!{^Rcw$YUrk4V11Z{u4UYuj@b9cl=#=KHCad?jUVmjjhgsgoh4z33%ER zvL|oG%N_^au@o^v!F>mL@l%z?I=J3-QYo+ufDgP2WZ}WzdCH1+erc(_;z<{vlVa1g zZhRJGt^RIrZA%m-tySJJdlKS!ra9dhB+1EJ@@Vp`A7F2rgA_OOQ_E_fu`KXw-FxJG z{i~w2XeGk!hrgT5B?1VsMA=I46hrB}DT<*T7?#tc!mK$$;%Z;mWG(c6;eg(lP zs#w7-e4}XPs^g90_uY5AF@7O{`)+*8ww@?CC7=qd0nj6OTAy#yk@Nvmg7cU5mFjfb zqf?1Z7;)3QL%b`;;9UY9-{%c{8Vra5ect5GigV6g3u?pfOhQ=an~kZzXD!Gd^7iaH zurNpE^H@q?$$Ip(Wt|39pdBbCp8{Qi7_^8WBwO-Ai!~uKafNu#I!v{@m@gvy&r2`Z z9>60WTJk^qD9Yo518&4zB4+A4%ERLQfV_Ta(Lhyp!K)5R1)x@P@g>7EVcsUkodXlh z!kkM^Ty(i9e#bN(3p;-miGJM)KW3QuaH|zQuNl@CT;qm+bM+U#ue<+tgW-O`GPE_N z_FOQgB7}QZjRl{pDVe+O$}A&S^PCoZvV>&9qV!}?n^VGsq$p199Q50(&_PpGZ#X7# z90za%@B>I3ifcei04O6S((^`I-;+#o=Uij=5s(wbjOC53_p|d6Y!NU!$gNm~buZCS zQD7{!CB5~~)eqv*#y`SQ|9at%P!r-$0Z{|swWphuN|*ZpEnBtQ3$~Aw*}-VvvcVw+|KjISr{#t>j zJz3fbwj{SgP>0|!lAkY~DWs$LCI^hhYBg7y8xpOdxf0nK#A>cuLIFzDPy}AWu7v9( zI3+^oa_IQnP&LdJo zN&=85{~OxCcfm)TvV2rQ(Y+o5#gh?RhEd?Fo0ca^XJ&ZCfky*lG79UamtFb0S>(~$ zQW$7W(BGod(R%gd!37mn_B+`A@FGWkq8 zc2!PGX~j1jo6Je|YBsuk%ODh~`{oX}Ru^uZv$TU|R2hiIEH)>N}8Kov{YG z!m{J;zzVb@WK+P@fNpqdwN4~BD2mL9hN+oSW?;~LPdwfJHG+ZWWNBnIl2DYSdyLK> z%*0OFJr6lW`!!)siB`>J!fpgV7d`}G74Qo_V>iYkPVzrAmoyTf=*Y85Dru1Fm(&T7 zxF@6LGCNbjV0uTUSM9mS2#fsB@7Nb!*>ey9+-cWM>&f)No>v+NU#zQMU(4XJ=b1X#g>kALE)v=ctTV=!83MGa_GKCC>G{nQ2 z&|-$A8ztMA3MO2!ensaCdf7Jq+7Zq>W2yG$}=0s#d6_k)jfxVgZfE70{#$WkQR207BQA2 zn~PZoNhTlIll|g7o`M~>kOLUcH?RU|$;|YZx8`i~Ev~AXcQ`<}*J)ur=+SabXd-O49rZV9F5;j zmqmcp0r3)>@GUDATM=!?y$o3GQ%@DVWujP(pdkhA~5%*fTtz zf4~&=<;!ope7P>n2lDf~P7>aG(oj}#E0mRr@uXu8>>dm6z58KhI7r?g4sux{=JmG<~7Kaw-y+b(x0Naa9@LE(~vA*7gK!a!z)#+=1CGG>_lc$Z0q zgg9^-X{4l)I=}*bhgvc^m=DTO-+Y%8vv1|yF+GTkI%%s{8FtL{9tVrU5^4xV4b;#m zs(vIIMsPJ~G?36MHX2glc@uF0;)(!ICR5I!Q6GH_w* z93g>=oO91h5g`-MnQq5IBjXof0RF#zm5o}zIZfo2n1wCXinPXW3B{T8O9lYG?L*mq zRf%Q8$jJkng`z})qrsEgR?KK&td!^p-NE!`HPa)Y014{nSfr1KE~gig%A3o>wR*0a z4QE`auXS5@W6jHy{v+w4WLp1_66FwYAwY(RuWDcTnD`Uup)88L28Ss*N=cS#>I4e3 z$|;8}j{pPyOW?PV6ZBQbuMfxf+N$_tQ?d8OL;s32*19rgIQ@6^ImTGbO!Xh1*2>qF zwTDmM7IpIg3M*~o5!#=KRC;@D^)eSek%oI&zLlw7v)zcp4a=9oNFPpdDP&zGuLsfv zqPByytq@?#Y!oz-=n%914c}!I&Pm)#xpg|EoMY13-|tO*mstgR|M78*V7;e@nFpCz zz5Nik1WPj~m;)sxQ@IbA5&Kq&zSOgr&*NMKuu0@TC>z}B)jdN8xrOQ1Ip&um&^H7; zHVSwe2m<=NL3qfS@K;h>rygOk;nX8=Gk)Nz=xAhkYP(o^ZrFbEe(-(d;vT0D8U$m3iqQwi11n6KRrow0ebHn2?kP?P-b zIq>4E0Ta54vL}rIB%sM5ib#xXt z?`U>DdsH=1dTt6h_UmR)91#IHg6vk>ueOwsVu|Y#k1?^dh{OSw_(4JBZIqc2D~TaJayGRd{e2R(E}ivR%U*>62jiEM7Z zmbGJy_7}-ussYCpA6qH+z*H7jpkGmbTbV2m_4EvtClj#Qgc8+UqAkNpp5Q4H^&3WY zL*?VICURGswq=pR#lkh6v9$J`gbE$$7)$Wh2)sm^|z zDCaq%ac4gHT+d^NgRvw`3P|eyFYUi|IA@<=pZ!6svmzpT35{Ug@{&T3ErQ?}si%?e z4W!`fu?*BqsGvCA(xV7nJ7?HYy)_-p#1Q0{d6j!j^EussrT)3*HSVi6ykCZ(cB8xs zA2IqhDuUI>c#?qkYJRllTiv5mJFZNW(`)sgwjWOBkIT36qcrcB+q8)P0*g5)-(cnFaf zM2~pRW_rr6Z-I&!WZs^J7;Bs1_+q_hVz3B~Se`8{#&dH+^&#lz&m{8)T_mW%=N*lG z`6T=Z!3!-W^ZOe0{@<+>;9^7q~Rp< zErKuDrJcqRqfg3N_+b!4f-NZ{{{rTf;_VRS^|K=Gy6PfGC*9PYhfx))+B`1p+sB(R zMBs@lE&FlHzMLJW#_zDLHQaOf&by8`N63aS(mWoGuE64A*;iOLl3tCUw(Nk`u^Cdm zuTiqmgGr}lIt{tAW6dTDcny)<9w0#Uo&xF17*&bclHwyA6L{9CI5c#vI$y4@Xp^l+~0-*eoLBAu3uG&2U7~vL!>MqANe^YMpWJ z13Yl;uR6MEd7}wG9wn4BQOQR)v!NQQ;%b059@|ed{V-W?2Ku=Ubs7BBhUv{TGho3% zKR8tq(bA0Y;BNcyF$?MawDv#vZ#Vz81CQ;rP?0oinj;7GL1fbKpl{-+72N3ry`KH@ zV+Y=b02Awf;D(WdTGgb*KrrajPcIj{U;XP+@u%y3CVE0@FD&~S*e}fH54iSMrM^e{ zWA3Tj<^5%$F=ee!Eaa0P5<|TOEi;l?lM(HE>IGUHh5DXolv0S#EuLJMKn8S8)V7XB zD1(Eis{r2mY#>Vc^9Cj6@zo>EjOr!Eq=D*?xEkd%hsj1tVgOV?=Zx4jOF^>$io>%v zeI*?JR5JOgaCj+TL2x9RijWpC*zTK@qq9IFKp(S5m7Bz(no}nbcnS6n2 z-WBrE8Oo?WuNj)H&s!+}wcY1cSFnD_w}N~DDbv!1iEY%^*R98)NM4XwSe6ACX+m|1 zoU|>w{dfK($HLYqLpG8@0kxf@O^J*hpr9+Ov53Ex!*vG9yHKo^Zo#Hbq_@q*YljiehieFvsrzBW3#rC|0HDhZm6u|017_E2Iq5&BL2 z$h1Vb(?|5%{oh}T7geu}gW_+MESw#S! zmb(8~+#J`m{}nm5ts3L8x_|FI70pK?WH#yIfiA@(a5hlzK05f2CL-0UGn-h1C)CPZ zdFF7v+Wv8&(I@)a@Ar8hpG$aUX|@jovk>~d($+!aJLF@&PLpEr-yJ1=3?m^9_aG8a za;%AvH`HxoIjh#skv!z#4vdh24sP>EWt3Oj&JCb?*T>`GvmS*5QotwaWJX z!!xuwoZlA7bPZQ5bpl^FW#c=&#{s(g%wPzm*^}Xu{o5-uhk5ggq5QUlH(+wSh@LWh zndtjEe%*{Snze@M<5QHd^pL^~yvCPGC5bxkR*ua`K$Cs!^Bb83rbcY4BFQS!|>CXZ7|KOR}4urn+@pq z&CV@T{~riw`{OJhtxhcLKD7X=`$Ma3a%8jOk` z7l-r(k_B41yM89+d`WbbeM(?j4jd_u_FFAzJ=tiQ^br zD=Ppg)(?Ce`la{5medbf-m5eWo(szgCgWL?B^)qZfDA}$nY2<2Cu5;^9M`dmj=s)} zSjXQHLc!ekBKR&IZvUPew`!_l>*8)(o1E0__PZ=wt66bZToH~7n|_nvSjw_7*v_^B zlJ5xI4c!EE$M``kaPWMv4H*@{6gV=F`SmM62JD~>J>NX3*I5Rl+HbNM{2(eK&NfV_ z7m0&G9VPH}Y?4d>vgc(6VY5+tkE>di>h@cFUG5Sh2qtTVAS*KrlC(3x=%JSjq}L zlb${`YDMg=uit7%4B7$-4PTFpIYG14edDd|FTlMzr0B+j4;nfSTtjS&CQ*$Uf63o{ zfalDQ^@EP=(vf~7H(=~uN_gLs_9deF!oyureU`#eeSZ|PpOc|{vxcH`D4(?D5Iql( z9GQ^yBFYdSag%(LIKp}!Um~HOC-$&fql5sBSUDxrsGObL&H0;94OK;* zAXPGl(k=5}?BbCXIPUe8ktStfG6BWf}mX@UYrK6Nh%{@{BkeT|(`ErRZ{(j!Yi5SA*6) z%cjk`kmWDh@gFQvd6=ai#O=Ke$@b8o*7>mUS9VODT(iwLTd7-3d(HP3Biuywzx&|j zL-}w_hHu#6i;uf z9-L27)9S8rI9q9doJ-t_UvumCHkzaOM_wJG#mMz5+1_AJY?@kzcLjS!?Pw(U1VxQ5 z*!>xOa5P?IT)M9Fqjq9d9OjquY6oe93yd#GT+F_8yAk>_arm^C!|J5rW?6^ z;l|Q^$CsGZ@6wNcg5gS9WdS*)SNEL91gs9DSVll4gh@~%e7Z?&GKs&Qhk*h;?9$Pl z!&)%yYGVRnA+@SJe%Wgx1y?*US*~Rdap;RcHm&I5?w7}xgRndYA37~}J5l{HVhbci zm@FOS@D{+;`nrk`ACCp)YZG}TAzqXC)0$akmjjPvLjlUdh9uz7lJJ=lC7@_SWr3iF zKZB5(RP}@Hm4mtpqA`@$4hDOTE8;kcUt#3jgBn8*ZxGsssIbp`hAJvS7;#3yH@!2G zCR&q@yc76;)N#PGK~RD|m~cQe(BnZBRVzgpZO4{I6b%@=<`0`pSnb8|QqG-C4jZ%H zxxe=(T7hDQm++%;+fjK~k;mZoBSVqjm%9&g+b{8!2a`gN@F!bDz{}q@@mPFI`eS_Q zgX>?$GrrGlzr@>Dc5P*gQBI?-NKm{dhpP}9Ogc?p>AJc5{%iQ{VucoPdyTdY z235#Y_`APrD_aP70y%xQF+1ujF=Pe00#KE?COXP5H_HTK66*z6? zZQ*XTjw9LfQr?Io;jxE>h{jZ`>f>tAPM_ykmhrmM(AI_W9#0jEsrLPH(AMcY>3{lB zGsDNkh)tr%FFYKHcvG>CZWO->CA4%tlj@2yOUudp_afQ$v-IPOs4&6!NFvykRw3E` zkodHgjJC_N>7HO*{Rf5}f)Tu90KrXSkv$hLk|kh^+&~w|9O4g~=o-Q^>%+FTeu!to z=nCAe!;h^WC*+OM0MFP6E2L%xL2YvG2)MjJ$cGb$_-f55KXS8Gd*bHa1N*k67s%~b zXvlf~VWTi?mM6w;x?DU_yM61JRojy5vovFYJbs1hri0JTJTPMPkB^nfQA~la@j0ah zJWAEbD0c~I&%mbh4ev6$VvKVLyLg;J$jN+v3h;z0z@=BoLbgD308*tW3~JP+cgWI9?27tO2hNQ6xL zjXh%tBbCZISv#AHgco}2)H;~ka_Y#AL9H-2xQA(ir^63`=0yUnz}^mAbYPic22huQ zv!PbuOHu}8kZ9v`e*hAyy}c7JNuDE6YLE;5B9m&?aEWgxCd<8pFyOS$RdaC7vj!+# zcrsr__9B$H`SsNwRipYQ8Fq;{0cl`grYQ z?4O1fVKHz@@~kxG@UUQc$x{igSN0(h3Pw~U5dr4|;eRSa8h9yS$%?%ht``T^DUFw$ z9h|8m;vADkC(69Cr#?8bpsE9^x-cdj_JY%%elL3CAN*tu{Qoy?Lm)eR#O0 zMI&(pz2cf-L4f%HTjTHHZq3vjc;biYAK5!Bp{S%i2G=XXjY0Hnwxm!yWjjq$Tq@y*8PE%>Ibj=PP7%=ta00I zXe;0vz?^Z^S*+g=GiQWcY)I3IC+P$o>p!p=5jIUn7mAC@L}DV7X@51`3pe^u=-JP3 zkkK-2#g(cR3>ih_>VL@0L^I|?@Qf~odbGXgx+9IqZoCFRRq|gLUPM2heX;_8)_t0<0k$aRk#iAk@%u+js!)Tn8XP3H&dIs3}} zdlsFEeXj;aa&+6!PRBCe{W08A9}`=G_I4V}Ey9?k{h{o&)5CkKc}GdqCw3kNLeLCb zcmB&QF`IGu3*r$EhP~kaK~^Qf^&bj5QU{28Jg9Ad8Ne(WJ}_VB0qr|C0W$_g0gaF_ zoF-d%lb*Q#Kt|1BQM(9+GZ`@v@&NbQPzVs*8{WGPz~5hoTDM2vyI1Q85il=wLof5O z=m7Z{_5dDA&=(y9OoUY+nhb&zp$8@>VM*sHhzT&w9~}-S5Wm@w@nU;r#dIw_9)4jZ z49##Nq_p77u!PikYpwQ@f*3}4#dUqePQ`Y^RwS$6a*LiVX7viu+SL{Qx3;v@Yrsdi z_u{RmM}I45>`dS)yb_6%GC^{mw7Eb50CdnDM38B~e#DuxCCz|!Nm6hz8JNEK=s04;AQ*S0x4v=yFhHACsAwIlV@Z-y?Bd?v=Q zg0^7|fwn{Fpr9r$+DtnZk)X1H165;6Pfd}}zM9TJqd)7hPWlYg$?4`ym7Eme`4NEw z?C6&HAJ6Za!I=BUFZ?u!su#*YZ?Rtt=KhfrnWMHwQR~a(ilQXmW~JMo#dnp^eA-Hj zo#8l+Zry3Y-BoFSKd9ygVyp|ea+}(lP`|syQF|&Lyq^Qkl<)EL`XBJQy%+6f`|o7W zF4>*-8h2rR{8qpd+3+Qjk?IEmfi0a#P~ajauULOzDLAqR;DIxo;F|P>2gYV#^4b}0 z%Ctlj`0>B627i9&gjgAXjfE(nWvjhni8{i8&Qjzt{>T;Z1R(t zo&6+lPxBT=LiY2c{_7-DV6BpDd>Gj~Z$Z}1i{y#~W*h4g{Df48abOv^2`_wlW0U~% z7_cyKH1!OO{CH9Ma^1%m0Qu4w0A-05CA}sJk-}}ujEBc~{6#p=z6KS*!)lM{9*8*&;= zI(hi;muV+5S6~f?oar8%ork@#6iVC)ykLj+@bSehJZ~3%a^d6f=lgGnxASx61QN4s zP$MuS2O}AX{bI>-e2M4J7TP6pQ5gCQmO8ha&e*vS8Za?Gs&F@yF4fZ#srx z%>Mj#-5gnb!=6L;wEvt1pL=*a&f62b?UE&_mNn!s!1V@QMuL{1wv@-q-tXGgM16FFLQ`e#`;!l53vtFvh)^ zG8u9tmva#tM97|UR?_GK#n+IMnY__BsB*)8^(loTuI3PO?|sBWG?ML>V*KW?wQl}g z9sW&25g2)le^+yhzpgyh^#GVgFueG*l$L1mSa*8DYjHg*!;AFF?=9tdL01B_t#|*Z zcT9;JxJTHWl=)I9XG-TI`vKnq(l@|!i-rM+P3oF|#?bj3<-C8rp^S&n)bL92avow@&T$$tod>4RmGaKytyX2z_b>#%AU7eW!!}RDpTG3bxN*suB_$=f9GGXNe5daLY!rMwey&W_L21P&3aQ)N- zSLYzEcS1o9akwe6lD~8g#`#jO7`yDYgGa}wE92Ypqme}YD@PAb9h;o1CnBTyZR3@O zD1kn#wEq^HwW*2fLd?;WP;@0|yCsp0EmZr)QYF_8u0%tM=Ftp-jS)m$!%GcTGVBPuOZ~Z0Z-;HRHR| zfqm_fQ~kSVQ^CXn{K-{+;RMZvM6h(-^r=s>nGY#;@VD9aNO>72k%2S-HV(r`z9qh8 zPfRrhg^4#a$jpe$h$P&vy9L*fD*>iRyau|DGzkJ}5&(P&g1t13%`Q)1Fz?xn6$PG_qoP=UxB`Pi(y3P<~{wIv6J_ud{$?~}az`4kUFOyFA-HXvR3@oyY0v%Cyo0j-@C!Tm=EfEi1Wyi$3WA-4p zeeg}KRk{qk5m^1_Xn%inB^+)eUjQvZa`1o-2Xa7wEgjn>kVNMg9pOvZEUq6uyMBm%kUT1BjjTD42s|732w*OQWWw}^gHBfU*=Y)4 z2NflU37=eg=cMR_*EtgF$?Gq2?&Z_&G%ftY4-rG5pNh- z8=AUR4e490h+O;;Yb)HEwj$a0XCu3g?23pbHDtUJ{!Mv!Nww)G+qR8bCpsEK>QX9~ zOJT|J_4TJk5x*Id4GD#bRqxof0C~ zY#sRO2eBz~g|6cz$j6kM3!$8TR>jm6N>=_ z1)_j3i0$yVKxAZC6jiVvQ!to;7onjh($nbVVv#;GkK)IW`v=KYKoS=b>_yo;wW9O1 z5jTv!n@dP!3Y&_lruN?q^NKJmZPCQ=ps0p|Z#rIm)N2SZKp-^(5oSFwy6}NxKTT0{ z)hbHo82AA#`+g;8YKFiqK{KeU^sO+F4j$Vzr3LuurwlR}OM+S=OFI>*&GpXM6&RYa z#73UHA;VZ#O`FAd?4hkhVGr6;svz4t!j)%{2);pC-%TWM%D{927e;@@vBDE| zbqp^h3Bn;6I>fv+?kcsK;*MXfITqGHq#x(j__$S5j)(|KkXhm<4$KFUVEg04&E~M! zpZl-U!MlAfl!%AVZ%Gw~OT&d!QIA(r#Sx`2yyZQqEyKgb5tCZp9ntM+*Ri8+7+-D; zH*;0?_HO^TRy>agR}FTrPr+vJdE`?W3p^Bf1oV*@6ZV=kiBSZjg8#_KP=Q4l3zn_| zoSNWr8?$sD!I*(0_#k}Xb|@qVE|>r|z6*D)+H#Rs8&z=c4q#Cv+%Bo{e4;nFbIuVf<<)<)qWGsGZ7y*%YeK^e@6aZ74T}m|U`jV?#EM7-ia7*Faz~lMvNF)vt}L zM;Gg$0AIi}=6z%mct<;8ndyf;MS2v6-6T*dc|bP9PC_H@Dkj#II=Z36`M7#GD}o#L#AFKt*xYr zp~T$5uv^$h%BJ6<9hDEzmd!V2}n4vy2r3u0TwDs~XQuk1-x%G!#w6Ysg6v z47$_2wMTn%@ox=MDEDB`QmZ`Hn7%gqULYgG;mv#981BdIxSzK6=)_E8to%Z{R!fII z`cX`mlmj`(yv^83&K2waRhYxLqeL}!VzpKMnwSCu)dt&9BG_nQH~>#ylAaN3i1PuG zAzc&-hSGqy29HYjhc4cl?4$<~&v`@O)-LGqe~mGBSAqiX*P%0j+=js<2!QDVLn)Pn zzJ{3wnHZMzcC_G9byWC1bzXXnuxp^#tU<#zl(5LOXg&Oihudq?im{WG&8rMkXL!4O zKR2O@i?is2|8p>cFX9<;3sW99*HP@Gzdpwr#P+jHf=_k96Ci{hLgOv-Z$Ozu`PSJn z9Z4*JELj3XQgx{ukpdwFD#DD+9_~%b?uT~=#|ZLK#~~q0oSpxL0r!6h6X?7|aDxc^N zBFhzhF*uqZKdC45zBIfcbm8_wo6^b$1uBEa(tWrPv&&akf{<+~oB41~6*J32Arw}M zPSp38RgoKZ6rme-uyS=-(rMVqDWB12KsRa_iggt@Rsk|*()%FgeCI?ijDGR2rrG{F z0sx;j%^~bwao$Lp?Y~)e-ElpnH=jgk^tkJu)hNvpE_~g@jY-^TE}u8eUs-m80W`vMWlOA_2-&7?9FO5&o$WZG)Wvutg|K3?XXzJff!O zo(Z}!ac|5GKC`yt$}4vaRR$7CvJ~XTLer5$UKI5ko^gvs_n9|{vj}BP4G@QsOOMVF zo*>2r_&duU3()+OFNr2L^D3fr#l7v;y;m?+SR&RVdX~0rW<$iz;2W>J@{K`g!uSSk z+FcQDM7uA*Zexfqur6C>fyc{+!Q%l15iiL6APFj*GXryg3`L?7Xz#19edUj6n~4EE zk#Y9bMvlft-DW7QxJr1yDo3ehq(}|z5Ahmm@b<&J{me*hpOZ=G0}0brQ=z6i8b9I$ z`wIIa{T8(uebn?xUN?{P_6gq7u*rAO!GBaZ0-0hKf7UyIk7y**K39Fw8(c6F730!x zP#qD6W)8Lg>Z0zijZ}YD_owl#`!3n{bzOE3W%Pm$P*O(5eWaZAJOl-lEx@=J=f#ki zY=}J`R?h*`o}=v$Au`#x#Fw~199$y7OdM=~3?9%>ituh$1| zXMDWDO6IEq3E|e(v2H5!5{{v(0~YqMGK5AyCpdkz+w2O1=s632-y^N9RJ>ob8?sG? zbZq?FDTleQRthDM@16b~^sJ}yQR`coTBeT0@*2KxgN#(hDukxm*C+z)=dl*Rks`q) z)H~HM1F1Hl#HG%m@(bV=XD4@j#lu_fEuk^SP}ZwJgmzR ztNQ{Udm_=icNMI>A@ucoHRFS<8~u&W7rlpQ(AVIBlAeExZ6y}dSVZ~|TdvGDDP2;H zq+{rCYt1U~91tzIbV_~bIsYSiuijtp-(nKRBNK8_z!`?v?P>AFrYXYaY;)|2-Xk|` znVvc@3&Bh`50o>iii|jRIJwsaa&xCE^@gJCsq}BXwa*IW4ek59cup^EL+n)Mrq~;Y zca{>b%ODg_+xGf=KlA`mE0l^qn3ib~($@}zPCno^CqrgL3w@-s=HJ) zdG%23eZgGFaNFl^dAx7y;BPrO(=^;`5DRR6ne*;DvFOe(X5)xqSV~uAr%^tYV{s7m5-#W&RB1O zlIM1GpkRa}lz=^c=jGw(6EEL(xNlc!>$+#JqUlq6uRnhE zm{@zmy))VLmMxa5ZSDB=et4q4an0OBPn-xc$qZ}EgHrtNaNtUk84{%Y>S&&c^TQx? zSUwC{=NK`76VSA>-!I`BsWqe3n3>vw9C6?(SdRu0p1@dh@eTMpKI*4lf8O`sSR^lw z&p<334Tm9h$5qN*XPa&~qaoL5P@vkq8dlxjNou`pQ)LUPwsDY=m)u?m7;&n16q~i6 zmWhV@ph`jvpV5OeSeU3%2hlRpd;9NRLu}P0-a9c16xzX~fLtJ_sph3$<%nekce6HP zchIty^sxTHOZ2n-0W-NsFR_?3mvmiRA-ltUL9HmNevx6z1l-{`l{rTB~i)_XR-$Y${L+#Svm z6fhULVI5Mf8ma?*57z%nd!MegnMzPzR*#JYY+(6eK3IT=W9wa)xgliU>X}xNlxsP!~{gF$q*edt}vO{*WK7h>4 z_8R~xvwKOS>94d6hzS|}iskZPFR#@oY| zl;hRjLC<}&zP-q500<{3lKu7Q9wdlQ@vK#B4qEh#f&bUeL_?KAeW{UK7mqNM} zKsY-^1y>kzkio1XQ^JsV_YEWIVzqe%jDQPPj2A(-X+pNo$oE?Mt-bHxN2y}+d-G<> z>IsI3iS-f1=hulb`(Dc{B zhFS74En_l9BAcro@ocOzt_4oy*u2L z69FuoNizO-@{9RbNbub^ZVTYhW%c01l{Z@)aOD}RTU@8ogMB5q>69&WPR ze_yAYdgJ!?D?4l=L zo;SU;9vW<$65>x_lO6|`egkrY{&IjK!&0m_fu00OSRg@@0t8@5r^r2kNMEold|I8Y zQdtCONZ{fi?;zz03ZhjLuL};ZaC^x81BS7*OWd@+)XjJDHAg@)bcnmp8pfoFy zAv`7nr@kMlHn)AV-|kZ3hpDXaOFU(5paB#$cCR%muGntf0#un;Aq z9mIk9%UVN2t(Vp3m#Zi3q>{}lN#~mC@;efdh^^bEDwc+uja;KSyklg+3_ADT>%d=R zWCsP}avTHe6@6RRdW3B!FB!7B5j2yK!}~M~G}Zph6uGt}8?&B7CyucS^Euwe{`)UO zl3PUj-H{!iLLRhe^kF(2`6=r%Wqj~|XIT&3qV`hhG~bLdAR4jWpFYxc`Eq6Fx6|ZH z!~DIG#sc^Iz)$>Tva2O>Pun4(?<^*U`c)CKw@eSSAmvGjBYg6gs%!W5hYAVXRU`6S zJO|{%VE~V3AlnDPI5#e(;xfybviR}W=6rqD*H8mNd?FJ&)PA%sdc-e&ZA~TuT>Dyd zWW)e#O1R2@uRGV@3Hb=NW0^sBX<$5op700$91I~CH-N?iXS)<^5u%aAxEV;m3oRTrY#q!1m8Imc0f&*l6V?_6 z7-@{s-as8f#%=g-YiT2j0+Cjqs^E1L6$V!5`B1G-v(a5Lv>J{c3>I8BV)Yy-Wo^q5 zkyyMhY6nBWrZJ41uHIBoQXxZ2Aa#xIjn`iw@C84h6iq`lZ6rX}EWCXmENysp_k)EJ zgu&nKJ5UWFRwQKGF&l->?O>nNt52dhgQnhUMS_zfhN>5hu+eKVZT81+j`&Z1TRY4l|nn56hkw~j* z&_d)%#6%8bZ|pFfs%9N?Gz00>tIn%VL}GZd(8j@tL(R@lzOBd9kkLG(LEKbAx&Z2p zLd&iqy3Y`JAfAS04r;i*9>eU1Paev{ppnu?c`r12>*EKD5_}6h8_BGX1JQ~mc%W?D z`}m03p$n1=GbKmo%upg^S)oLUvD8exUSIY;GW+e)5H8{t?}dLtr*rh3UuB$i4wb7m z{+;FrJz)(c265}qCj7~Kkq-r$r;hT~Qc2QNfh5C7LM{p(_+Q08^kLpEU26jHCZC)% z9OO&%`jp{c1dheuKg_~LrbduM5tSY`{B{cZW%v{LzYPmM79bh2p+%y&zOFOanJ&?f zIfTwdjFc{SAJ}jQjWmYxaH6J%-_HRUDw1gcGl4b9T^r9Q zw64yACGy7XdSvr9WZ{gU5@ zfIxg}C_kcD%1GS~Ch6^NKQwPm9{GRqeiBq#`9!9vs?AJdhgxskPW-@dJY1fzIxlHx z-LH(Zjjt>rYU5mG!3{`nTYg6rRmLP?t^iWN;n-}PoI%h32FwE3RNUH>({-I5j_$XV zq!x>Yd*I3t&fT$bcEZuHu7%+Xs%SmoXiQ5Yov0*seUZEtSFHV!UPXEPA zESFVy1pTmFHp3R;3D9(M<2%UyjspqS^@uezq}gyDiVqE05xp)O+vmG_9x&LxC>XXf z@Wk5zznkm8|Dd1&RwwANX@D8Q!eu4qEclKz)`R50W$%#xNL z)1;7R6e&UR2Q)A%-V07G6XOn6tfS=n0k+ZTH(hONd{JZ7U-lVH4f;~*VuTQgtkyBN@5&=&T*}rjSYn=;~ z^>65iN%3Gb3O~AR1tc;SQw*(=g>SiD(zH_hM_u#%IlookcsIkr^N7X#7;sDmy1D;N z-J8d`b=LR7dd|K|NBgdkMx$l+MWfMpmv_hOI5u%?h@+UqHd)BTAta6JL!n{!00$tpet-WtyKBZjfrz|dQX=y=zzrW`kX*6DPlY8$!Z{j)U zIg6xop5?dyzQ0|*8z{~I88^MLmq`@>X)Mn{C!~Tb(;Pe+3z3s?AZZdfB%-s*%4Otd z0v6^qDo_=5btMs?KlN~ zmtltI(;t37nEPBB$V%6IiN~+n0pIA7LeM~>gtqQd!t1W_ChX2<>58pAN(l|srXh|gU4RtUpp>Tz1WkSHdfUQ;7NRdlVdM1+0|2}pBu6$M#4@Z%y6!IwuYX^Ug{ zOu{>V$agcRVNjb%&*mOZQm&uvxYmm=c#ijT$7YkncLWt6qHb-=b+uo1a`i?;Jn?JS z*epN$We*Dgg*_-2oN_?CcfLI0&&veq_Cf9PEd++z2XB~fA!!*c5s%fj!?=UMO#oJjEkDD2PrYQ3JVc8(Jcyg! z=1W}rIrquYIPJo-u091!L3k=|8YQ!kJ3adz)ICW$WgRhWpdzc&cWxQa%Pqrp_&k4B zI{H^UZ@u(;l#QK_WKIW@D6;21^+m+zmC{p)OnrCQ?zUO$sh51PROjG>$>95i8y#zmL)j4L8Jzy(-}-IbLSyOX4Etbz3q#u902%8D*6tm? zdm)QLqJYqWjv-@C7pL~hbKV?9LO^$&gWL3FNB2V+T&vwh=49`Y)1xYib~%2b*LrEM zwR-Lu>d#J_hF~-ryu0m&&a|$!>wJdb)k@4?jSX#9&8zM(@0aMiF!}5wpIRi)h%5gw z@*9-qygs9tym8+q9yNRy`s;OsRShRD?3eC5>G{-pGmO$oVV>YYdvuS?UC~{W1)pDC z%Me+A6qqU39LLw*T8jg?eNZX&erWC8_yzuHVam;{abxQ)@(ISLnLuH9oiA&0S%$rF z&8EG2Tst0IGmATyGIPsoEv=Oo`cdtm7^(vZj*RI)-9+p1kAgIIhh4p<*#O7*#|i7>x#HnYK6>7&f^? z>!~rWZ2G$Z8;u!ZxK?afOOsH^O#$@?0U_;YLi%^O{JQ2D<9Nb;y(~6YU!!$A+q1$) ziM!!&=_)C4_o@F z*3q3~f5LtNy&?o3=LA;wE#zZ_yhKg`ierWm1RDgvlh4hIMk^Od!YX%VP4}e*C}i%y zaBGM+K-}ew)2^Hf4PA+`e^Y~@BZe3k)sPj;NTTKp{7!swmYZ>crWQRK4=(Ysdb(IN z!f6MOO@j!FcW*2m!>j-U2?IxUzii5N3QU9wa!k;VSaC-X!j3M;0rM#1meDg4V`51t zW**`r%12%E!wh=WVgG`T|2&D+h*&xW7p$G9amvK&+E^~PdxB~~?Vx-yEYO-e#H`=! zIo~);B){`hRA*EVH@tyV`;?_$?wM0fQ=Qwh=691ApN*@(E4w1U+qYeRRnN2tcPL~I zx%VI-8J-25Ie6=yF|io75~26?o#FOG6(>PlRv*%79QK}bZq0es4q*oD9ieIf$ zEw}KTrDN$JgU*hWPVg!G$5(y4x~8M{9A=rWSrH>aHUGk?hx(ptmGfuDW~$YO=wOFeaQ_Mg_;PlqX(R(ualnUp`u`Qeh7fU zAD-QN4zY9R-h996e*;R|NmgepP)IGO3T#q=m&TCa#FqEYZhk~j9@#wm=BZfnAGaXa zQI-Bv4?P~NmVVa!y;Ak}1VqUGr(zkxJj-Jma9-Pet}y1oDEKYSgx-^NxzY1@!n+2O z$-(5`Kd0wBi93^n*FC4FrJ9Z z+$1Vv$_@6Gdin$HQ{iJ4Fka18XL#$n)!MLzxq%XFwBHiBvSspap!?h%GS~|M@N@U% zmYqiED^H#|^W+%@*O@w-z_Lxu!qryRnWaolDi+h(CS&xyTF`NV+IvThdz~fRedftI z*=8DG7A7@(vNQ`#DG5`g3TO(h19knB6m!s9(cLlZ?)!y?k6$SqxIU=0w4Z1MA|1Ol zB2EMWPTt;7+m483y<`UJp#L%po7XGl>Nfu6qL|6 z^7+LzC(6iH>c*y0z4{d4XL%xBS1YNpa3MSgZUFW`5!fVNcLij&NQ=6&L|Yadxa1pP z+5yu%06|aQMba-e-s&Z>_Jy4?#E8XSY7}r#fN;f-vO8C&)WQzv z8B#D>aGRz}^HqM-q*J9d+Ke|_oKhlVt~#IR`ZwR;{;+*nZZTozllP2pkfDEv=NjM$ zHAHs9EL*AhSp`BB<#VIntOE1N+H?+*sA#C*4W9F)D^SE@`L(Ng#cBWn9RcXVJefE| z>BYCx!*#eq$9T`JQ1@-%dBwj)smILer4_3qx!lNEFPr!@vWppWF$$2X-UbkT3&8{U z*Wy{lZ$##Ccbrjc0BZ@AD~aCVl`3BD6?gO#m<9up#_2;xUtEv_AC+(76BzUSCV7L* zri(YlhW_}}2MRAf8o=>Qv;t^$-z0xDz@$p8?Mt`NWB4_>(bT`ud9bF02m)AYZo3{4(S1tIa+vMa^XfQ zaiY9iP(GaGU4${ORmTt+~wpP)^%;_mx+p3GVo*K<$?P__n zvjQB2UON3xP5U-f)G-BZd*=O`DFR?jWV^kbI-yUA zIH3!@7R7lWT#q6F0i%p1(Em_d4&S@_LLfu3W9k33}QW|D?_ojtM2^z8}@qGF$r6VYHe{%$K#ikZslz^ zD4f_oN{4X3Miu32X$BVA_(2}kdGH{Q+dSAtJ|D;=AgrqMQ$t7Hvz;$-g3CCo!3ZI~7|57;oCE9L{QSu^Z7ym-M-a7e&MY z&a6?R03X7G2x^>Xe?XdAp&nFT9f)PFZ7&8Kf`|S;hJW_%_%0Q zPB9vk9Y7p{od5NryCngd+ppp>kci=JB@z^AKy>bQb_Er^g!@cL&@dLY@t5b!YOL4RQ+13bIFN+Dk@_N!;VAE9Ad~wY0n`63mI{McGxTkcdG`(U;pr6 z)!1GfjVI*;j~I5?kx!{f|9T{Og*3a7Sziv@Bm4G7!%;*`38opFGj?ubB;Lajj%1&N zluKsjH@#lZ`G4k*Y86RT(zad-%Eemt?Cv>mkwQ=l#m$6Vp=9dSxlA>2EB!Grh^ugy zK22X}sS5NdF8(VN!9ypnG?6S`p`eC~Kj+20i`b68sfM_it64{OU8bE5zmp1mk6<(R z41!|T8bio7?ABC`pz6&SfGu`F5UG4cIb>*i`$=4LzX$@(ccOgXw;a{goB!{DJW%VB7CZh0DnL;dJ?8aOY<~1cy$sYN^ zk!&TPXijCzj?8F0KAPFFrPBG2a4JDL+Q%= zd?h^;knhgMli|BJsp_V?!>JhN@V{RACiI5?3!W3I&xxr@h&7n4G-)vp&?0_>Rt&p1 z`&LOA+?+vx-=5rDGQX=_b24_Q938IgDMTld`*lYh_=UASgh-jqgQ<8mtOoSifpw|G zY<3;sePWZTKw(qbbY(IxHz~+h`81cvt|J>NWk7KG58gsI?)b9mq`i7ST|0eOuel;# z+57wowBn{6{ufS=R;u%E>g#-Uz=c12H$M+d4^W~5e0y)-mSOxrG+dNid%n6t6a-&# z$;ZJEfv`w7*ZB5czNPP3t;FNX;XdRDh@=U`fej(L;%-+KCgTt0Er+`Rk0nS0QU+>y zASBYm5=Pa0b-M*P`yJ!iQQ)pbgI2TIWWM=oo}MOOoex^9irkU0^(YmP&1Xi23@b=; zjq>%gkiRn&OAYfgFH=Whv>tgPPA`Dd3yn!JIDnC7zYN=f+mYqy*VNa&4j9f6F?oBy z4!>=yUe&iIuRoVGYq8T|2~jv@|CuKPF$rMuvA~mO{ADrva47WfTMs)@{7mPI*4#N{ zM7p$Qndc~yJz)c(RJqg=#JuPI>T-4tmO<8qT7SMXPGD`LPta49?(6_RDApN==5jcX zcTN7>mVqqii>p|+=ciob2+Q+wR9pu4;Jx^XZy}?}(a!Si#RdM23kz##q#GOG^KEC3FykMMT#1slAY0vZxYrwX-Bl)Qhgr{XE{coiO|kgdYAXm~iAV>$V-g zkyw7#_s#3J@((l@+-{|5)oQIh{+?{>EzAkw($6n_T6jHZT!L&~Yicflg#l~@B_!0+ zY(plYXl?O?&wxveE6&_lfpz{{m<4CHU3X?piG;UqZpLD>H_u&HR?J|v{MX}W*Q`yl zUH8QrKU+*CPR17?ffeOk2^31`%eeDLL@>nZbPVRtSo^oi*6h@ZbzALjjdmzx zztOO5b8y{}?bVr0gEdVLHziT_YaruAQ>*d*Bn-np1ZNJxJ_4OE%xk_PvQdpwNFV8b z4g6771-j0QELr7XjktO*41?nj@2*^z9w@X%ZDS&lF0S7KfUnbOP0G?zbs^z?blt|S ztRXte{01?8Vw1W5W-0jO3%@q@+C7>smTuac>%4h12AaiT(>%ja9Tt?#p4J}q-TJw&<=x05xH z4!nU^ZgA^uqkI8HR(b><_%Yc;r@%RXSz4;ccereTu)Af*p^*Myi|fPkA$UkGNaHM7BBCNh=Wik3=>qV3s_jeuprvIpPdP$?fe`dmu!1 zt}gKnBzBNSPz)aC(RJ*Ekx;>Y1w~=rut<}s!_8=mZ$K{7$!XJ2&nZyNlyjeAKultiReMGgQPhU#*9iA+CeVy#h1~H0&3bKF|IT&pAkbZZ~O& z!d^+8123Z;!R^uikjb&F(8cbl+5jna?B+@`rm31WG`iKnAVZPcIyz+GOe|SRj0`1{ zLn8zJxDyV*=@I4)06noSYH?t4baeOBdPCEU^;5e?M<)l0s$`Nc-z?dR%>1FDFzo|j zC+^cP{SbZnH9RZTkf@?(DUW_HqID6QSOT5lyaT$i>_Y z4o&YNpu!Vg1@A*UsCl@ZzndDX;2co4IL=mA$Y$?uFSdL+Vrqlnnxh`u`48OApc zp53C%>=NQHy&~~QuAGIETNw0nj1HG%5TYWF97B2&)*A}kKzH0Mqxuo25D`TGzPTdO2;W3jM%gOiQQ?j0%s^69JTsQlqC-aS20IR~8ovX+G|6G!4X%%Y{7i)Xnt(^l=Oeig3rFQb1qRc7 zi8$(2xUWl-nV*9-xCK#Qeqpm>tGixl213@OY@>#1OXe$g%7&usV2|>8zW*#~KT|cS zsIY+f9eAiT4K(xn7|Ql)5cBo{9O zI4w8AV(F@ujtix&LmhKqB?n0rfw;XlU6M8A z0hZGIbD?0I_$esJ3TtCr>WG;>j#HJNE`66=C-}Wch z2{vresyOK9HMrP8l4$j~17nq`*gsSYk*P!o#T;F>6t?F=iK$3I&CCSSA)}n1NzKgI z!Qk%#%UzKI1-z|_FUW+PxQ-+~fpNV669Ml_Iv%3miQBG$paDgv*K--H+v?Zw5H+?6 zobPIS-6{_=Y=s_-lwdp_C**Cu1!xtIi-WzR3jM8$iUoW}4)axLt0^M>9)Q)OT*d3Z zSF8GD*up;}JPh0Xi0`!TLEodkUx!`;I;eUU5Dt~xGlXo0e}UUW$W{UeDv*$Q4k_8F z>COr~B3zzBnk9!JfPMrFDer$WqTv4l0h>~p>^`6{Igwxp%K-4Bf(96Fh=uVOGG<~* zPJ)#c7vEyZLQysaq=Xzq$|rzoW+YWPfCv?4Nu!Fo3DQ0B_5)i2LGdF!DKcO~ zEc_3kN7(~WkP5#b$g-tnbt9CQ6)T`>fnd=2m7qWBM}U>+04?xUs%>cCO^_liP&ODB z#RQ8gOw?n)g8a?6l7HsT%rNqTH4!xu1-hF_-<@#6*(;uB?X%9S;;3I8diP||l0^8B z9h7v6+qv!Zh?){r)LB^$1t)SAkc>xx{e%oxnK8K_>3$Rlt>>&z_*Ma_oGL=U0cs4E zffeWw5BOk?Txcb_VXEj8W4xfrwnv==$K=6I; zO6=m^L9JFduu9LsOhw2sr$9l;qKpZaj!vnC@HgzNc30<>+?M>nf%0#D@WAm;@B^~b zEP$kVR%HYQLlJo}6a$Dy*PPtynwUM`u|V`R0Baa1YQd$bU0J)u88 zim4Rcii)WjWXcIa^X1w|D(^+JxJ$Jqn~3z(?~v6avL0qu8|0cF$h*|5ZK2Guy#gt-?Ah0qsJW zQ9rWs1ubx%OS1R7^6WB~e`$DhKj2rn$CyAyR=)<#xzg4^KCo5S0u)Hx3}~nLjgR$x zw$uMb-L&4G~rk3M#q{)4hOXejR0=e5tao{v=|fyde8R2Ltn37R$ z7lhks2g;{pW$bR3vr6hZS-$Sq-P3fHAJg-Zosh4A0*{RE#+!M;5@4+^o#?ZwqUTAj z;w}&h^Ckyror_VWULB!Gafui!FXcfEM152dRx-pv^RXz=!48Syhwho~yiMjnh7|9IbGq-ekq@gShFu7id0x)BX7fL6*97&E}*X_=a?C>r#fVnP;Zi?;bDW7Kgr$3w}a4|;>w z=a>(W;8uH+%df6-j^`xjD6M?RrhQxX#Z+-5*Lfm0QcPt>a{d^gdkT{QL$1y%O1c#D z=SB`m)pTxTB$uvAv0`o{oK2S|3(2T3UkwCH>1=o;SM>T1&q25(WQoQpfHH8i-V2oenYmLiIIl(Be}&#gycp~?gB z^3g~8PD7j&dl$|Dj(8q)_t3j(Jl=f>)Oa3>&%uLz=TRU-T)pD?kz9I|<+=R3k)QZt z-#xyE@Dgif&|0`J(8^6+SPi-Y(L{KjjXd&N~g zOY_X&^L=f99`oIXe3IAr-oks7?A2XLUZY-H?L%bKJjWx?X1C^hR(qem=eZqG4fLy+pWRmP z>SL%kMkAC@mlpWlbS0CZ&n4({y;h)imHJ&p{N`t1e_i$|u;$D`&LHm!ybI7nkY7*f z^yCJ1?ZyPF1yO^$g;j3LnTo(j$Ae7aLyXNeVkL?+@Cy?Ht15ZZ1i1^x);Q7K9fGO%b0lGp!jWw;@*c?aO|t2X2i+G z#}hMVG0%o}ls_J=80!=X`TTMev2LRVeBojk0KmE$PzHdlYJXyQPr=;U8vb}RCni7a zUXX)nC43<;R>{Ois)rQWMC`GMkO@E+_4^wsN@p`g`5`u0gzXo1K{^?|RWLJy&XGhUg!!_SbZ>;kWbU?Jjb6%Y0TM z611gqw3JrH)~y@UXYyrZdVv1&T%V2LLV1PXeQVzqbHcTG(^@19$QPXP{`G!x5EU{mE%3v9Yw7E-Qw0ahp&(Pb%fi2UMy zJrrQ*_D?L%-4g-mu-#5Vg*Z?I%B=i9{Kc-XE9kFGrOMl5+hW`IZ;u6O899JN4cqrX z*E+J7swF&JJItntkHEf$9S@6^3^y7M@Ne$14D>2|_StTDh!5Tpj{$kM`<~+$t#Ab> zl5qxexxv94KLWvT*M;18L3Ptn=myq&PnHqP0rbKiySq+<~1Dw!LVZu!C=B z_^?7uafkJ;DH_)I9QeAcJ8yKyg?FGSPi)&Z0dxXy&rdc{z>9kIQS|CE^yp>YBNS+w zsS<64{tx3m*`@^WH>w+mH-hvI4+A%tHZB(v2vdw3;3%Piv}4HnHQ=qS@+C6SAU*@( zP$c`kClq=+_o_ciJfhR0?N>Ejm;+2#3T9t4bS-F!+Ai2kKF7sP%OasK02E2cp6Baz zhr8MT9G_mHPcv{06dcmt#b@KYfW;P#nhxfst`14S%2O1bUWwucnxGFnPopxe!p>midLJ>B7^zxuL%G(4npM z4d(}QiFFaHP<0S%?CK=EZc~g`Yx0%g1G!2iCO5UTmp|IW#p-c-bZDBJQ^mtKxVwMe%v_J6ALWw!4KHNF zOX2K7IIDlM{dzUr`MYp-8L?)#^XLQHEMv|v_8ZH2T%QVOv*D?1c$&5H`ISUsq?`>u zfj6eio2 z<`k7~===wkKEa}{X}2eJ%99yGo2syo#Nz$Y>YnGi6W5P z+&Cdvhaj-QHU#@ER-jCHR19iUeHKM_IIuJM<9aK=FTg1U^DuY9Rw(|CEXCfEsZ%}2 z+vjUr_iIR-%qr_xBAx|eUT{Xy^Gt^K3F(&{w8~NS0AO;wOUl|SYzYtm;hH9jQg|k| zZto4B5K4()5-4jb(5&zsmZ%Fn<0HgE8Rx23_?ll4w&7hv@TQ%?+jC2p`>u0bFP;%y zjCqb`E%0~dHr3|@XAP4X+~2(OQ1Xq#9aKp3#>3yRu{JuP2{C{9!Dmjxv=B;?D`Fg# z14YzufPW0(YC(QJZbx+VqHP#iB>6;W4)#|Y2zYt?TQ4K>4YC}L|1OTXCHYYa#(JKc#(}qa^`bsfL zwuiJ}?=GCU)=hsX1?@ltNo4%``4nxej6iB9X{c7A?_`;gc7UA3BY`8)rMzjoy# zJ%nGJjw<{&b0z%fe*R;x=cn)I(G^duUfd(mRWH7V>Nkd0}5epeB@0(#N#B=XHN9HWw3tT}d`2pbm=&Uo;gcXTkYoAQ)vUFkipo;gcsHK6yTryqwU1`oTd4u-|c@*2=;fvdB`- zneB(y0i$-K75R;?1S*xl8}KbBAAa&GsQuh_YdPR1MDtLbROlmyG~BE9=-WVjUeTjE z@Z%y@5%N(D|M%DOtwG-|M*06;Ept`0LW>5JB$TV}`AOPT5WnTlCCDD$oI-sHjNbx< zR^=DCWyfptsf-b(e}28$_lJpvfB!MXhu;l~#4K#9`ck{qYA-GDFLc}d^dbin!4@CD z2iI;F@#By-&vW0^C!2J++1EeQh*sN;{sC{tu!0st2B6qi?_FJ9>ArV=yEX%zX$zYW z$R7-|ji;}$UyAza`H#(?);Kz_h_bi z{J3gr_avgmk-Cy*&RILCZoI>`@7SmY?X$0{CbgMtt(Kk9l2vPNWCSULSgP>#EDL$? zPslGNqZ?MGiSLD?N@QUHtnP`|^(e(py09NW4 zvbRC7!&gwklxwI{YvdVVE7igyhvBtd{$hAOA)6{ZZQ#M4AH$+2raQO5_(XS;_ zyGP}KTxw)zi^|pzKo$x*$dg_`k=H28qkzXsl%EuAoP@g{>pQent(WqfhCD?1LVT@zdfpoeS?F4No)YD@NQ#!5#GD1z1~nQJo_3Xa@NUKO6OtuPvDWp*%%40dE|LZhS&2qXbktKATy1_Tg{(O~7;isP5$k|Kj{ z2?>4E!A&{BJFqvKVe?^p22|)|i9R z0Zv2#SfEsd`qXzMjKn(s9*=ka-PV8T&-=&xeirhZKQ&^;PfdSYk$}O7zb6!_g&r1K z%6Vl05gGVgJ4djxDqTR4TmE>e@AO*<&vHgSPq$uexNNcvOWZPL8Mc32p)wz4O zRE9Pg%1ETZ{02%}h)B`RaN&aWC#UG z1GRx%EdYaQy$)Mspq3k`1yHthC^8q@h1(>;^M6@B5-gXk@ZezBDwl&1qM@t&KZxiE z_z7v&bp=+Qk{wqe0w5EQ{}Jylpc^+ZnVP*D=W6U{sJYvr$NDFD&%X-OXsZbp+aYU! zo0&%!0fum^WR|E=GNluO@VO=W&yDQ@>*lv$!{dFH1+t4#tjId72~-+d59-205xKnv zS`0k{!mkEFoj~{}1j@!(#e9TwfWpxz3#k~T+Ei#3=pzs+-#9Xwhs~cN%$oUSJFLdX zhJ`_3B}CZp7*O$S0axG?5Qmb`=~y0yUfMT-$dW4OV^fdN)kmgcOQ@o&gbKNs?y&4& zNOtTn?!y;8k}Tw5(`+_d^!3mT%YF7A!uQDHy=L%Udw`C261v~Ze29^ULXXGe9sF#q z+8oV$kcI9N_}^+0g;`Zvt{&4(+NF0-tlug%GxvlFk&I+6Y*+f)ufht^wEVr#d52

wCn!X0NUG>1IDkr%vz0{ZNz7fh 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 VqqAF)U!$q%(Lbht;Qs#f{{aGtQZ@hp literal 0 HcmV?d00001 diff --git a/dist/fonts/fa-solid-900.ttf b/dist/fonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9821bea3a54aa565cd62154b8fc42cee3fb62808 GIT binary patch literal 186424 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

dj3 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

Rn_AKUeAh`g>Z@02OJ-4**kd8p=%p8BRn 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 literal 0 HcmV?d00001 diff --git a/dist/img/fa-brands-400.svg b/dist/img/fa-brands-400.svg new file mode 100644 index 0000000..c5f544c --- /dev/null +++ b/dist/img/fa-brands-400.svg @@ -0,0 +1,3452 @@ + + + + + +Created by FontForge 20190112 at Tue May 7 11:33:44 2019 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/img/fa-regular-400.svg b/dist/img/fa-regular-400.svg new file mode 100644 index 0000000..38b6671 --- /dev/null +++ b/dist/img/fa-regular-400.svg @@ -0,0 +1,803 @@ + + + + + +Created by FontForge 20190112 at Tue May 7 11:33:43 2019 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/img/fa-solid-900.svg b/dist/img/fa-solid-900.svg new file mode 100644 index 0000000..35b7866 --- /dev/null +++ b/dist/img/fa-solid-900.svg @@ -0,0 +1,4527 @@ + + + + + +Created by FontForge 20190112 at Tue May 7 11:33:44 2019 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/img/icons/android-chrome-192x192.png b/dist/img/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..b02aa64d97167ad649e496908b35f14c603d9249 GIT binary patch literal 9416 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 ROru=^AazZ3N)e9H{|11FNXq~K literal 0 HcmV?d00001 diff --git a/dist/img/icons/apple-touch-icon-152x152.png b/dist/img/icons/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..f24d454a2ecb8851bb893192b64ee09386d30e24 GIT binary patch literal 4046 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 cK^5JQ0?3d{m_4Kdj*!1;003@kYpI!lw*K!+ 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�MrHbYR_buu=L>f*wO=Er8~{qfkYT+HoHag8)VqJoC-#@ zNT})4xRE%sP-B9?xmL5!2Y8VLa?yj@Y@r1C)6o~9GF9nWG!SI2VJ$>ejtUE%Qv&r_ zYLgZ0h3iIrw7{TyurC(g^$XT%PP5`FB3aFpP&fM-8!J#3I_ujG?;7(Xv5ni%BjYP4 z^+oydy=)_&bdxYJx`X%G5PFkUB%3h6RiOs^F?#ojsB%DbfhqzGhuv4)S1%vw@PDyE z3xWF{Y^0>+=Wg! z{>z@$rD6ej*V- z^$zKIOWOfdN4~7@ndhru01+3cxwD&_Muyja({*O;-5VnF(e$WDALNStE{1{F#ts+VR{o zSlQ*@U=Du8fgKW$lU~)O)b6FS?H1SSnKVIC=DOvbo8IUvM zVf+U4YxG%qLGd%ew7Jp8>@U`ew+A#Q=2oJHNH@_f!WadS20$KZEZ+BHAvU@FB zzRCYN5r+Z#g`C^hrH$yW7ABstwjvMM*CHGzY41bbo2zy$6E8DAOPn zUnHG?e7?u7pQ}Kqbu1jEd+=mcGea4aL6V4g(m*b7x}z|ijsjb3e|tf-3&^JK{=sWz z8sqIu9jy)#J}n}cXqtXmkb-NDVPcAKn=G9uX42zYvufu_OCr>xJ=oTNp8WA5wEqvM z{r~m8;7_C>U68iRr@|rd7UYhON#(-S_+Uf>s)hhPU{{exlxc&eD literal 0 HcmV?d00001 diff --git a/dist/img/icons/apple-touch-icon-60x60.png b/dist/img/icons/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..cf10a5602e653bb126332934e2b7f34081c19a01 GIT binary patch literal 1491 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

aZW9cb|x>1jZDoAu$NpeWiVk@{x{! zmmBmDgx|qNN?LyIrl9$qmj{KjZ8zpa=4edK3FuFS$KFl}bWPoO*Ax#Z1c2#3JAN(O zYhi>`%H9fSnLkAq|5vs>+?U*bdfMc6TmDu+QqnN9xgfZsG25($^;v7U1nBl9Q^o*i z)&?UaYZ=~7XZa75xPKB1s~MB1m<*dN08pqiy*q!)_Kc|;EZs3&nNdMQ5#LFu+J z?*($vO)$hkMOVc16f-ep;K@_~&Y6t?0t9I0(lBkZBfic|u)3pK$Xv=A@jUQnB2sC` zbI)L9m;VNkWOao}2c3b4_u4+bg zuf-@d1$?asdD1~mORQ02#!&1Xm#41*xz}wETNqKb;kueQ*~OpcAXTpJFYUYcKoA&Z z8Ke=2Vh~cu_uTb&6AH75L!k8zo~&wRsDLs^3YkD2!~;%u6sFrzV2A5(FQ|3}+0-K- zWX)W2yq%?^)iKhyMGPB5*DnWBaLqAHLJ47;r5nvkeq3u_?J{Xaf_}6I+xpLwKS7NC z|KYU%zup)8i85jc)^Yt*I0W8;+zHUI3V7@o;3DUYasdq>DFK%im4J)F?;|B-<=}8R z>HESGa5)KyCnGII|E+YX&h4Y+xCRvyX@oGhhG4 j58+{W$RJv~NLLKlV4)8v^7hU(R-4l(}$teLl` literal 0 HcmV?d00001 diff --git a/dist/img/icons/favicon-16x16.png b/dist/img/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..42af00963d81b8e39a30435c60ac482d1f8756e0 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>WRE8{w#)hawXn|-Xp4{E;v!=;4B^%-x&;Cm1 zP>^*#n_J!T^1SBMI!C4h-R53dN8`?ylD}d{L%(vZvUKT)~-CgWFQy3lt zIqW5#zOL*K8HL%o&D;R|TePl5?VWhq^wrj^qed%lKKkpp-FogeyEi+p zE?K8rW7E1fuEJ{5jaaAp0~aIt+keS?T)@vXM=*X}V#VGMCm1~v-+0wr{w3CJ-R8wG zS@XVpzqP-5Mf0H?y-zh=XVL>S6E;rKnDmrMQlmoKbK9p$evXN`oe{6g>lvi)-+#c) zb+Al&$zRqtWk1@VTt6MPmq9d7^!kmXZn8k{sFt`!l%ynwlArU1(iRB6fMfqu& zIjIUIl?AB^nFS@u3=9=>9)IHDC=AokIOTu(jOWuJ24-b$y<~1-Wnu5hBFw@HE)6D! wQ<#-EhbWxBaplC3Ge=~Ou%B-5Sm33{@Jd{;RG<|Mp00i_>zopr0DGh}-~a#s literal 0 HcmV?d00001 diff --git a/dist/img/icons/favicon-32x32.png b/dist/img/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..46ca04dee251a4fa85a2891a145fbe20cc619d96 GIT binary patch literal 1271 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 + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/dist/img/logo.png b/dist/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2e738d5728b59433ff2315c28fce0e079620eba0 GIT binary patch literal 13638 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 literal 0 HcmV?d00001 diff --git a/dist/index.php b/dist/index.php new file mode 100644 index 0000000..e73be0d --- /dev/null +++ b/dist/index.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +require __DIR__.'/../vendor/autoload.php'; + +if (! defined('APP_ENV')) { + define('APP_ENV', 'production'); +} +if (! defined('APP_PUBLIC_PATH')) { + define('APP_PUBLIC_PATH', ''); +} +define('APP_PUBLIC_DIR', __DIR__); +define('APP_VERSION', '7.0.0'); + +use Filegator\App; +use Filegator\Config\Config; +use Filegator\Container\Container; +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Kernel\StreamedResponse; + +$config = require __DIR__.'/../configuration.php'; + +new App(new Config($config), Request::createFromGlobals(), new Response(), new StreamedResponse(), new Container()); diff --git a/dist/manifest.json b/dist/manifest.json new file mode 100644 index 0000000..7d14b0a --- /dev/null +++ b/dist/manifest.json @@ -0,0 +1,20 @@ +{ + "name": "filegator", + "short_name": "filegator", + "icons": [ + { + "src": "./img/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "./img/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "start_url": "./index.html", + "display": "standalone", + "background_color": "#000000", + "theme_color": "#4DBA87" +} diff --git a/dist/robots.txt b/dist/robots.txt new file mode 100644 index 0000000..f706f4a --- /dev/null +++ b/dist/robots.txt @@ -0,0 +1,6 @@ +# No crawling for robots, also present in the header as meta tag. +# Remove if you want to appear on google search + +User-agent: * +Disallow: / + diff --git a/dist/service-worker.js b/dist/service-worker.js new file mode 100644 index 0000000..b3233f9 --- /dev/null +++ b/dist/service-worker.js @@ -0,0 +1,29 @@ +/** + * Welcome to your Workbox-powered service worker! + * + * You'll need to register this file in your web app and you should + * disable HTTP caching for this file too. + * See https://goo.gl/nhQhGp + * + * The rest of the code is auto-generated. Please don't update this file + * directly; instead, make changes to your Workbox build configuration + * and re-run your build process. + * See https://goo.gl/2aRDsh + */ + +importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"); + +importScripts( + "/precache-manifest.027df767f4c4fdf5651329516a7a6123.js" +); + +workbox.core.setCacheNameDetails({prefix: "filegator"}); + +/** + * The workboxSW.precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ +self.__precacheManifest = [].concat(self.__precacheManifest || []); +workbox.precaching.suppressWarnings(); +workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); diff --git a/frontend/App.vue b/frontend/App.vue new file mode 100644 index 0000000..3790eb2 --- /dev/null +++ b/frontend/App.vue @@ -0,0 +1,94 @@ + + + + + + diff --git a/frontend/api/api.js b/frontend/api/api.js new file mode 100644 index 0000000..464cff2 --- /dev/null +++ b/frontend/api/api.js @@ -0,0 +1,195 @@ +import axios from 'axios' + +const api = { + getConfig() { + return new Promise((resolve, reject) => { + axios.get('getconfig') + .then(res => resolve(res)) + .catch(error => reject(error)) + }) + }, + getUser() { + return new Promise((resolve, reject) => { + axios.get('getuser') + .then(res => { + // set/update csrf token + axios.defaults.headers.common['x-csrf-token'] = res.headers['x-csrf-token'] + resolve(res.data.data) + }) + .catch(error => reject(error)) + }) + }, + login(params) { + return new Promise((resolve, reject) => { + axios.post('login', { + username: params.username, + password: params.password, + }) + .then( + res => { + resolve(res.data.data) + }, + error => reject(error)) + }) + }, + logout() { + return new Promise((resolve, reject) => { + axios.post('logout') + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + changeDir(params) { + return new Promise((resolve, reject) => { + axios.post('changedir', { + to: params.to, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + getDir(params) { + return new Promise((resolve, reject) => { + axios.post('getdir', { + dir: params.dir, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + copyItems(params) { + return new Promise((resolve, reject) => { + axios.post('copyitems', { + destination: params.destination, + items: params.items, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + moveItems(params) { + return new Promise((resolve, reject) => { + axios.post('moveitems', { + destination: params.destination, + items: params.items, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + renameItem(params) { + return new Promise((resolve, reject) => { + axios.post('renameitem', { + from: params.from, + to: params.to, + destination: params.destination, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + batchDownload (params) { + return new Promise((resolve, reject) => { + axios.post('batchdownload', { + items: params.items, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + zipItems(params) { + return new Promise((resolve, reject) => { + axios.post('zipitems', { + name: params.name, + items: params.items, + destination: params.destination, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + unzipItem(params) { + return new Promise((resolve, reject) => { + axios.post('unzipitem', { + item: params.item, + destination: params.destination, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + removeItems(params) { + return new Promise((resolve, reject) => { + axios.post('deleteitems', { + items: params.items, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + createNew(params) { + return new Promise((resolve, reject) => { + axios.post('createnew', { + type: params.type, + name: params.name, + destination: params.destination, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + listUsers() { + return new Promise((resolve, reject) => { + axios.get('listusers') + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + deleteUser(params) { + return new Promise((resolve, reject) => { + axios.post('deleteuser/'+params.username) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + storeUser(params) { + return new Promise((resolve, reject) => { + axios.post('storeuser', { + role: params.role, + name: params.name, + username: params.username, + homedir: params.homedir, + password: params.password, + permissions: params.permissions, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + updateUser(params) { + return new Promise((resolve, reject) => { + axios.post('updateuser/'+params.key, { + role: params.role, + name: params.name, + username: params.username, + homedir: params.homedir, + password: params.password, + permissions: params.permissions, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, + changePassword(params) { + return new Promise((resolve, reject) => { + axios.post('changepassword', { + oldpassword: params.oldpassword, + newpassword: params.newpassword, + }) + .then(res => resolve(res.data.data)) + .catch(error => reject(error)) + }) + }, +} + +export default api diff --git a/frontend/assets/logo.png b/frontend/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2e738d5728b59433ff2315c28fce0e079620eba0 GIT binary patch literal 13638 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 literal 0 HcmV?d00001 diff --git a/frontend/main.js b/frontend/main.js new file mode 100644 index 0000000..fa9d7eb --- /dev/null +++ b/frontend/main.js @@ -0,0 +1,64 @@ +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import store from './store' +import Buefy from 'buefy' +import shared from './mixins/shared' +import axios from 'axios' +import api from './api/api' +import '@fortawesome/fontawesome-free/css/all.css' +import '@fortawesome/fontawesome-free/css/fontawesome.css' + +//TODO: import './registerServiceWorker' + +Vue.config.productionTip = false +Vue.config.baseURL = + process.env.VUE_APP_API_ENDPOINT + ? process.env.VUE_APP_API_ENDPOINT + : window.location.origin+window.location.pathname+'?r=' + +axios.defaults.withCredentials = true +axios.defaults.baseURL = Vue.config.baseURL + +axios.defaults.headers['Content-Type'] = 'application/json' + +Vue.use(Buefy, { + defaultIconPack: 'fas', +}) + +Vue.mixin(shared) + +new Vue({ + router, + store, + render: h => h(App), + created: function() { + + api.getConfig() + .then(ret => { + this.$store.commit('setConfig', ret.data.data) + api.getUser() + .then((user) => { + this.$store.commit('initialize') + this.$store.commit('setUser', user) + this.$router.push('/') + }) + .catch(error => { + this.$notification.open({ + message: this.lang('Something went wrong'), + type: 'is-danger', + queue: false, + indefinite: true, + }) + }) + }) + .catch(() => { + this.$notification.open({ + message: this.lang('Something went wrong'), + type: 'is-danger', + queue: false, + indefinite: true, + }) + }) + }, +}).$mount('#app') diff --git a/frontend/mixins/shared.js b/frontend/mixins/shared.js new file mode 100644 index 0000000..e0cbffb --- /dev/null +++ b/frontend/mixins/shared.js @@ -0,0 +1,102 @@ +import moment from 'moment' +import store from '../store.js' +import router from '../router.js' +import api from '../api/api' + +import english from '../translations/english' + +const funcs = { + methods: { + + /** + * example: + * lang("{0} is dead, but {1} is alive! {0} {2}", "HTML", "HTML5") + * output: + * HTML is dead, but HTML5 is alive! HTML {2} + **/ + lang(term, ...rest) { + + let available_languages = { + 'english': english, + } + + let language = store.state.config.language + + let args = rest + if(!available_languages[language] || available_languages[language][term] == undefined) { + // translation required + return 'TR: '+term + } + return available_languages[language][term].replace(/{(\d+)}/g, function(match, number) { + return typeof args[number] != 'undefined' + ? args[number] + : match + }) + }, + is(role) { + return this.$store.state.user.role == role + }, + can(permissions) { + return this.$store.getters.hasPermissions(permissions) + }, + formatBytes(bytes, decimals = 2) { + if (bytes === 0) return '0 Bytes'; + + const k = 1024; + const dm = decimals < 0 ? 0 : decimals; + const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; + + const i = Math.floor(Math.log(bytes) / Math.log(k)); + + return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; + }, + formatDate(timestamp) { + return moment.unix(timestamp).format('YY/MM/DD hh:mm:ss') + }, + checkUser() { + api.getUser() + .then((user) => { + if (user.username !== store.state.user.username) { + this.$store.commit('destroyUser', user) + this.$toast.open({ + message: this.lang('Please log in'), + type: 'is-danger', + }) + } + }) + .catch(() => { + this.$toast.open({ + message: this.lang('Please log in'), + type: 'is-danger', + }) + }) + }, + handleError(error) { + this.checkUser() + + if (typeof error == 'string') { + this.$toast.open({ + message: this.lang(error), + type: 'is-danger', + duration: 5000, + }) + return + } else if (error && error.response && error.response.data && error.response.data.data) { + this.$toast.open({ + message: this.lang(error.response.data.data), + type: 'is-danger', + duration: 5000, + }) + return + } + + this.$toast.open({ + message: this.lang('Unknown error'), + type: 'is-danger', + duration: 5000, + }) + } + } +} + +export default funcs diff --git a/frontend/registerServiceWorker.js b/frontend/registerServiceWorker.js new file mode 100644 index 0000000..76cede0 --- /dev/null +++ b/frontend/registerServiceWorker.js @@ -0,0 +1,32 @@ +/* eslint-disable no-console */ + +import { register } from 'register-service-worker' + +if (process.env.NODE_ENV === 'production') { + register(`${process.env.BASE_URL}service-worker.js`, { + ready () { + console.log( + 'App is being served from cache by a service worker.\n' + + 'For more details, visit https://goo.gl/AFskqB' + ) + }, + registered () { + console.log('Service worker has been registered.') + }, + cached () { + console.log('Content has been cached for offline use.') + }, + updatefound () { + console.log('New content is downloading.') + }, + updated () { + console.log('New content is available; please refresh.') + }, + offline () { + console.log('No internet connection found. App is running in offline mode.') + }, + error (error) { + console.error('Error during service worker registration:', error) + } + }) +} diff --git a/frontend/router.js b/frontend/router.js new file mode 100644 index 0000000..2753746 --- /dev/null +++ b/frontend/router.js @@ -0,0 +1,34 @@ +import Vue from 'vue' +import Router from 'vue-router' +import Browser from './views/Browser.vue' +import Users from './views/Users.vue' +import Login from './views/Login.vue' +import store from './store' + +Vue.use(Router) + +export default new Router({ + mode: 'hash', + routes: [ + { + path: '/', + name: 'browser', + component: Browser, + }, + { + path: '/login', + name: 'login', + component: Login, + }, + { + path: '/users', + name: 'users', + component: Users, + beforeEnter: (to, from, next) => { + if (store.state.user.role == 'admin') { + next() + } + }, + }, + ] +}) diff --git a/frontend/store.js b/frontend/store.js new file mode 100644 index 0000000..fa9e484 --- /dev/null +++ b/frontend/store.js @@ -0,0 +1,99 @@ +import Vue from 'vue' +import Vuex from 'vuex' +import axios from 'axios' +import shared from './mixins/shared' +import _ from 'lodash' + +Vue.use(Vuex) + +export default new Vuex.Store({ + state: { + initialized: false, + config: [], + user: { + role: 'guest', + permissions: [], + name: '', + username: '' + }, + cwd: { + location: '/', + content: [], + }, + tree: {}, + }, + getters: { + hasPermissions: (state) => (permissions) => { + if (_.isArray(permissions)) { + return _.intersection(state.user.permissions, permissions).length == permissions.length + } + return _.find(state.user.permissions, p => p == permissions) ? true : false + } + }, + mutations: { + initialize(state) { + state.initialized = true + this.commit('resetCwd') + this.commit('resetTree') + this.commit('destroyUser') + }, + resetCwd(state, data) { + state.cwd = { + location: '/', + content: [], + } + }, + resetTree(state, data) { + state.tree = { + path: '/', + name: shared.methods.lang('Home'), + children: [], + } + }, + setConfig(state, data) { + state.config = data + }, + setUser(state, data) { + state.user = data + }, + destroyUser(state) { + state.user = { + role: 'guest', + permissions: [], + name: '', + username: '', + } + }, + setCwd(state, data) { + + state.cwd.location = data.location + state.cwd.content = [] + + _.forEach(_.sortBy(data.content, [function(o) { return _.toLower(o.type) }]), (o) => { + state.cwd.content.push(o) + }) + + }, + updateTreeNode(state, data) { + let traverse = function (object) { + for (let property in object) { + if (object.hasOwnProperty(property)) { + if (property === 'path' && object[property] === data.path) { + Object.assign(object, { + path: data.path, + children: data.children, + }) + return + } + if (typeof object[property] === 'object') { + traverse(object[property]); + } + } + } + } + traverse(state.tree); + }, + }, + actions: { + } +}) diff --git a/frontend/translations/english.js b/frontend/translations/english.js new file mode 100644 index 0000000..72f289d --- /dev/null +++ b/frontend/translations/english.js @@ -0,0 +1,77 @@ +const data = { + 'Selected': 'Selected: {0} of {1}', + 'Uploading files': 'Uploading {0}% of {1}', + 'File size error': '{0} is too large, please upload files less than {1}', + 'Upload failed': '{0} failed to upload', + 'Per page': '{0} Per Page', + 'Folder': 'Folder', + 'Login failed, please try again': 'Login failed, please try again', + 'Already logged in': 'Already logged in.', + 'Please enter username and password': 'Please enter username and password.', + 'Not Found': 'Not Found', + 'Not Allowed': 'Not Allowed', + 'Please log in': 'Please log in', + 'Unknown error': 'Unknown error', + 'Add files': 'Add files', + 'New': 'New', + 'New name': 'New name', + 'Username': 'Username', + 'Password': 'Password', + 'Login': 'Log in', + 'Logout': 'Log out', + 'Profile': 'Profile', + 'No pagination': 'No pagination', + 'Time': 'Time', + 'Name': 'Name', + 'Size': 'Size', + 'Home': 'Home', + 'Copy': 'Copy', + 'Move': 'Move', + 'Rename': 'Rename', + 'Required': 'Please fill out this field', + 'Zip': 'Zip', + 'Batch Download': 'Batch Download', + 'Unzip': 'Unzip', + 'Delete': 'Delete', + 'Download': 'Download', + 'Copy link': 'Copy link', + 'Done': 'Done', + 'File': 'File', + 'Drop files to upload': 'Drop files to upload', + 'Close': 'Close', + 'Select Folder': 'Select Folder', + 'Users': 'Users', + 'Files': 'Files', + 'Role': 'Role', + 'Cancel': 'Cancel', + 'Paused': 'Paused', + 'Confirm': 'Confirm', + 'Create': 'Create', + 'User': 'User', + 'Admin': 'Admin', + 'Save': 'Save', + 'Read': 'Read', + 'Name': 'Name', + 'Write': 'Write', + 'Upload': 'Upload', + 'Permissions': 'Permissions', + 'Homedir': 'Home Folder', + 'Leave blank for no change': 'Leave blank for no change', + 'Are you sure you want to do this?': 'Are you sure you want to do this?', + 'Are you sure you want to allow access to everyone?': 'Are you sure you want to allow access to everyone?', + 'Are you sure you want to stop all uploads?': 'Are you sure you want to stop all uploads?', + 'Something went wrong': 'Something went wrong', + 'Invalid directory': 'Invalid directory', + 'This field is required': 'This field is required', + 'Username already taken': 'Username already taken', + 'User not found': 'User not found', + 'Old password': 'Old password', + 'New password': 'New password', + 'Wrong password': 'Wrong password', + 'Updated': 'Updated', + 'Deleted': 'Deleted', + 'Your file is ready': 'Your file is ready', +} + +export default data + diff --git a/frontend/views/Browser.vue b/frontend/views/Browser.vue new file mode 100644 index 0000000..d74e4a6 --- /dev/null +++ b/frontend/views/Browser.vue @@ -0,0 +1,568 @@ + + + + + diff --git a/frontend/views/Login.vue b/frontend/views/Login.vue new file mode 100644 index 0000000..877f91e --- /dev/null +++ b/frontend/views/Login.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/frontend/views/Users.vue b/frontend/views/Users.vue new file mode 100644 index 0000000..1789d0d --- /dev/null +++ b/frontend/views/Users.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/frontend/views/partials/Menu.vue b/frontend/views/partials/Menu.vue new file mode 100644 index 0000000..00b5188 --- /dev/null +++ b/frontend/views/partials/Menu.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/frontend/views/partials/Pagination.vue b/frontend/views/partials/Pagination.vue new file mode 100644 index 0000000..3e6a2bb --- /dev/null +++ b/frontend/views/partials/Pagination.vue @@ -0,0 +1,20 @@ + + + + diff --git a/frontend/views/partials/Profile.vue b/frontend/views/partials/Profile.vue new file mode 100644 index 0000000..099f435 --- /dev/null +++ b/frontend/views/partials/Profile.vue @@ -0,0 +1,63 @@ + + + diff --git a/frontend/views/partials/Tree.vue b/frontend/views/partials/Tree.vue new file mode 100644 index 0000000..2ab8407 --- /dev/null +++ b/frontend/views/partials/Tree.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/frontend/views/partials/TreeNode.vue b/frontend/views/partials/TreeNode.vue new file mode 100644 index 0000000..c92806e --- /dev/null +++ b/frontend/views/partials/TreeNode.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/frontend/views/partials/Upload.vue b/frontend/views/partials/Upload.vue new file mode 100644 index 0000000..7863213 --- /dev/null +++ b/frontend/views/partials/Upload.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/frontend/views/partials/UserEdit.vue b/frontend/views/partials/UserEdit.vue new file mode 100644 index 0000000..607d909 --- /dev/null +++ b/frontend/views/partials/UserEdit.vue @@ -0,0 +1,206 @@ + + + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..c75de5a --- /dev/null +++ b/index.php @@ -0,0 +1,15 @@ +/frontend/$1' + }, + snapshotSerializers: [ + 'jest-serializer-vue' + ], + testMatch: [ + '**/tests/backend/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' + ], + testURL: 'http://localhost/' +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4b45f05 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,17058 @@ +{ + "name": "filegator", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz", + "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helpers": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.5", + "@babel/types": "^7.4.4", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/parser": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "dev": true + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/traverse": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/generator": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz", + "integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==", + "dev": true, + "requires": { + "@babel/types": "^7.4.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", + "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/generator": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/parser": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "dev": true + }, + "@babel/traverse": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz", + "integrity": "sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-split-export-declaration": "^7.4.4" + }, + "dependencies": { + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-define-map": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz", + "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" + }, + "dependencies": { + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", + "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz", + "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" + }, + "dependencies": { + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/parser": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "dev": true + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz", + "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz", + "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/generator": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/parser": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "dev": true + }, + "@babel/traverse": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz", + "integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==", + "dev": true, + "requires": { + "@babel/types": "^7.4.0" + } + }, + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } + }, + "@babel/helpers": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", + "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", + "dev": true, + "requires": { + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + }, + "dependencies": { + "@babel/generator": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/parser": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "dev": true + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/traverse": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.0.tgz", + "integrity": "sha512-ZmMhJfU/+SXXvy9ALjDZopa3T3EixQtQai89JRC48eM9OUwrxJjYjuM/0wmdl2AekytlzMVhPY8cYdLb13kpKQ==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz", + "integrity": "sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz", + "integrity": "sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.2.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz", + "integrity": "sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", + "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz", + "integrity": "sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", + "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz", + "integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz", + "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.11" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz", + "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz", + "integrity": "sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", + "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", + "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz", + "integrity": "sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz", + "integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", + "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", + "dev": true, + "requires": { + "regexp-tree": "^0.1.6" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", + "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.4.tgz", + "integrity": "sha512-aMVojEjPszvau3NRg+TIH14ynZLvPewH4xhlCW1w6A3rkxTS1m4uwzRclYR9oS+rl/dr+kT+pzbfHuAWP/lc7Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", + "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/runtime": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz", + "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/runtime-corejs2": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.4.5.tgz", + "integrity": "sha512-5yLuwzvIDecKwYMzJtiarky4Fb5643H3Ao5jwX0HrMR5oM5mn2iHH9wSZonxwNK0oAjAFUQAiOd4jT7/9Y2jMQ==", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.0.tgz", + "integrity": "sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.0", + "@babel/types": "^7.4.0" + } + }, + "@babel/traverse": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.0.tgz", + "integrity": "sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.0", + "@babel/parser": "^7.4.0", + "@babel/types": "^7.4.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + } + }, + "@babel/types": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz", + "integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "@cypress/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@fortawesome/fontawesome-free": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.9.0.tgz", + "integrity": "sha512-g795BBEzM/Hq2SYNPm/NQTIp3IWd4eXSH0ds87Na2jnrAUFX3wkyZAI4Gwj9DOaWMuz2/01i8oWI7P7T/XLkhg==", + "dev": true + }, + "@hapi/address": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz", + "integrity": "sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw==", + "dev": true + }, + "@hapi/hoek": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-6.2.4.tgz", + "integrity": "sha512-HOJ20Kc93DkDVvjwHyHawPwPkX44sIrbXazAUDiUXaY2R9JwQGo2PhFfnQtdrsIe4igjG2fPgMra7NYw7qhy0A==", + "dev": true + }, + "@hapi/joi": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.0.3.tgz", + "integrity": "sha512-z6CesJ2YBwgVCi+ci8SI8zixoj8bGFn/vZb9MBPbSyoxsS2PnWYjHcyTM17VLK6tx64YVK38SDIh10hJypB+ig==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/hoek": "6.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.0.tgz", + "integrity": "sha512-gZDI/eXOIk8kP2PkUKjWu9RW8GGVd2Hkgjxyr/S7Z+JF+0mr7bAlbw+DkTRxnD580o8Kqxlnba9wvqp5aOHBww==", + "dev": true, + "requires": { + "@hapi/hoek": "6.x.x" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz", + "integrity": "sha512-cWKrGaFX+rfbMrAxVv56DzhPNqOJPZuNIS2HGMELtgGzb+vsMzyig9mml5gZ/hr2BGtSLV+dP2LUEuAL8aG2mQ==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "12.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.8.tgz", + "integrity": "sha512-b8bbUOTwzIY3V5vDTY1fIJ+ePKDUBqt2hC2woVGotdQQhG/2Sh62HOKHrT7ab+VerXAcPyAiTEipPu/FsreUtg==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", + "dev": true + }, + "@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", + "dev": true + }, + "@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz", + "integrity": "sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0.tgz", + "integrity": "sha512-U+JNwVQSmaLKjO3lzCUC3cNXxprgezV1N+jOdqbP4xWNaqtWUCJnkjTVcgECM18A/AinDKPcUUeoyhU7yxUxXQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-preset-app": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.8.0.tgz", + "integrity": "sha512-A2NBzIVdtNq52foc+P+yQ/7rSm2q2oPpn2FJVW4hFgaWVOL+HaOLCjWDEQyEeMbRZvyOVHMuom097u3p2H2Rfw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-decorators": "^7.1.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.4.0", + "@babel/preset-env": "^7.0.0 < 7.4.0", + "@babel/runtime": "^7.0.0", + "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0", + "babel-plugin-dynamic-import-node": "^2.2.0", + "babel-plugin-module-resolver": "3.2.0", + "core-js": "^2.6.5" + } + }, + "@vue/babel-preset-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.0.0.tgz", + "integrity": "sha512-5CbDu/QHS+TtQNw5aYAffiMxBBB2Eo9+RJpS8X+6FJbdG5Rvc4TVipEqkrg0pJviWadNg7TEy0Uz4o7VNXeIZw==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0", + "@vue/babel-sugar-functional-vue": "^1.0.0", + "@vue/babel-sugar-inject-h": "^1.0.0", + "@vue/babel-sugar-v-model": "^1.0.0", + "@vue/babel-sugar-v-on": "^1.0.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0.tgz", + "integrity": "sha512-XE/jNaaorTuhWayCz+QClk5AB9OV5HzrwbzEC6sIUY0J60A28ONQKeTwxfidW42egOkqNH/UU6eE3KLfmiDj0Q==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0.tgz", + "integrity": "sha512-NxWU+DqtbZgfGvd25GPoFMj+rvyQ8ZA1pHj8vIeqRij+vx3sXoKkObjA9ulZunvWw5F6uG9xYy4ytpxab/X+Hg==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.0.0.tgz", + "integrity": "sha512-Pfg2Al0io66P1eO6zUbRIgpyKCU2qTnumiE0lao/wA/uNdb7Dx5Tfd1W6tO5SsByETPnEs8i8+gawRIXX40rFw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.0.0.tgz", + "integrity": "sha512-2aqJaDLKdSSGlxZU+GjFERaSNUaa6DQreV+V/K4W/6Lxj8520/r1lChWEa/zuAoPD2Vhy0D2QrqqO+I0D6CkKw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0", + "camelcase": "^5.0.0" + } + }, + "@vue/cli-overlay": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.8.0.tgz", + "integrity": "sha512-4hY/+r9OwpMb7BPFnQGKftMC8CrfbV00REEFOij52+L4swQw+m879+5zX3Z0xHfPftw6JyaqJB0rmQ0ILI6Ovw==", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.8.0.tgz", + "integrity": "sha512-VLWvpgDM+HN2FZu1x+r9pisombDTK1k+RPNPeslnwjGjrUXmKNAamXL1ZIsPwsj6k6PpWPN4jetBIMqcBzBu6Q==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@vue/babel-preset-app": "^3.8.0", + "@vue/cli-shared-utils": "^3.8.0", + "babel-loader": "^8.0.5", + "webpack": ">=4 < 4.29" + } + }, + "@vue/cli-plugin-e2e-cypress": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-e2e-cypress/-/cli-plugin-e2e-cypress-3.8.0.tgz", + "integrity": "sha512-k9vgkcj4DuAFsmO56+HHJ45iLvAtvop0n/gjNTAUyKmUkDszwO/b7tnB7XIPoAsU5AxFLaL8rn88Vx7kye/tPw==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.8.0", + "cypress": "^3.2.0", + "eslint-plugin-cypress": "^2.2.1" + } + }, + "@vue/cli-plugin-eslint": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.8.0.tgz", + "integrity": "sha512-18LDJmjH0DDw9T4+RbrSVk4xkF8t8RDRsEPJLPurno1YVJodIkQ6lqVu82faVgtvPyCoqiaicoTq/iwi1avoLQ==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.8.0", + "babel-eslint": "^10.0.1", + "eslint": "^4.19.1", + "eslint-loader": "^2.1.2", + "eslint-plugin-vue": "^4.7.1", + "globby": "^9.2.0", + "webpack": ">=4 < 4.29" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "optional": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + } + }, + "eslint-plugin-vue": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz", + "integrity": "sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==", + "dev": true, + "optional": true, + "requires": { + "vue-eslint-parser": "^2.0.3" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true, + "optional": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "optional": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true, + "optional": true + } + } + }, + "@vue/cli-plugin-unit-jest": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.8.0.tgz", + "integrity": "sha512-8kvoh6NZYY7FjuqRorqo47VTi62a3u69+oAxqBiIOkc28OGaju/FrL0Vm95vRB8tMkU6EPXKVRtCjPz8R2QeZA==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.8.0", + "babel-jest": "^23.6.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", + "jest": "^23.6.0", + "jest-serializer-vue": "^2.0.2", + "jest-transform-stub": "^2.0.0", + "jest-watch-typeahead": "0.2.1", + "vue-jest": "^3.0.4" + } + }, + "@vue/cli-service": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.8.3.tgz", + "integrity": "sha512-NXmulT/Tu2NnqMx3kiJmxxQ32kVrAe+EpaRoGAYaqAzRZQYg/AjyDFsgam2Es8QtkIOJ7odObpf7ikrgiEQYNA==", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@vue/cli-overlay": "^3.8.0", + "@vue/cli-shared-utils": "^3.8.0", + "@vue/component-compiler-utils": "^2.6.0", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^6.1.1", + "acorn-walk": "^6.1.1", + "address": "^1.0.3", + "autoprefixer": "^9.5.1", + "browserslist": "^4.5.4", + "cache-loader": "^2.0.1", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "chalk": "^2.4.2", + "cli-highlight": "^2.1.0", + "clipboardy": "^2.0.0", + "cliui": "^5.0.0", + "copy-webpack-plugin": "^4.6.0", + "css-loader": "^1.0.1", + "cssnano": "^4.1.10", + "current-script-polyfill": "^1.0.0", + "debug": "^4.1.1", + "default-gateway": "^4.2.0", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "escape-string-regexp": "^1.0.5", + "file-loader": "^3.0.1", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^1.0.2", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.0", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.6.0", + "minimist": "^1.2.0", + "ora": "^3.4.0", + "portfinder": "^1.0.20", + "postcss-loader": "^3.0.0", + "read-pkg": "^5.0.0", + "semver": "^6.0.0", + "slash": "^2.0.0", + "source-map-url": "^0.4.0", + "ssri": "^6.0.1", + "string.prototype.padend": "^3.0.0", + "terser-webpack-plugin": "^1.2.3", + "thread-loader": "^2.1.2", + "url-loader": "^1.1.2", + "vue-loader": "^15.7.0", + "webpack": ">=4 < 4.29", + "webpack-bundle-analyzer": "^3.3.0", + "webpack-chain": "^4.11.0", + "webpack-dev-server": "^3.4.1", + "webpack-merge": "^4.2.1", + "yorkie": "^2.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "read-pkg": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz", + "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^4.0.0", + "type-fest": "^0.4.1" + } + }, + "semver": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", + "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } + } + }, + "@vue/cli-shared-utils": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.8.0.tgz", + "integrity": "sha512-wn1L8pmQnotfftHOYm0VeXs2+cQTySd73uhWXwyO6pT0ehjqlY5c2RTipClmFF3Q+YCYjwlNpsV650F3l1tV8w==", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.1", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.7", + "semver": "^6.0.0", + "string.prototype.padstart": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", + "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "dev": true + } + } + }, + "@vue/component-compiler-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.6.0.tgz", + "integrity": "sha512-IHjxt7LsOFYc0DkTncB7OXJL7UzwOLPPQCfEUNyxL2qt+tF12THV+EO33O1G2Uk4feMSWua3iD39Itszx0f0bw==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^5.0.0", + "prettier": "1.16.3", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-rcn2KhSHESBFMPj5vc5X2pI9bcBNQQixvJXhD5gZ4rN2iym/uH2qfDSQfUS5+qwiz0a85TCkeUs6w6jxFDudbw==", + "dev": true + }, + "@vue/test-utils": { + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz", + "integrity": "sha512-yX4sxEIHh4M9yAbLA/ikpEnGKMNBCnoX98xE1RwxfhQVcn0MaXNSj1Qmac+ZydTj6VBSEVukchBogXBTwc+9iA==", + "dev": true, + "requires": { + "dom-event-types": "^1.0.0", + "lodash": "^4.17.4" + } + }, + "@vue/web-component-wrapper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz", + "integrity": "sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", + "dev": true + }, + "abab": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dev": true, + "requires": { + "acorn": "^5.0.0" + } + }, + "acorn-globals": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz", + "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "optional": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true, + "optional": true + } + } + }, + "acorn-walk": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "dev": true + }, + "address": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.0.tgz", + "integrity": "sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ==", + "dev": true + }, + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", + "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.0.tgz", + "integrity": "sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ==", + "dev": true, + "requires": { + "browserslist": "^4.6.1", + "caniuse-lite": "^1.0.30000971", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.16", + "postcss-value-parser": "^3.3.1" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "axios": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", + "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + } + }, + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true + }, + "babel-eslint": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz", + "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "^1.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + } + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-jest": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz", + "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "^4.1.6", + "babel-preset-jest": "^23.2.0" + } + }, + "babel-loader": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", + "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "pify": "^4.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz", + "integrity": "sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, + "babel-plugin-jest-hoist": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz", + "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=", + "dev": true + }, + "babel-plugin-module-resolver": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", + "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", + "dev": true, + "requires": { + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" + } + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-jest": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz", + "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^23.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz", + "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "check-types": "^7.3.0", + "hoopy": "^0.1.2", + "tryer": "^1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.2.tgz", + "integrity": "sha512-2neU/V0giQy9h3XMPwLhEY3+Ao0uHSwHvU8Q1Ea6AgLVL1sXbX3dzPrJ8NWe5Hi4PoTkCYXOtVR9rfRLI0J/8Q==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000974", + "electron-to-chromium": "^1.3.150", + "node-releases": "^1.1.23" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buefy": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/buefy/-/buefy-0.7.7.tgz", + "integrity": "sha512-UuPD+/749s6XzRL2INoJxykOygcBo1pVlLlSJ7wodY228LGOYsURXSkMrCxeemwhvWzSq/UJ+D8X9BkyIw6Tww==", + "dev": true, + "requires": { + "bulma": "0.7.5" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bulma": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.7.5.tgz", + "integrity": "sha512-cX98TIn0I6sKba/DhW0FBjtaDpxTelU166pf7ICXpCCuplHWyu6C9LYZmL5PEsnePIeJaiorsTEzzNk3Tsm1hw==", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-loader": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-2.0.1.tgz", + "integrity": "sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.0", + "normalize-path": "^3.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "cachedir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", + "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", + "dev": true, + "requires": { + "os-homedir": "^1.0.1" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "optional": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true, + "optional": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.2.0.tgz", + "integrity": "sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30000974", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000974.tgz", + "integrity": "sha512-xc3rkNS/Zc3CmpMKuczWEdY2sZgx09BkAxfvkxlAEBTqcMHeL8QnPqhKse+5sRTi3nrw2pJwToD2WvKn1Uhvww==", + "dev": true + }, + "capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", + "dev": true, + "requires": { + "rsvp": "^3.3.3" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true, + "optional": true + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "check-types": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz", + "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==", + "dev": true + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true, + "optional": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.1.tgz", + "integrity": "sha512-0y0VlNmdD99GXZHYnvrQcmHxP8Bi6T00qucGgBgGv4kJ0RyDthNnnFPupHV7PYv/OXSVk+azFbOeaW6+vGmx9A==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "highlight.js": "^9.6.0", + "mz": "^2.4.0", + "parse5": "^4.0.0", + "yargs": "^13.0.0" + }, + "dependencies": { + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "cli-spinners": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz", + "integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "clipboard": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", + "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", + "dev": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "clipboardy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.0.0.tgz", + "integrity": "sha512-XbVjHMsss0giNUkp/tV/3eEAZe8i1fZTLzmPKqjE1RGIAWOTiF5D014f6R+g53ZAq0IK3cPrJXFvqE8eQjhFYQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compressible": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", + "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "dev": true, + "requires": { + "mime-db": ">= 1.40.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concurrently": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-4.1.0.tgz", + "integrity": "sha512-pwzXCE7qtOB346LyO9eFWpkFJVO3JQZ/qU/feGeaAHiX1M3Rw3zgXKc5cZ8vSH5DGygkjzLFDzA/pwoQDkRNGg==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "date-fns": "^1.23.0", + "lodash": "^4.17.10", + "read-pkg": "^4.0.1", + "rxjs": "^6.3.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^4.5.0", + "tree-kill": "^1.1.0", + "yargs": "^12.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + } + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "condense-newlines": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz", + "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-whitespace": "^0.3.0", + "kind-of": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "core-js": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-select": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", + "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^2.1.2", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + }, + "dependencies": { + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "css-tree": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", + "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", + "dev": true + }, + "css-url-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", + "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", + "dev": true + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + } + } + }, + "cssom": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", + "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==", + "dev": true + }, + "cssstyle": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz", + "integrity": "sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "current-script-polyfill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz", + "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "cypress": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.3.1.tgz", + "integrity": "sha512-JIo47ZD9P3jAw7oaK7YKUoODzszJbNw41JmBrlMMiupHOlhmXvZz75htuo7mfRFPC9/1MDQktO4lX/V2+a6lGQ==", + "dev": true, + "requires": { + "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/xvfb": "1.2.4", + "arch": "2.1.1", + "bluebird": "3.5.0", + "cachedir": "1.3.0", + "chalk": "2.4.2", + "check-more-types": "2.24.0", + "commander": "2.15.1", + "common-tags": "1.8.0", + "debug": "3.2.6", + "execa": "0.10.0", + "executable": "4.1.1", + "extract-zip": "1.6.7", + "fs-extra": "4.0.1", + "getos": "3.1.1", + "glob": "7.1.3", + "is-ci": "1.2.1", + "is-installed-globally": "0.1.0", + "lazy-ass": "1.6.0", + "listr": "0.12.0", + "lodash": "4.17.11", + "log-symbols": "2.2.0", + "minimist": "1.2.0", + "moment": "2.24.0", + "ramda": "0.24.1", + "request": "2.88.0", + "request-progress": "0.4.0", + "supports-color": "5.5.0", + "tmp": "0.1.0", + "url": "0.11.0", + "yauzl": "2.10.0" + }, + "dependencies": { + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "optional": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-event-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dom-event-types/-/dom-event-types-1.0.0.tgz", + "integrity": "sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==", + "dev": true + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", + "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-stack": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz", + "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.158", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.158.tgz", + "integrity": "sha512-wJsJaWsViNQ129XPGmyO5gGs1jPMHr9vffjHAhUje1xZbEzQcqbENdvfyRD9q8UF0TgFQFCCUbaIpJarFbvsIg==", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz", + "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==", + "dev": true, + "requires": { + "stackframe": "^1.0.4" + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", + "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "acorn": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "external-editor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", + "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inquirer": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", + "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "table": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", + "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", + "dev": true, + "requires": { + "ajv": "^6.9.1", + "lodash": "^4.17.11", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + } + } + }, + "eslint-loader": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.2.tgz", + "integrity": "sha512-rA9XiXEOilLYPOIInvVH5S/hYfyTPyxag6DZhoQOduM+3TkghAEQ3VcFO8VnX4J4qg/UIBzp72aOf/xvYmpmsg==", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-plugin-cypress": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.2.1.tgz", + "integrity": "sha512-WkH81MEALKhnpeRo/wWHBHR883LdkS8aFzbGAGFxiwRwik2IKBZxb/JrxbiA6+SZskXGcmdEi6rwL7xmiqo9MA==", + "dev": true, + "requires": { + "globals": "^11.0.1" + } + }, + "eslint-plugin-vue": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.2.tgz", + "integrity": "sha512-CtGWH7IB0DA6BZOwcV9w9q3Ri6Yuo8qMjx05SmOGJ6X6E0Yo3y9E/gQ5tuNxg2dEt30tRnBoFTbvtmW9iEoyHA==", + "dev": true, + "requires": { + "vue-eslint-parser": "^5.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true + }, + "espree": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "dev": true, + "requires": { + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "vue-eslint-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz", + "integrity": "sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "eslint-scope": "^4.0.0", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.1.0", + "esquery": "^1.0.1", + "lodash": "^4.17.11" + } + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "optional": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dev": true, + "requires": { + "merge": "^1.2.0" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "expect": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz", + "integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "jest-diff": "^23.6.0", + "jest-get-type": "^22.1.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "optional": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extract-from-css": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/extract-from-css/-/extract-from-css-0.4.4.tgz", + "integrity": "sha1-HqffLnx8brmSL6COitrqSG9vj5I=", + "dev": true, + "requires": { + "css": "^2.1.0" + } + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "^2.0.0" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "optional": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", + "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", + "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", + "dev": true, + "requires": { + "json5": "^0.5.1", + "path-exists": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "optional": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "flatted": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", + "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", + "dev": true, + "requires": { + "debug": "^3.2.6" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", + "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getos": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.1.tgz", + "integrity": "sha512-oUP1rnEhAr97rkitiszGP9EgDVYnmchgFzfqRzSkgtfv7ai6tEi7Ko8GgjNXts7VLWEqrTWyhsOKLe5C5b/Zkg==", + "dev": true, + "requires": { + "async": "2.6.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dev": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "dev": true + }, + "handlebars": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "9.15.8", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.8.tgz", + "integrity": "sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + } + } + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "optional": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "optional": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz", + "integrity": "sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + }, + "dependencies": { + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + } + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-whitespace": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", + "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dev": true, + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "javascript-stringify": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz", + "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=", + "dev": true + }, + "jest": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-23.6.0.tgz", + "integrity": "sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==", + "dev": true, + "requires": { + "import-local": "^1.0.0", + "jest-cli": "^23.6.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "jest-cli": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz", + "integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "import-local": "^1.0.0", + "is-ci": "^1.0.10", + "istanbul-api": "^1.3.1", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-instrument": "^1.10.1", + "istanbul-lib-source-maps": "^1.2.4", + "jest-changed-files": "^23.4.2", + "jest-config": "^23.6.0", + "jest-environment-jsdom": "^23.4.0", + "jest-get-type": "^22.1.0", + "jest-haste-map": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0", + "jest-resolve-dependencies": "^23.6.0", + "jest-runner": "^23.6.0", + "jest-runtime": "^23.6.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "jest-watcher": "^23.4.0", + "jest-worker": "^23.2.0", + "micromatch": "^2.3.11", + "node-notifier": "^5.2.1", + "prompts": "^0.1.9", + "realpath-native": "^1.0.0", + "rimraf": "^2.5.4", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "yargs": "^11.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "jest-changed-files": { + "version": "23.4.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-23.4.2.tgz", + "integrity": "sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==", + "dev": true, + "requires": { + "throat": "^4.0.0" + } + }, + "jest-config": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz", + "integrity": "sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==", + "dev": true, + "requires": { + "babel-core": "^6.0.0", + "babel-jest": "^23.6.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^23.4.0", + "jest-environment-node": "^23.4.0", + "jest-get-type": "^22.1.0", + "jest-jasmine2": "^23.6.0", + "jest-regex-util": "^23.3.0", + "jest-resolve": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "micromatch": "^2.3.11", + "pretty-format": "^23.6.0" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } + }, + "jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-docblock": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", + "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "dev": true, + "requires": { + "detect-newline": "^2.1.0" + } + }, + "jest-each": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz", + "integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "pretty-format": "^23.6.0" + } + }, + "jest-environment-jsdom": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz", + "integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=", + "dev": true, + "requires": { + "jest-mock": "^23.2.0", + "jest-util": "^23.4.0", + "jsdom": "^11.5.1" + } + }, + "jest-environment-node": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.4.0.tgz", + "integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=", + "dev": true, + "requires": { + "jest-mock": "^23.2.0", + "jest-util": "^23.4.0" + } + }, + "jest-get-type": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", + "dev": true + }, + "jest-haste-map": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz", + "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==", + "dev": true, + "requires": { + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "invariant": "^2.2.4", + "jest-docblock": "^23.2.0", + "jest-serializer": "^23.0.1", + "jest-worker": "^23.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "jest-jasmine2": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz", + "integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==", + "dev": true, + "requires": { + "babel-traverse": "^6.0.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^23.6.0", + "is-generator-fn": "^1.0.0", + "jest-diff": "^23.6.0", + "jest-each": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "pretty-format": "^23.6.0" + } + }, + "jest-leak-detector": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz", + "integrity": "sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==", + "dev": true, + "requires": { + "pretty-format": "^23.6.0" + } + }, + "jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-message-util": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.4.0.tgz", + "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0-beta.35", + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "stack-utils": "^1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } + }, + "jest-mock": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-23.2.0.tgz", + "integrity": "sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=", + "dev": true + }, + "jest-regex-util": { + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz", + "integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=", + "dev": true + }, + "jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz", + "integrity": "sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==", + "dev": true, + "requires": { + "jest-regex-util": "^23.3.0", + "jest-snapshot": "^23.6.0" + } + }, + "jest-runner": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz", + "integrity": "sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==", + "dev": true, + "requires": { + "exit": "^0.1.2", + "graceful-fs": "^4.1.11", + "jest-config": "^23.6.0", + "jest-docblock": "^23.2.0", + "jest-haste-map": "^23.6.0", + "jest-jasmine2": "^23.6.0", + "jest-leak-detector": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-runtime": "^23.6.0", + "jest-util": "^23.4.0", + "jest-worker": "^23.2.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" + } + }, + "jest-runtime": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz", + "integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==", + "dev": true, + "requires": { + "babel-core": "^6.0.0", + "babel-plugin-istanbul": "^4.1.6", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "exit": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-config": "^23.6.0", + "jest-haste-map": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0", + "jest-resolve": "^23.6.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "micromatch": "^2.3.11", + "realpath-native": "^1.0.0", + "slash": "^1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "^2.1.0", + "yargs": "^11.0.0" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "jest-serializer": { + "version": "23.0.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz", + "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=", + "dev": true + }, + "jest-serializer-vue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz", + "integrity": "sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM=", + "dev": true, + "requires": { + "pretty": "2.0.0" + } + }, + "jest-snapshot": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", + "dev": true, + "requires": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.6.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.6.0", + "semver": "^5.5.0" + } + }, + "jest-transform-stub": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz", + "integrity": "sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==", + "dev": true + }, + "jest-util": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.4.0.tgz", + "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=", + "dev": true, + "requires": { + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "jest-message-util": "^23.4.0", + "mkdirp": "^0.5.1", + "slash": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "jest-validate": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz", + "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "leven": "^2.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-watch-typeahead": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.2.1.tgz", + "integrity": "sha512-xdhEtKSj0gmnkDQbPTIHvcMmXNUDzYpHLEJ5TFqlaI+schi2NI96xhWiZk9QoesAS7oBmKwWWsHazTrYl2ORgg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.4.1", + "jest-watcher": "^23.1.0", + "slash": "^2.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-23.4.0.tgz", + "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "string-length": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + } + } + }, + "jest-worker": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", + "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", + "dev": true, + "requires": { + "merge-stream": "^1.0.1" + } + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "dev": true + }, + "js-beautify": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.0.tgz", + "integrity": "sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q==", + "dev": true, + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "mkdirp": "~0.5.1", + "nopt": "~4.0.1" + } + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-message": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz", + "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "dev": true + }, + "js-queue": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz", + "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "dev": true, + "requires": { + "easy-stack": "^1.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", + "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "kleur": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-2.0.2.tgz", + "integrity": "sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==", + "dev": true + }, + "launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz", + "integrity": "sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" + } + }, + "launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==", + "dev": true, + "requires": { + "launch-editor": "^2.2.1" + } + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "listr": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", + "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.2.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.0.0-beta.11", + "stream-to-observable": "^0.1.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" + } + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", + "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-fs-cache": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", + "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.defaultsdeep": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz", + "integrity": "sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "loglevel": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz", + "integrity": "sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "merge2": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", + "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "^2.0.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-cache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-4.2.0.tgz", + "integrity": "sha512-obRu6/f7S024ysheAjoYFEEBqqDWv4LOMNJEuO8vMeEw2AT4z+NCzO4hlc2lhI4vATzbCQv6kke9FVdx0RbCOw==", + "dev": true, + "requires": { + "clone": "2.x", + "lodash": "4.x" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + } + } + }, + "node-eta": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.1.1.tgz", + "integrity": "sha1-QGYQmzk3HHYccrfr2pqeoKXeEh8=", + "dev": true + }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-ipc": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz", + "integrity": "sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.5", + "js-queue": "2.0.0" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-notifier": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", + "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "node-releases": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.23.tgz", + "integrity": "sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "node-sass": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", + "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.11", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwsapi": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", + "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.3.0.tgz", + "integrity": "sha512-6AHdrJxPvAXIowO/aIaeHZ8CeMdDf7qCyRNq8NwJpinmCdXhz+NZR7ie1Too94lpciCDsG+qHGO9Mt0svA4OqA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", + "dev": true + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.1.0.tgz", + "integrity": "sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA==", + "dev": true + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true, + "optional": true + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "portfinder": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", + "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", + "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss": "^7.0.5", + "postcss-selector-parser": "^5.0.0-rc.4", + "postcss-value-parser": "^3.3.1" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "prettier": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", + "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", + "dev": true + }, + "pretty": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz", + "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", + "dev": true, + "requires": { + "condense-newlines": "^0.2.1", + "extend-shallow": "^2.0.1", + "js-beautify": "^1.6.12" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prompts": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz", + "integrity": "sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==", + "dev": true, + "requires": { + "kleur": "^2.0.1", + "sisteransi": "^0.1.1" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true + }, + "ramda": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", + "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "dev": true, + "requires": { + "util.promisify": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", + "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz", + "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp-tree": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.10.tgz", + "integrity": "sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ==", + "dev": true + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true, + "optional": true + }, + "regexpu-core": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", + "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-progress": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.4.0.tgz", + "integrity": "sha1-wZVOOQhqqFJpxWYLzuAUKmpw1+c=", + "dev": true, + "requires": { + "node-eta": "^0.1.1", + "throttleit": "^0.0.2" + } + }, + "request-promise-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", + "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "request-promise-native": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", + "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "dev": true, + "requires": { + "request-promise-core": "1.1.2", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "optional": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", + "dev": true + }, + "resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true, + "optional": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "resumablejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resumablejs/-/resumablejs-1.1.0.tgz", + "integrity": "sha512-gUTWTtJ2aheRb5svHDGHMtQsBkGxTILpZApT11ODoxEe5D75GhYL7Nc/WYgCcJXY+5RVmm2BEsp2qriCkKWRRg==", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true, + "optional": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "optional": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sane": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.3", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" + } + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "sass-loader": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "dev": true, + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "dev": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", + "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", + "dev": true, + "requires": { + "node-forge": "0.7.5" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", + "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dev": true, + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "sisteransi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", + "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", + "dev": true + }, + "spdy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", + "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", + "dev": true + }, + "stackframe": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz", + "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-to-observable": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", + "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dev": true, + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "string.prototype.padend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", + "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + } + }, + "string.prototype.padstart": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz", + "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "svgo": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.2.2.tgz", + "integrity": "sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.28", + "css-url-regex": "^1.1.0", + "csso": "^3.5.1", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "optional": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true, + "optional": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "terser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.0.tgz", + "integrity": "sha512-dOapGTU0hETFl1tCo4t56FN+2jffoKyER9qBGoUFyZ6y7WLoKT0bF+lAYi6B6YsILcGF3q1C2FBh8QcKSCgkgA==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==", + "dev": true, + "requires": { + "cacache": "^11.3.2", + "find-cache-dir": "^2.0.0", + "is-wsl": "^1.1.0", + "loader-utils": "^1.2.3", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "terser": "^4.0.0", + "webpack-sources": "^1.3.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.2.tgz", + "integrity": "sha512-7xpuc9Ifg6WU+QYw/8uUqNdRwMD+N5gjwHKMqETrs96Qn+7BHwECpt2Brzr4HFlf4IAkZsayNhmGdbkBsTJ//w==", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + } + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", + "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "tree-kill": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, + "tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "requires": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", + "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.20.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", + "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", + "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true + }, + "vue": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz", + "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==", + "dev": true + }, + "vue-clipboard2": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.0.tgz", + "integrity": "sha512-6/Y9NJErWb4LNBLMgsJSdKb7KpF6/jqXagvKlYut6VQzQsNj6515FpwH0r5hhmeJMqaPzf1kxAw8L8Qvw/QBJQ==", + "dev": true, + "requires": { + "clipboard": "^2.0.0" + } + }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz", + "integrity": "sha512-KmvZVtmM26BQOMK1rwUZsrqxEGeKiYSZGA7SNWE6uExx8UX/cj9hq2MRV/wWC3Cq6AoeDGk57rL9YMFRel/q+g==", + "dev": true + }, + "vue-jest": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.4.tgz", + "integrity": "sha512-PY9Rwt4OyaVlA+KDJJ0614CbEvNOkffDI9g9moLQC/2DDoo0YrqZm7dHi13Q10uoK5Nt5WCYFdeAheOExPah0w==", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", + "chalk": "^2.1.0", + "extract-from-css": "^0.4.4", + "find-babel-config": "^1.1.0", + "js-beautify": "^1.6.14", + "node-cache": "^4.1.1", + "object-assign": "^4.1.1", + "source-map": "^0.5.6", + "tsconfig": "^7.0.0", + "vue-template-es2015-compiler": "^1.6.0" + } + }, + "vue-loader": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.7.0.tgz", + "integrity": "sha512-x+NZ4RIthQOxcFclEcs8sXGEWqnZHodL2J9Vq+hUz+TDZzBaDIh1j3d9M2IUlTjtrHTZy4uMuRdTi8BGws7jLA==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^2.5.1", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + } + }, + "vue-router": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.6.tgz", + "integrity": "sha512-Ox0ciFLswtSGRTHYhGvx2L44sVbTPNS+uD2kRISuo8B39Y79rOo0Kw0hzupTmiVtftQYCZl87mwldhh2L9Aquw==", + "dev": true + }, + "vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", + "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz", + "integrity": "sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "vuex": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.1.1.tgz", + "integrity": "sha512-ER5moSbLZuNSMBFnEBVGhQ1uCBNJslH9W/Dw2W7GZN23UQA69uapP5GTT9Vm8Trc0PzBSVt6LzF3hGjmv41xcg==", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz", + "integrity": "sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" + } + }, + "webpack-bundle-analyzer": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz", + "integrity": "sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-walk": "^6.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.10", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "webpack-chain": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz", + "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^1.6.0" + } + }, + "webpack-dev-middleware": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz", + "integrity": "sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.2", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.7.1.tgz", + "integrity": "sha512-GSBjjDMQ+uJI/Rcw/NfXDq5QpfE4HviafCy2SdbJ8Q22MwsnyoHd5TbWRfxgkbklsMx+ZNgWIKK+cB28ynjiDQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.6", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "^0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "killable": "^1.0.1", + "loglevel": "^1.6.2", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.20", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.4", + "semver": "^6.1.1", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", + "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.2.tgz", + "integrity": "sha512-RRTAkzsGiOP8PwGwLfd/H0NbotLXyS5zxg4EbuQ2K3aNqgUOVbOzBKKvTXzUsKiwVs+pBpBtqBYHj6PS6JVXDQ==", + "dev": true, + "requires": { + "http-parser-js": ">= 0.4.0, < 0.4.11", + "safe-buffer": ">= 5.1.0", + "websocket-extensions": ">= 0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "optional": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + }, + "dependencies": { + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + } + } + }, + "yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz", + "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", + "dev": true, + "requires": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..9d71984 --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "filegator", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "concurrently \"php -S localhost:8081\" \"vue-cli-service serve\"", + "build": "vue-cli-service build --no-clean", + "lint": "vue-cli-service lint", + "test:e2e": "vue-cli-service test:e2e", + "test:unit": "vue-cli-service test:unit", + "insight": "./vendor/bin/phpinsights -v -n > phpinsights.txt" + }, + "devDependencies": { + "@fortawesome/fontawesome-free": "^5.9.0", + "@vue/cli-plugin-babel": "^3.8.0", + "@vue/cli-plugin-e2e-cypress": "^3.8.0", + "@vue/cli-plugin-eslint": "^3.8.0", + "@vue/cli-plugin-unit-jest": "^3.8.0", + "@vue/cli-service": "^3.8.3", + "@vue/test-utils": "1.0.0-beta.29", + "axios": "^0.18.1", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "^10.0.1", + "babel-jest": "^23.6.0", + "buefy": "^0.7.7", + "concurrently": "^4.1.0", + "eslint": "^5.16.0", + "eslint-plugin-vue": "^5.0.0", + "node-sass": "^4.12.0", + "resumablejs": "^1.1.0", + "sass-loader": "^7.1.0", + "vue": "^2.6.6", + "vue-clipboard2": "^0.3.0", + "vue-router": "^3.0.6", + "vue-template-compiler": "^2.5.21", + "vuex": "^3.1.1" + }, + "dependencies": {} +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..647aba3 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,45 @@ + + + + + ./tests/backend/Unit + + + + ./tests/backend/Feature + + + + + ./backend + + ./backend/View.php + + + + + + + + + + diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..961986e --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/private/.gitignore b/private/.gitignore new file mode 100755 index 0000000..e81fe75 --- /dev/null +++ b/private/.gitignore @@ -0,0 +1,2 @@ +/tmp +/users.json diff --git a/private/.htaccess b/private/.htaccess new file mode 100755 index 0000000..8d2f256 --- /dev/null +++ b/private/.htaccess @@ -0,0 +1 @@ +deny from all diff --git a/private/logs/.gitignore b/private/logs/.gitignore new file mode 100755 index 0000000..d6b7ef3 --- /dev/null +++ b/private/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/private/sessions/.gitignore b/private/sessions/.gitignore new file mode 100755 index 0000000..d6b7ef3 --- /dev/null +++ b/private/sessions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/private/users.json.blank b/private/users.json.blank new file mode 100755 index 0000000..2f2f519 --- /dev/null +++ b/private/users.json.blank @@ -0,0 +1 @@ +{"1":{"username":"admin","name":"Admin","role":"admin","homedir":"\/","permissions":"read|write|upload|download|batchdownload|zip","password":"$2y$10$Nu35w4pteLfc7BDCIkDPkecjw8wsH8Y2GMfIewUbXLT7zzW6WOxwq"},"2":{"username":"guest","name":"Guest","role":"guest","homedir":"\/","permissions":"","password":""}} diff --git a/repository/.gitignore b/repository/.gitignore new file mode 100755 index 0000000..d6b7ef3 --- /dev/null +++ b/repository/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..f706f4a --- /dev/null +++ b/robots.txt @@ -0,0 +1,6 @@ +# No crawling for robots, also present in the header as meta tag. +# Remove if you want to appear on google search + +User-agent: * +Disallow: / + diff --git a/tests/backend/FakeResponse.php b/tests/backend/FakeResponse.php new file mode 100644 index 0000000..e9e06fb --- /dev/null +++ b/tests/backend/FakeResponse.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests; + +use Filegator\Kernel\Response; + +class FakeResponse extends Response +{ + public function send() + { + // do nothing + } +} diff --git a/tests/backend/FakeStreamedResponse.php b/tests/backend/FakeStreamedResponse.php new file mode 100644 index 0000000..05e4914 --- /dev/null +++ b/tests/backend/FakeStreamedResponse.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests; + +use Filegator\Kernel\StreamedResponse; + +class FakeStreamedResponse extends StreamedResponse +{ + public function send() + { + // do nothing + } +} diff --git a/tests/backend/Feature/AdminTest.php b/tests/backend/Feature/AdminTest.php new file mode 100644 index 0000000..43951b9 --- /dev/null +++ b/tests/backend/Feature/AdminTest.php @@ -0,0 +1,221 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Feature; + +use Tests\TestCase; + +/** + * @internal + */ +class AdminTest extends TestCase +{ + public function testOnlyAdminCanPerformUserActions() + { + $this->signOut(); + + $this->sendRequest('GET', '/listusers'); + $this->assertStatus(404); + + $this->sendRequest('POST', '/storeuser'); + $this->assertStatus(404); + + $this->sendRequest('POST', '/updateuser/test@example.com'); + $this->assertStatus(404); + + $this->sendRequest('POST', '/deleteuser/test@example.com'); + $this->assertStatus(404); + } + + public function testListUsers() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('GET', '/listusers'); + $this->assertOk(); + + $this->assertResponseJsonHas([ + 'data' => [ + [ + 'role' => 'guest', + 'permissions' => [], + 'homedir' => '/', + 'username' => 'guest', + 'name' => 'Guest', + ], + [ + 'role' => 'admin', + 'permissions' => [], + 'homedir' => '/', + 'username' => 'admin@example.com', + 'name' => 'Admin', + ], + [ + 'role' => 'user', + 'permissions' => [], + 'homedir' => '/john', + 'username' => 'john@example.com', + 'name' => 'John Doe', + ], + [ + 'role' => 'user', + 'permissions' => [], + 'homedir' => '/jane', + 'username' => 'jane@example.com', + 'name' => 'Jane Doe', + ], + ], + ]); + } + + public function testAddingNewUser() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/storeuser', [ + 'name' => 'Mike Test', + 'username' => 'mike@example.com', + 'role' => 'user', + 'permissions' => [], + 'password' => 'pass123', + 'homedir' => '/john', + ]); + $this->assertOk(); + + $this->assertResponseJsonHas([ + 'data' => [ + 'role' => 'user', + 'permissions' => [], + 'homedir' => '/john', + 'username' => 'mike@example.com', + 'name' => 'Mike Test', + ], + ]); + } + + public function testAddingNewUserValidation() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/storeuser', [ + 'name' => '', + 'username' => '', + 'role' => 'user', + 'permissions' => [], + 'password' => 'pass123', + 'homedir' => '', + ]); + $this->assertStatus(422); + + $this->sendRequest('POST', '/storeuser', [ + 'name' => 'Mike Test', + 'username' => 'mike@example.com', + 'role' => 'bear', + 'permissions' => ['xxx'], + 'password' => 'pass123', + 'homedir' => '/john', + ]); + $this->assertStatus(422); + } + + public function testUpdatingUser() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/updateuser/john@example.com', [ + 'name' => 'Johnny Doe', + 'username' => 'john2@example.com', + 'role' => 'admin', + 'permissions' => ['read', 'write'], + 'homedir' => '/jane', + ]); + $this->assertOk(); + + $this->assertResponseJsonHas([ + 'data' => [ + 'role' => 'admin', + 'permissions' => ['read', 'write'], + 'homedir' => '/jane', + 'username' => 'john2@example.com', + 'name' => 'Johnny Doe', + ], + ]); + } + + public function testDeletingUser() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/deleteuser/john@example.com'); + $this->assertOk(); + } + + public function testUpdatingNonExistingUser() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/updateuser/nonexisting@example.com'); + $this->assertStatus(422); + } + + public function testUpdatingUserValidation() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/updateuser/john@example.com', [ + 'name' => '', + 'username' => '', + 'homedir' => '', + ]); + $this->assertStatus(422); + + $this->sendRequest('POST', '/updateuser/john@example.com', [ + 'name' => 'something', + 'username' => 'something', + 'homedir' => '/', + 'permissions' => ['xxx', 'write'], + ]); + $this->assertStatus(422); + } + + public function testDeletingNonExistingUser() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/deleteuser/nonexisting@example.com'); + $this->assertStatus(422); + } + + public function testAddingOrEditingUserWithUsernameThatIsAlreadyTaken() + { + $this->signIn('admin@example.com', 'admin123'); + + $this->sendRequest('POST', '/storeuser', [ + 'name' => 'Mike Test', + 'username' => 'admin@example.com', + 'role' => 'user', + 'password' => '123', + 'permissions' => [], + 'homedir' => '/mike', + ]); + + $this->assertStatus(422); + + $this->sendRequest('POST', '/updateuser/admin@example.com', [ + 'name' => 'Admin', + 'username' => 'john@example.com', + 'role' => 'admin', + 'permissions' => [], + 'homedir' => '/', + ]); + + $this->assertStatus(422); + } +} diff --git a/tests/backend/Feature/AppTest.php b/tests/backend/Feature/AppTest.php new file mode 100644 index 0000000..5ba9298 --- /dev/null +++ b/tests/backend/Feature/AppTest.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Session\Session; +use Filegator\Services\Session\SessionStorageInterface; +use Tests\TestCase; + +/** + * @internal + */ +class AppTest extends TestCase +{ + public function testAppWithoutSession() + { + $app = $this->bootFreshApp(); + + $request = $app->resolve(Request::class); + $response = $app->resolve(Response::class); + $session = $app->resolve(SessionStorageInterface::class); + $auth = $app->resolve(AuthInterface::class); + + $this->assertNotNull($request); + $this->assertNotNull($response); + $this->assertNotNull($session); + $this->assertNull($auth->user()); + } + + public function testAppWithSession() + { + // first login request + $request1 = Request::create( + '?r=/login', + 'POST', + [], + [], + [], + [ + 'CONTENT_TYPE' => 'application/json', + 'HTTP_ACCEPT' => 'application/json', + ], + '{"username":"admin@example.com","password":"admin123"}' + ); + + $config = $this->getMockConfig(); + + $app1 = $this->bootFreshApp($config, $request1, null, true); + $prev_session = $request1->getSession(); + + // another request with previous session + $request2 = Request::create( + '?r=/', + 'GET', + ); + $request2->setSession($prev_session); + + $app2 = $this->bootFreshApp($config, $request2); + + $auth = $app2->resolve(AuthInterface::class); + + $this->assertNotNull($auth->user()); + } +} diff --git a/tests/backend/Feature/AuthTest.php b/tests/backend/Feature/AuthTest.php new file mode 100644 index 0000000..146913d --- /dev/null +++ b/tests/backend/Feature/AuthTest.php @@ -0,0 +1,145 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Feature; + +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Tests\TestCase; + +/** + * @internal + */ +class AuthTest extends TestCase +{ + public function testSuccessfulLogin() + { + $ret = $this->sendRequest('POST', '/login', [ + 'username' => 'john@example.com', + 'password' => 'john123', + ]); + + $this->assertOk(); + } + + public function testBadLogin() + { + $this->sendRequest('POST', '/login', [ + 'username' => 'fake', + 'password' => 'fake', + ]); + + $this->assertUnprocessable(); + } + + public function testAlreadyLoggedIn() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + $this->sendRequest('POST', '/login', ['username' => $username, 'password' => 'john123']); + + $this->assertStatus(404); + } + + public function testGetUser() + { + $user = 'john@example.com'; + $this->signIn($user, 'john123'); + + $this->sendRequest('GET', '/getuser'); + + $this->assertOk(); + $this->assertResponseJsonHas([ + 'data' => [ + 'username' => $user, + 'name' => 'John Doe', + 'role' => 'user', + 'homedir' => '/john', + ], + ]); + } + + public function testGetAdmin() + { + $admin = 'admin@example.com'; + $this->signIn($admin, 'admin123'); + + $this->sendRequest('GET', '/getuser'); + + $this->assertOk(); + $this->assertResponseJsonHas([ + 'data' => [ + 'username' => $admin, + 'name' => 'Admin', + 'role' => 'admin', + 'homedir' => '/', + ], + ]); + } + + public function testReceiveGuestIfNoUserIsLoggedIn() + { + $this->sendRequest('GET', '/getuser'); + + $this->assertOk(); + $this->assertResponseJsonHas([ + 'data' => [ + 'role' => 'guest', + ], + ]); + } + + public function testLogout() + { + $this->signIn('john@example.com', 'john123'); + $this->sendRequest('POST', '/logout'); + + $this->assertOk(); + } + + public function testResponseThrows404() + { + $request = Request::create( + '?r=/notfound', + 'GET', + ); + + $app = $this->bootFreshApp(null, $request); + + $response = $app->resolve(Response::class); + + $this->assertEquals($response->getStatusCode(), 404); + } + + public function testChangePassword() + { + $this->signIn('john@example.com', 'john123'); + $this->sendRequest('POST', '/changepassword', [ + 'oldpassword' => 'john123', + 'newpassword' => '', + ]); + $this->assertStatus(422); + + $this->signIn('john@example.com', 'john123'); + $this->sendRequest('POST', '/changepassword', [ + 'oldpassword' => 'wrongpass', + 'newpassword' => 'password123', + ]); + $this->assertStatus(422); + + $this->signIn('john@example.com', 'john123'); + $this->sendRequest('POST', '/changepassword', [ + 'oldpassword' => 'john123', + 'newpassword' => 'password123', + ]); + $this->assertOk(); + } +} diff --git a/tests/backend/Feature/FeatureTest.php b/tests/backend/Feature/FeatureTest.php new file mode 100644 index 0000000..83eacd5 --- /dev/null +++ b/tests/backend/Feature/FeatureTest.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Feature; + +use Tests\TestCase; + +/** + * @internal + */ +class FeatureTest extends TestCase +{ + public function testHome() + { + $this->sendRequest('GET', '/'); + + $this->assertOk(); + } + + public function testMethodNotAllowed() + { + $this->sendRequest('DELETE', '/'); + + $this->assertStatus(401); + } + + public function testNotFoundPage() + { + $this->sendRequest('GET', '/fakeroute'); + + $this->assertStatus(404); + } + + public function testUnprocessableRequest() + { + $this->sendRequest('POST', '/login', 'dddddd'); + + $this->assertUnprocessable(); + } + + public function testGetFrontendConfig() + { + $this->sendRequest('GET', '/getconfig'); + + $this->assertOk(); + $this->assertResponseJsonHas([ + 'data' => [ + 'app_name' => 'FileGator', + 'upload_max_size' => 2 * 1024 * 1024, + 'upload_chunk_size' => 1 * 1024 * 1024, + 'upload_simultaneous' => 3, + ], + ]); + } +} diff --git a/tests/backend/Feature/FilesTest.php b/tests/backend/Feature/FilesTest.php new file mode 100644 index 0000000..b380286 --- /dev/null +++ b/tests/backend/Feature/FilesTest.php @@ -0,0 +1,574 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Feature; + +use Tests\TestCase; + +/** + * @internal + */ +class FilesTest extends TestCase +{ + protected $timestamp; + + public function setUp(): void + { + $this->resetTempDir(); + + $this->timestamp = time(); + } + + public function tearDown(): void + { + $this->resetTempDir(); + } + + public function testGuestCannotListDirectories() + { + $this->signOut(); + + $this->sendRequest('POST', '/changedir', [ + 'to' => '/', + ]); + + $this->assertStatus(404); + + $this->sendRequest('POST', '/getdir', [ + 'to' => '/', + ]); + + $this->assertStatus(404); + } + + public function testUserCanChangeDir() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + mkdir(TEST_REPOSITORY.'/john'); + mkdir(TEST_REPOSITORY.'/john/johnsub'); + touch(TEST_REPOSITORY.'/john/john.txt', $this->timestamp); + + $this->sendRequest('POST', '/changedir', [ + 'to' => '/', + ]); + + $this->assertOk(); + + $this->assertResponseJsonHas([ + 'data' => [ + 'files' => [ + 0 => [ + 'type' => 'dir', + 'path' => '/johnsub', + 'name' => 'johnsub', + ], + 1 => [ + 'type' => 'file', + 'path' => '/john.txt', + 'name' => 'john.txt', + 'time' => $this->timestamp, + ], + ], + ], + ]); + } + + public function testUserCanListHisHomeDir() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + mkdir(TEST_REPOSITORY.'/john'); + mkdir(TEST_REPOSITORY.'/john/johnsub'); + touch(TEST_REPOSITORY.'/john/john.txt', $this->timestamp); + + $this->sendRequest('POST', '/getdir', [ + 'dir' => '/', + ]); + + $this->assertOk(); + + $this->assertResponseJsonHas([ + 'data' => [ + 'files' => [ + 0 => [ + 'type' => 'dir', + 'path' => '/johnsub', + 'name' => 'johnsub', + ], + 1 => [ + 'type' => 'file', + 'path' => '/john.txt', + 'name' => 'john.txt', + 'time' => $this->timestamp, + ], + ], + ], + ]); + } + + public function testDeleteItems() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + mkdir(TEST_REPOSITORY.'/john'); + mkdir(TEST_REPOSITORY.'/john/johnsub'); + touch(TEST_REPOSITORY.'/john/john.txt', $this->timestamp); + + $items = [ + 0 => [ + 'type' => 'dir', + 'path' => '/johnsub', + 'name' => 'johnsub', + 'time' => $this->timestamp, + ], + 1 => [ + 'type' => 'file', + 'path' => '/john.txt', + 'name' => 'john.txt', + 'time' => $this->timestamp, + ], + ]; + + $this->sendRequest('POST', '/deleteitems', [ + 'items' => $items, + ]); + + $this->assertOk(); + } + + public function testDownloadFile() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + mkdir(TEST_REPOSITORY.'/john'); + touch(TEST_REPOSITORY.'/john/john.txt', $this->timestamp); + + $path_encoded = base64_encode('john.txt'); + $this->sendRequest('GET', '/download/'.$path_encoded); + + $this->assertOk(); + } + + public function testGuestCannotDownloadFilesWithoutDownloadPermissions() + { + touch(TEST_REPOSITORY.'/test.txt', $this->timestamp); + + $path_encoded = base64_encode('test.txt'); + $this->sendRequest('GET', '/download/'.$path_encoded); + + $this->assertStatus(404); + } + + public function testDownloadFileOnlyWithPermissions() + { + // jane does not have download permissions + $username = 'jane@example.com'; + $this->signIn($username, 'jane123'); + + mkdir(TEST_REPOSITORY.'/jane'); + touch(TEST_REPOSITORY.'/jane/jane.txt', $this->timestamp); + + $path_encoded = base64_encode('jane.txt'); + $this->sendRequest('GET', '/download/'.$path_encoded); + + $this->assertStatus(404); + } + + public function testDownloadMissingFileThrowsRedirect() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + $path_encoded = base64_encode('missing.txt'); + $this->sendRequest('GET', '/download/'.$path_encoded); + + $this->assertStatus(302); + } + + public function testRenameJohnsFile() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + mkdir(TEST_REPOSITORY.'/john'); + touch(TEST_REPOSITORY.'/john/john.txt', $this->timestamp); + + $this->sendRequest('POST', '/renameitem', [ + 'from' => '/john.txt', + 'to' => '/john2.txt', + ]); + $this->assertOk(); + + $this->assertFileExists(TEST_REPOSITORY.'/john/john2.txt'); + $this->assertFileNotExists(TEST_REPOSITORY.'/john/john.txt'); + } + + public function testRenameMissingfileThrowsException() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + $this->expectException(\Exception::class); + + $this->sendRequest('POST', '/renameitem', [ + 'from' => 'missing.txt', + 'to' => 'john2.txt', + ]); + } + + public function testDeleteMissingItemsThrowsException() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + $items = [ + 0 => [ + 'type' => 'file', + 'path' => '/missing', + 'name' => 'missing', + 'time' => $this->timestamp, + ], + ]; + + $this->expectException(\Exception::class); + + $this->sendRequest('POST', '/deleteitems', [ + 'items' => $items, + ]); + } + + public function testCreateNewDirAndFileInside() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + mkdir(TEST_REPOSITORY.'/john'); + + $this->sendRequest('POST', '/createnew', [ + 'type' => 'dir', + 'name' => 'maximus', + ]); + $this->assertOk(); + + $this->sendRequest('POST', '/changedir', [ + 'to' => '/maximus/', + ]); + $this->assertOk(); + + $this->sendRequest('POST', '/createnew', [ + 'type' => 'file', + 'name' => 'samplefile.txt', + ]); + $this->assertOk(); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/john/maximus'); + $this->assertFileExists(TEST_REPOSITORY.'/john/maximus/samplefile.txt'); + } + + public function testCopyAdminFiles() + { + $username = 'admin@example.com'; + $this->signIn($username, 'admin123'); + + touch(TEST_REPOSITORY.'/a.txt', $this->timestamp); + touch(TEST_REPOSITORY.'/c.zip', $this->timestamp); + mkdir(TEST_REPOSITORY.'/sub'); + mkdir(TEST_REPOSITORY.'/sub/sub1'); + mkdir(TEST_REPOSITORY.'/john'); + mkdir(TEST_REPOSITORY.'/john/johnsub'); + + $items = [ + 0 => [ + 'type' => 'file', + 'path' => '/a.txt', + 'name' => 'a.txt', + 'time' => $this->timestamp, + ], + 1 => [ + 'type' => 'file', + 'path' => '/c.zip', + 'name' => 'c.zip', + 'time' => $this->timestamp, + ], + 2 => [ + 'type' => 'dir', + 'path' => '/sub', + 'name' => 'sub', + 'time' => $this->timestamp, + ], + ]; + + $this->sendRequest('POST', '/copyitems', [ + 'items' => $items, + 'destination' => '/john/johnsub/', + ]); + + $this->assertOk(); + + $this->assertFileExists(TEST_REPOSITORY.'/john/johnsub/a.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/john/johnsub/c.zip'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/john/johnsub/sub/'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/john/johnsub/sub/sub1'); + } + + public function testCopyInvalidFilesThrowsException() + { + $username = 'admin@example.com'; + $this->signIn($username, 'admin123'); + + $items = [ + 0 => [ + 'type' => 'file', + 'path' => '/missin.txt', + 'name' => 'missina.txt', + 'time' => $this->timestamp, + ], + ]; + + $this->expectException(\Exception::class); + + $this->sendRequest('POST', '/copyitems', [ + 'items' => $items, + 'destination' => '/john/johnsub/', + ]); + } + + public function testMoveFiles() + { + $username = 'admin@example.com'; + $this->signIn($username, 'admin123'); + + mkdir(TEST_REPOSITORY.'/john'); + touch(TEST_REPOSITORY.'/a.txt', $this->timestamp); + touch(TEST_REPOSITORY.'/b.txt', $this->timestamp); + + $items = [ + 0 => [ + 'type' => 'file', + 'path' => '/a.txt', + 'name' => 'a.txt', + 'time' => $this->timestamp, + ], + 1 => [ + 'type' => 'file', + 'path' => '/b.txt', + 'name' => 'b.txt', + 'time' => $this->timestamp, + ], + ]; + + $this->sendRequest('POST', '/moveitems', [ + 'items' => $items, + 'destination' => '/john', + ]); + + $this->assertOk(); + + $this->assertFileExists(TEST_REPOSITORY.'/john/a.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/john/b.txt'); + $this->assertFileNotExists(TEST_REPOSITORY.'/a.txt'); + $this->assertFileNotExists(TEST_REPOSITORY.'/b.txt'); + } + + public function testMoveDirsWithContent() + { + $username = 'admin@example.com'; + $this->signIn($username, 'admin123'); + + mkdir(TEST_REPOSITORY.'/sub'); + mkdir(TEST_REPOSITORY.'/sub/sub1'); + touch(TEST_REPOSITORY.'/sub/sub1/f.txt', $this->timestamp); + mkdir(TEST_REPOSITORY.'/jane'); + touch(TEST_REPOSITORY.'/jane/cookie.txt', $this->timestamp); + mkdir(TEST_REPOSITORY.'/john'); + + $items = [ + 0 => [ + 'type' => 'dir', + 'path' => '/sub', + 'name' => 'sub', + 'time' => $this->timestamp, + ], + 1 => [ + 'type' => 'dir', + 'path' => '/jane', + 'name' => 'jane', + 'time' => $this->timestamp, + ], + ]; + + $this->sendRequest('POST', '/moveitems', [ + 'items' => $items, + 'destination' => '/john', + ]); + + $this->assertOk(); + + $this->assertDirectoryNotExists(TEST_REPOSITORY.'/jane'); + $this->assertDirectoryNotExists(TEST_REPOSITORY.'/sub'); + $this->assertFileNotExists(TEST_REPOSITORY.'/sub/sub1/f.txt'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/john/jane'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/john/sub'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/john/sub/sub1'); + $this->assertFileExists(TEST_REPOSITORY.'/john/sub/sub1/f.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/john/jane/cookie.txt'); + } + + public function testZipFilesOnly() + { + $username = 'admin@example.com'; + $this->signIn($username, 'admin123'); + + touch(TEST_REPOSITORY.'/a.txt', $this->timestamp); + touch(TEST_REPOSITORY.'/b.txt', $this->timestamp); + mkdir(TEST_REPOSITORY.'/john'); + + $items = [ + 0 => [ + 'type' => 'file', + 'path' => '/a.txt', + 'name' => 'a.txt', + 'time' => $this->timestamp, + ], + 1 => [ + 'type' => 'file', + 'path' => '/b.txt', + 'name' => 'b.txt', + 'time' => $this->timestamp, + ], + ]; + + $this->sendRequest('POST', '/zipitems', [ + 'name' => 'compressed.zip', + 'items' => $items, + 'destination' => '/john', + ]); + + $this->assertOk(); + + $this->assertFileExists(TEST_REPOSITORY.'/a.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/b.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/john/compressed.zip'); + } + + public function testZipFilesAndDirectories() + { + $username = 'admin@example.com'; + $this->signIn($username, 'admin123'); + + touch(TEST_REPOSITORY.'/a.txt', $this->timestamp); + touch(TEST_REPOSITORY.'/b.txt', $this->timestamp); + mkdir(TEST_REPOSITORY.'/sub'); + mkdir(TEST_REPOSITORY.'/jane'); + + $items = [ + 0 => [ + 'type' => 'file', + 'path' => '/a.txt', + 'name' => 'a.txt', + 'time' => $this->timestamp, + ], + 1 => [ + 'type' => 'file', + 'path' => '/b.txt', + 'name' => 'b.txt', + 'time' => $this->timestamp, + ], + 2 => [ + 'type' => 'dir', + 'path' => '/sub', + 'name' => 'sub', + 'time' => $this->timestamp, + ], + ]; + + $this->sendRequest('POST', '/zipitems', [ + 'name' => 'compressed2.zip', + 'items' => $items, + 'destination' => '/jane', + ]); + + $this->assertOk(); + + $this->assertFileExists(TEST_REPOSITORY.'/a.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/b.txt'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/sub'); + $this->assertFileExists(TEST_REPOSITORY.'/jane/compressed2.zip'); + } + + public function testUnzipArchive() + { + $username = 'admin@example.com'; + $this->signIn($username, 'admin123'); + + copy(TEST_ARCHIVE, TEST_REPOSITORY.'/c.zip'); + mkdir(TEST_REPOSITORY.'/jane'); + + $this->sendRequest('POST', '/unzipitem', [ + 'item' => '/c.zip', + 'destination' => '/jane', + ]); + + $this->assertOk(); + + $this->assertFileExists(TEST_REPOSITORY.'/jane/one.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/jane/two.txt'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/jane/onetwo'); + $this->assertFileExists(TEST_REPOSITORY.'/jane/onetwo/three.txt'); + } + + public function testDownloadMultipleItems() + { + $username = 'john@example.com'; + $this->signIn($username, 'john123'); + + mkdir(TEST_REPOSITORY.'/john'); + touch(TEST_REPOSITORY.'/john/john.txt', $this->timestamp); + mkdir(TEST_REPOSITORY.'/john/johnsub'); + touch(TEST_REPOSITORY.'/john/johnsub/sub.txt', $this->timestamp); + mkdir(TEST_REPOSITORY.'/john/johnsub/sub2'); + + $items = [ + 0 => [ + 'type' => 'dir', + 'path' => '/johnsub', + 'name' => 'johnsub', + 'time' => $this->timestamp, + ], + 1 => [ + 'type' => 'file', + 'path' => '/john.txt', + 'name' => 'john.txt', + 'time' => $this->timestamp, + ], + ]; + + $this->sendRequest('POST', '/batchdownload', [ + 'items' => $items, + ]); + + $this->assertOk(); + + $res = json_decode($this->response->getContent()); + $uniqid = $res->data->uniqid; + + $this->sendRequest('GET', '/batchdownload', [ + 'uniqid' => $uniqid, + ]); + + $this->assertOk(); + } +} diff --git a/tests/backend/Feature/UploadTest.php b/tests/backend/Feature/UploadTest.php new file mode 100644 index 0000000..9abdca2 --- /dev/null +++ b/tests/backend/Feature/UploadTest.php @@ -0,0 +1,303 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Feature; + +use Symfony\Component\HttpFoundation\File\UploadedFile; +use Tests\TestCase; + +/** + * @internal + */ +class UploadTest extends TestCase +{ + public function setUp(): void + { + $this->resetTempDir(); + + parent::setUp(); + } + + public function testSimpleFileUpload() + { + $this->signIn('john@example.com', 'john123'); + + // create 5Kb dummy file + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, 0.5 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + + $data = [ + 'resumableChunkNumber' => 1, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 0.5 * 1024 * 1024, + 'resumableTotalChunks' => 1, + 'resumableTotalSize' => 0.5 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-SIMPLE-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + $this->sendRequest('GET', '/upload', $data, $files); + + $this->assertStatus(204); + + $this->sendRequest('POST', '/upload', $data, $files); + + $this->assertOk(); + + $this->sendRequest('POST', '/getdir', [ + 'dir' => '/', + ]); + + $this->assertOk(); + + $this->assertResponseJsonHas([ + 'data' => [ + 'files' => [ + 0 => [ + 'type' => 'file', + 'path' => '/sample.txt', + 'name' => 'sample.txt', + ], + ], + ], + ]); + } + + public function testFileUploadWithTwoChunks() + { + $this->signIn('john@example.com', 'john123'); + + // create 1MB dummy file part 1 + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, 1 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + + $data = [ + 'resumableChunkNumber' => 1, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 1 * 1024 * 1024, + 'resumableTotalChunks' => 2, + 'resumableTotalSize' => 1.5 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-MULTIPART-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + // part does not exists + $this->sendRequest('GET', '/upload', $data, $files); + $this->assertStatus(204); + + $this->sendRequest('POST', '/upload', $data, $files); + $this->assertOk(); + + // this part should already exists, no need to upload again + $this->sendRequest('GET', '/upload', $data, $files); + $this->assertOk(); + + // create 512Kb dummy file part 2 + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, 0.5 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + + $data = [ + 'resumableChunkNumber' => 2, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 0.5 * 1024 * 1024, + 'resumableTotalChunks' => 2, + 'resumableTotalSize' => 1.5 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-MULTIPART-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + // part does not exists + $this->sendRequest('GET', '/upload', $data, $files); + $this->assertStatus(204); + + $this->sendRequest('POST', '/upload', $data, $files); + $this->assertOk(); + } + + public function testUploadFileBiggerThanAllowed() + { + $this->signIn('john@example.com', 'john123'); + + // create 3MB dummy file + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, 3 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + + $data = [ + 'resumableChunkNumber' => 1, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 1 * 1024 * 1024, + 'resumableTotalChunks' => 1, + 'resumableTotalSize' => 1 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-FAILED-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + $this->sendRequest('POST', '/upload', $data, $files); + + $this->assertStatus(422); + } + + public function testUploadFileBiggerThanAllowedUsingChunks() + { + $this->signIn('john@example.com', 'john123'); + + // create 1MB dummy file + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, 1 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + + $data = [ + 'resumableChunkNumber' => 1, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 1 * 1024 * 1024, + 'resumableTotalChunks' => 3, + 'resumableTotalSize' => 2 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-FAILED2-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + $this->sendRequest('POST', '/upload', $data, $files); + $this->assertOk(); + + // create 512Kb dummy file + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, .5 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + $data = [ + 'resumableChunkNumber' => 2, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 0.5 * 1024 * 1024, + 'resumableTotalChunks' => 3, + 'resumableTotalSize' => 2 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-FAILED2-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + $this->sendRequest('POST', '/upload', $data, $files); + $this->assertOk(); + + // create 1MB dummy file + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, 1 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + $data = [ + 'resumableChunkNumber' => 3, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 1 * 1024 * 1024, + 'resumableTotalChunks' => 3, + 'resumableTotalSize' => 2 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-FAILED2-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + $this->sendRequest('POST', '/upload', $data, $files); + $this->assertStatus(422); + + // create 1MB dummy file + $fp = fopen(TEST_FILE, 'w'); + fseek($fp, 1 * 1024 * 1024 - 1, SEEK_CUR); + fwrite($fp, 'a'); + fclose($fp); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + $data = [ + 'resumableChunkNumber' => 3, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 1 * 1024 * 1024, + 'resumableTotalChunks' => 3, + 'resumableTotalSize' => 2 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-FAILED2-TEST', + 'resumableFilename' => 'sample.txt', + 'resumableRelativePath' => '/', + ]; + + $this->sendRequest('POST', '/upload', $data, $files); + $this->assertStatus(422); + } + + public function testFileUploadWithBadName() + { + $this->signIn('john@example.com', 'john123'); + + $files = ['file' => new UploadedFile(TEST_FILE, 'sample.txt', 'text/plain', null, true)]; + + $data = [ + 'resumableChunkNumber' => 1, + 'resumableChunkSize' => 1048576, + 'resumableCurrentChunkSize' => 0.5 * 1024 * 1024, + 'resumableTotalChunks' => 1, + 'resumableTotalSize' => 0.5 * 1024 * 1024, + 'resumableType' => 'text/plain', + 'resumableIdentifier' => 'CHUNKS-SIMPLE-TEST', + 'resumableFilename' => "../\\s\"u<:>pe////rm?*|an\\.t\txt../;", + 'resumableRelativePath' => '/', + ]; + + $this->sendRequest('POST', '/upload', $data, $files); + + $this->assertOk(); + + $this->sendRequest('POST', '/getdir', [ + 'dir' => '/', + ]); + + $this->assertResponseJsonHas([ + 'data' => [ + 'files' => [ + 0 => [ + 'type' => 'file', + 'path' => '/..--s-u---pe----rm---an-.t-xt..--', + 'name' => '..--s-u---pe----rm---an-.t-xt..--', + ], + ], + ], + ]); + } +} diff --git a/tests/backend/MockUsers.php b/tests/backend/MockUsers.php new file mode 100644 index 0000000..31373f8 --- /dev/null +++ b/tests/backend/MockUsers.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests; + +use Filegator\Services\Auth\Adapters\JsonFile; +use Filegator\Services\Auth\AuthInterface; +use Filegator\Services\Auth\User; +use Filegator\Services\Service; + +class MockUsers extends JsonFile implements Service, AuthInterface +{ + private $users_array = []; + + public function init(array $config = []) + { + $this->addMockUsers(); + } + + protected function getUsers(): array + { + return $this->users_array; + } + + protected function saveUsers(array $users) + { + return $this->users_array = $users; + } + + private function addMockUsers() + { + $guest = new User(); + $guest->setRole('guest'); + $guest->setHomedir('/'); + $guest->setUsername('guest'); + $guest->setName('Guest'); + $guest->setPermissions([]); + + $admin = new User(); + $admin->setRole('admin'); + $admin->setHomedir('/'); + $admin->setUsername('admin@example.com'); + $admin->setName('Admin'); + $admin->setPermissions(['read', 'write', 'upload', 'download', 'batchdownload', 'zip']); + + $john = new User(); + $john->setRole('user'); + $john->setHomedir('/john'); + $john->setUsername('john@example.com'); + $john->setName('John Doe'); + $john->setPermissions(['read', 'write', 'upload', 'download', 'batchdownload']); + + $jane = new User(); + $jane->setRole('user'); + $jane->setHomedir('/jane'); + $jane->setUsername('jane@example.com'); + $jane->setName('Jane Doe'); + $jane->setPermissions(['read', 'write']); + + $this->add($guest, ''); + $this->add($admin, 'admin123'); + $this->add($john, 'john123'); + $this->add($jane, 'jane123'); + } +} diff --git a/tests/backend/TestCase.php b/tests/backend/TestCase.php new file mode 100644 index 0000000..7ee7a20 --- /dev/null +++ b/tests/backend/TestCase.php @@ -0,0 +1,136 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests; + +use Filegator\App; +use Filegator\Config\Config; +use Filegator\Container\Container; +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\Session\Session; +use PHPUnit\Framework\TestCase as BaseTestCase; +use Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage; + +define('APP_ENV', 'test'); + +define('TEST_DIR', __DIR__.'/tmp'); +define('TEST_REPOSITORY', TEST_DIR.'/repository'); +define('TEST_ARCHIVE', TEST_DIR.'/testarchive.zip'); +define('TEST_FILE', TEST_DIR.'/sample.txt'); +define('TEST_TMP_PATH', TEST_DIR.'/temp/'); + +/** + * @internal + * @coversNothing + */ +class TestCase extends BaseTestCase +{ + use TestResponse; + + public $response; + + public $previous_session = false; + + protected $auth = false; + + public function bootFreshApp($config = null, $request = null, $response = null, $mock_users = false) + { + $config = $config ?: $this->getMockConfig(); + $request = $request ?: new Request(); + + return new App($config, $request, new FakeResponse(), new FakeStreamedResponse(), new Container()); + } + + public function sendRequest($method, $uri, $data = null, $files = []) + { + $fakeRequest = Request::create( + '?r='.$uri, + $method, + [], + [], + $files, + [ + 'CONTENT_TYPE' => 'application/json', + 'HTTP_ACCEPT' => 'application/json', + ], + json_encode($data) + ); + + if ($this->previous_session) { + $fakeRequest->setSession($this->previous_session); + } else { + $sessionStorage = new MockFileSessionStorage(); + $fakeRequest->setSession(new Session($sessionStorage)); + } + + $app = $this->bootFreshApp(null, $fakeRequest, null, true); + + $this->response = $app->resolve(Response::class); + + return $app; + } + + public function signIn($username, $password) + { + $this->signOut(); + + $app = $this->sendRequest('POST', '/login', [ + 'username' => $username, + 'password' => $password, + ]); + + $request = $app->resolve(Request::class); + $this->previous_session = $request->getSession(); + } + + public function signOut() + { + $this->previous_session = false; + } + + public function getMockConfig() + { + $config = require __DIR__.'/configuration.php'; + + return new Config($config); + } + + public function delTree($dir) + { + if (! is_dir($dir)) { + return; + } + $files = array_diff(scandir($dir), ['.', '..']); + foreach ($files as $file) { + (is_dir("{$dir}/{$file}")) ? $this->delTree("{$dir}/{$file}") : unlink("{$dir}/{$file}"); + } + + return rmdir($dir); + } + + public function resetTempDir() + { + $this->delTree(TEST_TMP_PATH); + $this->delTree(TEST_REPOSITORY); + + mkdir(TEST_TMP_PATH); + mkdir(TEST_REPOSITORY); + } + + public function invokeMethod(&$object, $methodName, array $parameters = []) + { + $reflection = new \ReflectionClass(get_class($object)); + $method = $reflection->getMethod($methodName); + $method->setAccessible(true); + + return $method->invokeArgs($object, $parameters); + } +} diff --git a/tests/backend/TestResponse.php b/tests/backend/TestResponse.php new file mode 100644 index 0000000..2a6dd68 --- /dev/null +++ b/tests/backend/TestResponse.php @@ -0,0 +1,159 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests; + +use PHPUnit\Framework\Constraint\ArraySubset; +use PHPUnit\Util\InvalidArgumentHelper; + +trait TestResponse +{ + public function assertResponseJsonHas(array $data, $strict = false) + { + self::assertArraySubset( + $data, + $this->decodeResponseJson(), + $strict, + $this->assertJsonMessage($data) + ); + + return $this; + } + + public function assertResponseJsonFragment(array $data) + { + $actual = json_encode((array) $this->decodeResponseJson()); + + foreach ($data as $key => $value) { + $expected = $this->jsonSearchStrings($key, $value); + + $this->assertTrue( + $this->str_contains($actual, $expected), + 'Unable to find JSON fragment: '.PHP_EOL.PHP_EOL. + '['.json_encode([$key => $value]).']'.PHP_EOL.PHP_EOL. + 'within'.PHP_EOL.PHP_EOL. + "[{$actual}]." + ); + } + + return $this; + } + + public function decodeResponseJson($key = null) + { + $decodedResponse = json_decode($this->response->getContent(), true); + + if (is_null($decodedResponse) || $decodedResponse === false) { + $this->fail('Invalid JSON was returned from the route.'); + } + + return $decodedResponse; + } + + public static function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void + { + if (! (\is_array($subset) || $subset instanceof ArrayAccess)) { + throw InvalidArgumentHelper::factory( + 1, + 'array or ArrayAccess' + ); + } + + if (! (\is_array($array) || $array instanceof ArrayAccess)) { + throw InvalidArgumentHelper::factory( + 2, + 'array or ArrayAccess' + ); + } + + $constraint = new ArraySubset($subset, $checkForObjectIdentity); + + static::assertThat($array, $constraint, $message); + } + + public function getStatusCode() + { + return $this->response->getStatusCode(); + } + + public function assertStatus($status) + { + $this->assertEquals( + $status, + $this->getStatusCode() + ); + + return $this; + } + + public function assertOk() + { + $this->assertTrue( + $this->isOk(), + 'Response status code ['.$this->getStatusCode().'] does not match expected 200 status code.' + ); + + return $this; + } + + public function assertUnprocessable() + { + $this->assertTrue( + $this->isUnprocessable(), + 'Response status code ['.$this->getStatusCode().'] does not match expected 422 status code.' + ); + + return $this; + } + + public function isOk(): bool + { + return 200 === $this->getStatusCode(); + } + + public function isUnprocessable(): bool + { + return 422 === $this->getStatusCode(); + } + + public function str_contains($haystack, $needles) + { + foreach ((array) $needles as $needle) { + if ($needle !== '' && mb_strpos($haystack, $needle) !== false) { + return true; + } + } + + return false; + } + + protected function assertJsonMessage(array $data) + { + $expected = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); + + $actual = json_encode($this->decodeResponseJson(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); + + return 'Unable to find JSON: '.PHP_EOL.PHP_EOL. + "[{$expected}]".PHP_EOL.PHP_EOL. + 'within response JSON:'.PHP_EOL.PHP_EOL. + "[{$actual}].".PHP_EOL.PHP_EOL; + } + + protected function jsonSearchStrings($key, $value) + { + $needle = substr(json_encode([$key => $value]), 1, -1); + + return [ + $needle.']', + $needle.'}', + $needle.',', + ]; + } +} diff --git a/tests/backend/Unit/ArchiverTest.php b/tests/backend/Unit/ArchiverTest.php new file mode 100644 index 0000000..874ef82 --- /dev/null +++ b/tests/backend/Unit/ArchiverTest.php @@ -0,0 +1,132 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Services\Archiver\Adapters\ZipArchiver; +use Filegator\Services\Storage\Filesystem; +use Filegator\Services\Tmpfs\Adapters\Tmpfs; +use Tests\TestCase; + +/** + * @internal + */ +class ArchiverTest extends TestCase +{ + protected $archiver; + + public function setUp(): void + { + $tmpfs = new Tmpfs(); + $tmpfs->init([ + 'path' => TEST_TMP_PATH, + 'gc_probability_perc' => 10, + 'gc_older_than' => 60 * 60 * 24 * 2, // 2 days + ]); + + $this->archiver = new ZipArchiver($tmpfs); + + parent::setUp(); + } + + public function testCreatingArchive() + { + $storage = new Filesystem(); + $storage->init([ + 'separator' => '/', + 'filesystem_adapter' => 'nulladapter', + 'adapters' => [ + 'nulladapter' => function () { + return new \League\Flysystem\Adapter\NullAdapter(); + }, + ], + ]); + + $uniqid = $this->archiver->createArchive($storage); + + $this->assertNotNull($uniqid); + $this->assertFileExists(TEST_TMP_PATH.$uniqid); + } + + public function testAddingDirectoryWithFilesAndSubdir() + { + $storage = new Filesystem(); + $storage->init([ + 'separator' => '/', + 'filesystem_adapter' => 'memoryadapter', + 'adapters' => [ + 'memoryadapter' => function () { + return new \League\Flysystem\Memory\MemoryAdapter(); + }, + ], + ]); + + $storage->createDir('/', 'test'); + $storage->createDir('/test', 'sub'); + $storage->createFile('/test', 'file1.txt'); + $storage->createFile('/test', 'file2.txt'); + + $name = $this->archiver->createArchive($storage); + $this->archiver->addDirectoryFromStorage('/test'); + $this->archiver->closeArchive(); + + $this->assertGreaterThan(0, filesize(TEST_TMP_PATH.$name)); + } + + public function testUploadingArchiveToStorage() + { + $storage = new Filesystem(); + $storage->init([ + 'separator' => '/', + 'filesystem_adapter' => 'memoryadapter', + 'adapters' => [ + 'memoryadapter' => function () { + return new \League\Flysystem\Memory\MemoryAdapter(); + }, + ], + ]); + + $storage->createDir('/', 'test'); + $storage->createDir('/test', 'sub'); + $storage->createFile('/test', 'file1.txt'); + $storage->createFile('/test', 'file2.txt'); + + $name = $this->archiver->createArchive($storage); + $this->archiver->addDirectoryFromStorage('/test'); + $this->archiver->storeArchive('/destination', 'myarchive.zip'); + + $this->assertFileNotExists(TEST_TMP_PATH.$name); + } + + public function testUncompressingArchiveFromStorage() + { + $storage = new Filesystem(); + $storage->init([ + 'separator' => '/', + 'filesystem_adapter' => 'memoryadapter', + 'adapters' => [ + 'memoryadapter' => function () { + return new \League\Flysystem\Memory\MemoryAdapter(); + }, + ], + ]); + + $stream = fopen(TEST_ARCHIVE, 'r'); + $storage->store('/', 'testarchive.zip', $stream); + fclose($stream); + + $storage->createDir('/', 'result'); + + $this->archiver->uncompress('/testarchive.zip', '/result', $storage); + + $this->assertStringContainsString('testarchive', (json_encode($storage->getDirectoryCollection('/')))); + $this->assertStringContainsString('onetwo', (json_encode($storage->getDirectoryCollection('/result')))); + } +} diff --git a/tests/backend/Unit/Auth/AuthTest.php b/tests/backend/Unit/Auth/AuthTest.php new file mode 100644 index 0000000..5c2fc06 --- /dev/null +++ b/tests/backend/Unit/Auth/AuthTest.php @@ -0,0 +1,226 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit\Auth; + +use Filegator\Services\Auth\User; +use Tests\TestCase; + +abstract class AuthTest extends TestCase +{ + public $auth; + + public function setUp(): void + { + $this->setAuth(); + + parent::setUp(); + } + + abstract public function setAuth(); + + public function addAdmin($password = '123456') + { + $admin = new User(); + $admin->setRole('admin'); + $admin->setHomedir('/'); + $admin->setUsername('admin@example.com'); + $admin->setName('Admin'); + + return $this->auth->add($admin, $password); + } + + public function addMike($password = '98747') + { + $mike = new User(); + $mike->setRole('user'); + $mike->setHomedir('/'); + $mike->setUsername('mike@example.com'); + $mike->setName('Mike'); + + return $this->auth->add($mike, $password); + } + + public function addGuest() + { + $guest = new User(); + $guest->setRole('guest'); + $guest->setHomedir('/'); + $guest->setUsername('guest'); + $guest->setName('Guest'); + + return $this->auth->add($guest, ''); + } + + public function testWeCanFindAUser() + { + $admin = $this->addAdmin(); + + $user = $this->auth->find('admin@example.com'); + + $this->assertTrue($user->isAdmin()); + } + + public function testWeCanAddAUser() + { + $mike = $this->addMike(); + + $user = $this->auth->find('mike@example.com'); + $this->assertEquals($user, $mike); + } + + public function testWeCanUpdateExistingUser() + { + $this->addAdmin(); + $user = $this->auth->find('admin@example.com'); + $this->assertNotNull($user); + + $user->setName('Jonny B'); + $user->setHomeDir('/jonnyshome'); + $user->setUsername('jonny@example.com'); + $user->setRole('user'); + + $updated_user = $this->auth->update('admin@example.com', $user); + + $this->assertEquals($updated_user->getName(), 'Jonny B'); + $this->assertEquals($updated_user->getHomeDir(), '/jonnyshome'); + $this->assertEquals($updated_user->getUsername(), 'jonny@example.com'); + $this->assertTrue($updated_user->isUser()); + } + + public function testWeCanAuthenticateUser() + { + $admin = $this->addAdmin('test123'); + + $auth_attempt1 = $this->auth->authenticate('admin@example.com', 'test123'); + $auth_user = $this->auth->user(); + $this->assertEquals($auth_user->getUsername(), $admin->getUsername()); + + $this->assertFalse($this->auth->authenticate('test123@example.com', 'xxxxxx')); + } + + public function testWeCanForgetUser() + { + $admin = $this->addAdmin('test123'); + + $this->auth->authenticate('admin@example.com', 'test123'); + $auth_user = $this->auth->user(); + $this->assertEquals($auth_user->getUsername(), $admin->getUsername()); + + $this->auth->forget(); + + $auth_user = $this->auth->user(); + $this->assertEquals($auth_user, null); + } + + public function testWeCanUpdateUsersPassword() + { + $admin = $this->addAdmin('test123'); + + $this->auth->update('admin@example.com', $admin, 'newpassword'); + + $this->assertFalse($this->auth->authenticate('test123@example.com', 'test123')); + + $auth_attempt1 = $this->auth->authenticate('admin@example.com', 'newpassword'); + $auth_user = $this->auth->user(); + + $this->assertEquals($auth_user->getUsername(), $admin->getUsername()); + } + + public function testWeCanDeleteUser() + { + $admin = $this->addAdmin(); + $find = $this->auth->find('admin@example.com'); + $this->assertNotNull($find); + + $this->auth->delete($admin); + $find = $this->auth->find('admin@example.com'); + $this->assertNull($find); + } + + public function testWeCannotUpdateNonExistingUser() + { + $this->expectException(\Exception::class); + + $user = new User(); + $user->setRole('user'); + $user->setHomedir('/'); + $user->setUsername('tim@example.com'); + $user->setName('Tim'); + + $this->auth->update('somebody@example.com', $user); + } + + public function testWeCannotDeleteNonExistingUser() + { + $user = new User(); + $user->setRole('user'); + $user->setHomedir('/'); + $user->setUsername('tim@example.com'); + $user->setName('Tim'); + + $this->expectException(\Exception::class); + + $this->auth->delete($user); + } + + public function testWeCannotAddUserWithTheSameUsername() + { + $this->addAdmin(); + + $second_admin = new User(); + $second_admin->setRole('user'); + $second_admin->setHomedir('/'); + $second_admin->setUsername('admin@example.com'); + $second_admin->setName('Admin2'); + + $this->expectException(\Exception::class); + + $updated_user = $this->auth->add($second_admin, 'pass444'); + } + + public function testWeCannotEditUserAndSetUsernameThatIsAlreadyTaken() + { + $this->addMike(); + $this->addAdmin(); + $user = $this->auth->find('mike@example.com'); + $this->assertNotNull($user); + + $user->setName('Jonny B'); + $user->setHomeDir('/jonnyshome'); + $user->setUsername('admin@example.com'); + $user->setRole('user'); + + $this->expectException(\Exception::class); + $updated_user = $this->auth->update('mike@example.com', $user); + } + + public function testNoGuestException() + { + $this->expectException(\Exception::class); + $guest = $this->auth->getGuest(); + } + + public function testGetGuest() + { + $this->addGuest(); + $guest = $this->auth->getGuest(); + + $this->assertNotNull($guest); + } + + public function testGetAllUsers() + { + $this->addAdmin(); + $this->addMike(); + + $this->assertEquals($this->auth->allUsers()->length(), 2); + } +} diff --git a/tests/backend/Unit/Auth/DatabaseAuthTest.php b/tests/backend/Unit/Auth/DatabaseAuthTest.php new file mode 100644 index 0000000..ca76efe --- /dev/null +++ b/tests/backend/Unit/Auth/DatabaseAuthTest.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit\Auth; + +use Filegator\Kernel\Request; +use Filegator\Services\Auth\Adapters\Database; +use Filegator\Services\Session\Adapters\SessionStorage; + +/** + * @internal + */ +class DatabaseAuthTest extends AuthTest +{ + protected $conn; + + public function setAuth() + { + $session = new SessionStorage(new Request()); + $session->init([ + 'session_handler' => 'mockfilesession', + 'available' => [ + 'mockfilesession' => function () { + return new \Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage(); + }, + ], + ]); + + $this->auth = new Database($session); + $this->auth->init([ + 'driver' => 'pdo', + 'dsn' => 'sqlite::memory:', + 'database' => 'users', + ]); + + $this->conn = $this->auth->getConnection(); + + $this->conn->query('DROP TABLE IF EXISTS [users]'); + $this->conn->query('CREATE TABLE [users] ( + [id] INTEGER PRIMARY KEY NOT NULL, + [username] VARCHAR(255) NOT NULL, + [name] VARCHAR(255) NOT NULL, + [role] VARCHAR(20) NOT NULL, + [permissions] VARCHAR(100) NOT NULL, + [homedir] VARCHAR(1000) NOT NULL, + [password] VARCHAR(255) NOT NULL + + )'); + $ret = $this->conn->fetch('SELECT * FROM users WHERE username = ?', 'admin'); + } +} diff --git a/tests/backend/Unit/Auth/JsonAuthTest.php b/tests/backend/Unit/Auth/JsonAuthTest.php new file mode 100644 index 0000000..30dd9c2 --- /dev/null +++ b/tests/backend/Unit/Auth/JsonAuthTest.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit\Auth; + +use Filegator\Kernel\Request; +use Filegator\Services\Auth\Adapters\JsonFile; +use Filegator\Services\Session\Adapters\SessionStorage; + +/** + * @internal + */ +class JsonFileTest extends AuthTest +{ + private $mock_file = TEST_DIR.'/mockusers.json'; + + public function tearDown(): void + { + @unlink($this->mock_file); + @unlink($this->mock_file.'.blank'); + } + + public function setAuth() + { + @unlink($this->mock_file); + @touch($this->mock_file.'.blank'); + + $session = new SessionStorage(new Request()); + $session->init([ + 'session_handler' => 'mockfilesession', + 'available' => [ + 'mockfilesession' => function () { + return new \Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage(); + }, + ], + ]); + + $this->auth = new JsonFile($session); + $this->auth->init([ + 'file' => $this->mock_file, + ]); + } +} diff --git a/tests/backend/Unit/CollectionTest.php b/tests/backend/Unit/CollectionTest.php new file mode 100644 index 0000000..452d6bb --- /dev/null +++ b/tests/backend/Unit/CollectionTest.php @@ -0,0 +1,115 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Services\Auth\User; +use Filegator\Services\Auth\UsersCollection; +use Filegator\Services\Storage\DirectoryCollection; +use Filegator\Utils\Collection; +use Tests\TestCase; + +/** + * @internal + */ +class CollectionTest extends TestCase +{ + public function testAddToCollection() + { + $mock = $this->getMockForTrait(Collection::class); + $mock->add('one'); + $mock->add('two'); + + $this->assertEquals($mock->length(), 2); + } + + public function testDeleteFromCollection() + { + $mock = $this->getMockForTrait(Collection::class); + $mock->add('one'); + $mock->delete('one'); + + $this->assertEquals($mock->length(), 0); + } + + public function testSort() + { + $mock = $this->getMockForTrait(Collection::class); + $mock->add(['val' => 'b']); + $mock->add(['val' => 'a']); + $mock->add(['val' => 'c']); + + $this->assertEquals($mock->all()[0]['val'], 'b'); + + $mock->sortByValue('val'); + + $this->assertEquals($mock->all()[0]['val'], 'a'); + + $mock->sortByValue('val', true); + + $this->assertEquals($mock->all()[0]['val'], 'c'); + } + + public function testUsersCollection() + { + $mock = new UsersCollection(); + + $user1 = new User(); + $user2 = new User(); + $user3 = new User(); + + $mock->addUser($user1); + $mock->addUser($user2); + $mock->addUser($user3); + + $this->assertEquals($mock->length(), 3); + } + + public function testUserSerialization() + { + $mock = new UsersCollection(); + $mock->add(['val' => 'b']); + $mock->add(['val' => 'a']); + $mock->add(['val' => 'c']); + + $json = json_encode($mock); + + $this->assertEquals($json, '[{"val":"b"},{"val":"a"},{"val":"c"}]'); + } + + public function testDirectoryCollection() + { + $dir = new DirectoryCollection('/sub1/sub2'); + + $dir->addFile('back', '/sub1', '..', 0, 1558942228); + $dir->addFile('file', '/sub1/sub2/test.txt', 'test.txt', 30000, 1558942228); + $dir->addFile('file', '/sub1/sub2/test2.txt', 'test.txt', 30000, 1558942228); + $dir->addFile('dir', '/sub1/sub2/sub3', 'sub3', 0, 1558942228); + + $json = json_encode($dir); + + $this->assertEquals($json, '{"location":"\/sub1\/sub2","files":[{"type":"back","path":"\/sub1","name":"..","size":0,"time":1558942228},{"type":"dir","path":"\/sub1\/sub2\/sub3","name":"sub3","size":0,"time":1558942228},{"type":"file","path":"\/sub1\/sub2\/test.txt","name":"test.txt","size":30000,"time":1558942228},{"type":"file","path":"\/sub1\/sub2\/test2.txt","name":"test.txt","size":30000,"time":1558942228}]}'); + + $this->expectException(\Exception::class); + $dir->addFile('badType', 'aaa', 'aa', 0, 1558942228); + } + + public function testUserCollection() + { + $user = new UsersCollection(); + + $user->addUser(new User()); + $user->addUser(new User()); + + $json = json_encode($user); + + $this->assertEquals($json, '[{"role":"guest","permissions":[],"homedir":"","username":"","name":""},{"role":"guest","permissions":[],"homedir":"","username":"","name":""}]'); + } +} diff --git a/tests/backend/Unit/ConfigTest.php b/tests/backend/Unit/ConfigTest.php new file mode 100644 index 0000000..889e1f5 --- /dev/null +++ b/tests/backend/Unit/ConfigTest.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Config\Config; +use Tests\TestCase; + +/** + * @internal + */ +class ConfigTest extends TestCase +{ + public function testGettingAnItemFromConfigUsingDotNotation() + { + $sample = [ + 'test' => 'something', + 'test2' => [ + 'deep' => 123, + ], + 'test3' => [ + 'sub' => [ + 'subsub' => 2, + ], + ], + ]; + + $config = new Config($sample); + + $this->assertEquals($config->get(), $sample); + $this->assertEquals($config->get('test'), 'something'); + $this->assertEquals($config->get('test2.deep'), 123); + $this->assertEquals($config->get('test3.sub.subsub'), 2); + $this->assertEquals($config->get('not-found'), null); + $this->assertEquals($config->get('not-found', 'default'), 'default'); + $this->assertEquals($config->get('not.found', 'default'), 'default'); + } +} diff --git a/tests/backend/Unit/FilesystemTest.php b/tests/backend/Unit/FilesystemTest.php new file mode 100644 index 0000000..718672e --- /dev/null +++ b/tests/backend/Unit/FilesystemTest.php @@ -0,0 +1,747 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Services\Storage\Filesystem; +use Tests\TestCase; + +/** + * @internal + */ +class FilesystemTest extends TestCase +{ + protected $storage; + + protected $timestamp; + + protected $separator = '/'; + + public function setUp(): void + { + $this->resetTempDir(); + + $this->timestamp = time(); + + $this->storage = new Filesystem(); + $this->storage->init([ + 'separator' => '/', + 'filesystem_adapter' => 'localfilesystem', + 'adapters' => [ + 'localfilesystem' => function () { + return new \League\Flysystem\Adapter\Local( + TEST_REPOSITORY + ); + }, + ], + ]); + } + + public function tearDown(): void + { + $this->resetTempDir(); + } + + public function testGetDirectyoryFileCount() + { + $this->storage->createFile('/', '1.txt'); + $this->storage->createFile('/', '2.txt'); + $this->storage->createFile('/', '3.txt'); + $this->storage->createFile('/', '4.txt'); + $this->storage->createFile('/', '5.txt'); + $this->storage->createDir('/', 'tmp'); + + $ret = $this->storage->getDirectoryCollection('/'); + + $ret_array = json_decode(json_encode($ret), true); + + $this->assertCount(6, $ret_array['files']); + } + + public function testGetSubDirectyoryFileCount() + { + $this->storage->createDir('/', 'sub'); + $this->storage->createFile('/sub', '1.txt'); + $this->storage->createFile('/sub', '2.txt'); + $this->storage->createFile('/sub', '3.txt'); + $this->storage->createFile('/sub', '4.txt'); + $this->storage->createDir('/sub', 'deep'); + $this->storage->createFile('/sub/deep', '1.txt'); + + $ret = $this->storage->getDirectoryCollection('/sub'); + + $ret_array = json_decode(json_encode($ret), true); + + // back + 4 files + 1 deep dir + $this->assertCount(6, $ret_array['files']); + + $ret = $this->storage->getDirectoryCollection('/sub/deep'); + + $ret_array = json_decode(json_encode($ret), true); + + // back + 1 file + $this->assertCount(2, $ret_array['files']); + } + + public function testInvalidDirReturnsBackLinkOnly() + { + $ret = $this->storage->getDirectoryCollection('/etc'); + + $this->assertJsonStringEqualsJsonString(json_encode($ret), json_encode([ + 'location' => '/etc', + 'files' => [ + 0 => [ + 'type' => 'back', + 'path' => '/', + 'name' => '..', + 'size' => 0, + 'time' => 0, + ], + ], + ])); + } + + public function testListSubDirContents() + { + $this->storage->createDir('/', 'john'); + $this->storage->createDir('/john', 'johnsub'); + $this->storage->createFile('/john/johnsub', 'john2.txt'); + + $ret = $this->storage->getDirectoryCollection('/john/johnsub'); + $ret->resetTimestamps(); + + $this->assertJsonStringEqualsJsonString(json_encode($ret), json_encode([ + 'location' => '/john/johnsub', + 'files' => [ + 0 => [ + 'type' => 'back', + 'path' => '/john', + 'name' => '..', + 'size' => 0, + 'time' => 0, + ], + 1 => [ + 'type' => 'file', + 'path' => '/john/johnsub/john2.txt', + 'name' => 'john2.txt', + 'size' => 0, + 'time' => 0, + ], + ], + ])); + } + + public function testHomeDirContentsUsingPathPrefix() + { + $this->storage->setPathPrefix('/john'); + $this->storage->createDir('/', 'johnsub'); + $this->storage->createFile('/', 'john.txt'); + + $ret = $this->storage->getDirectoryCollection('/'); + $ret->resetTimestamps(-1); + + $this->assertJsonStringEqualsJsonString(json_encode($ret), json_encode([ + 'location' => '/', + 'files' => [ + 0 => [ + 'type' => 'dir', + 'path' => '/johnsub', + 'name' => 'johnsub', + 'size' => 0, + 'time' => -1, + ], + 1 => [ + 'type' => 'file', + 'path' => '/john.txt', + 'name' => 'john.txt', + 'size' => 0, + 'time' => -1, + ], + ], + ])); + } + + public function testSubDirContentsUsingPathPrefix() + { + $this->storage->setPathPrefix('/john'); + $this->storage->createDir('/', 'johnsub'); + $this->storage->createFile('/johnsub', 'john2.txt'); + + $ret = $this->storage->getDirectoryCollection('/johnsub'); + + $ret->resetTimestamps(); + + $this->assertJsonStringEqualsJsonString(json_encode($ret), json_encode([ + 'location' => '/johnsub', + 'files' => [ + 0 => [ + 'type' => 'back', + 'path' => '/', + 'name' => '..', + 'size' => 0, + 'time' => 0, + ], + 1 => [ + 'type' => 'file', + 'path' => '/johnsub/john2.txt', + 'name' => 'john2.txt', + 'size' => 0, + 'time' => 0, + ], + ], + ])); + } + + public function testStoringFileToRoot() + { + // create dummy file + file_put_contents(TEST_FILE, 'lorem ipsum'); + + $resource = fopen(TEST_FILE, 'r'); + $ret = $this->storage->store('/', 'loremfile.txt', $resource); + fclose($resource); + + $this->assertTrue($ret); + + $this->assertFileExists(TEST_REPOSITORY.'/loremfile.txt'); + } + + public function testStoringFileToRootSubFolder() + { + // create dummy file + file_put_contents(TEST_FILE, 'lorem ipsum'); + + $resource = fopen(TEST_FILE, 'r'); + $ret = $this->storage->store('/sub/sub1', 'loremfile.txt', $resource); + fclose($resource); + + $this->assertTrue($ret); + + $this->assertFileExists(TEST_REPOSITORY.'/sub/sub1/loremfile.txt'); + $this->assertFileNotExists(TEST_REPOSITORY.'/loremfile.txt'); + } + + public function testUpcountingFilenameOrDirname() + { + $this->assertEquals('test (1).txt', $this->invokeMethod($this->storage, 'upcountName', ['test.txt'])); + $this->assertEquals('test (2).txt', $this->invokeMethod($this->storage, 'upcountName', ['test (1).txt'])); + $this->assertEquals('test (100).txt', $this->invokeMethod($this->storage, 'upcountName', ['test (99).txt'])); + $this->assertEquals('test (1)', $this->invokeMethod($this->storage, 'upcountName', ['test'])); + $this->assertEquals('test (9) (2) (1)', $this->invokeMethod($this->storage, 'upcountName', ['test (9) (2)'])); + $this->assertEquals('test (2) (3) (4).txt', $this->invokeMethod($this->storage, 'upcountName', ['test (2) (3) (3).txt'])); + $this->assertEquals('1 (1)', $this->invokeMethod($this->storage, 'upcountName', ['1'])); + $this->assertEquals('test (1).txt (1).zip', $this->invokeMethod($this->storage, 'upcountName', ['test (1).txt.zip'])); + $this->assertEquals('test(1) (1)', $this->invokeMethod($this->storage, 'upcountName', ['test(1)'])); + } + + public function testStoringFileWithTheSameNameUpcountsSecondFilename() + { + // create dummy file + file_put_contents(TEST_FILE, 'lorem ipsum'); + + $resource = fopen(TEST_FILE, 'r'); + $this->storage->store('/', 'singletone.txt', $resource); + fclose($resource); + + // create another dummy file witht the same name but different content + file_put_contents(TEST_FILE, 'croissant'); + + $resource = fopen(TEST_FILE, 'r'); + $this->storage->store('/', 'singletone.txt', $resource); + fclose($resource); + + // first file is not overwritten + $ret = $this->storage->readStream('singletone.txt'); + $this->assertEquals(stream_get_contents($ret['stream']), 'lorem ipsum'); + + // second file is also here but with upcounted name + $ret = $this->storage->readStream('singletone (1).txt'); + $this->assertEquals(stream_get_contents($ret['stream']), 'croissant'); + } + + public function testCreatingFileWithTheSameNameUpcountsFilenameRecursively() + { + $this->storage->createFile('/', 'test.txt'); + $this->storage->createFile('/', 'test (1).txt'); + + $resource = fopen(TEST_FILE, 'r'); + $this->storage->store('/', 'test.txt', $resource); + fclose($resource); + + $this->assertTrue($this->storage->fileExists('/test.txt')); + $this->assertTrue($this->storage->fileExists('/test (1).txt')); + $this->assertTrue($this->storage->fileExists('/test (2).txt')); // created with (2) + } + + public function testCreatingDirectoryWithTheSameNameAsNonEmptyDirUpcountsDestinationDir() + { + $this->storage->createDir('/', 'test'); + $this->storage->createFile('/test', 'a.txt'); + // this dir + $this->storage->createDir('/', 'test'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/test'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/test (1)'); // goes here + } + + public function testCreatingDirectoryWithTheSameNameAsNonEmptyDirUpcountsDestinationDirRecursively() + { + $this->storage->createDir('/', 'test'); + $this->storage->createFile('/test', 'a.txt'); + $this->storage->createDir('/', 'test (1)'); + $this->storage->createFile('/test (1)', 'b.txt'); + + // this dir + $this->storage->createDir('/', 'test'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/test'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/test (1)'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/test (1) (1)'); // goes here + } + + public function testMovingFileWithTheSameNameUpcountsSecondFilename() + { + $this->storage->createFile('/', 'test.txt'); + $this->storage->createFile('/sub', 'test.txt'); + + // move second file over the first one + $this->storage->move('/sub/test.txt', '/test.txt'); + + $this->assertTrue($this->storage->fileExists('/test.txt')); + $this->assertTrue($this->storage->fileExists('/test (1).txt')); + } + + public function testMovingFileWithTheSameNameUpcountsSecondFilenameUntilTheNameIsUnique() + { + $this->storage->createFile('/', 'test.txt'); + $this->storage->createFile('/', 'test (1).txt'); + $this->storage->createFile('/', 'test (2).txt'); + $this->storage->createFile('/sub', 'test.txt'); + + // move second file over the first one + $this->storage->move('/sub/test.txt', '/test.txt'); + + $this->assertTrue($this->storage->fileExists('/test.txt')); + $this->assertTrue($this->storage->fileExists('/test (1).txt')); + $this->assertTrue($this->storage->fileExists('/test (2).txt')); + $this->assertTrue($this->storage->fileExists('/test (3).txt')); // file is moved here + } + + public function testCopyingFileWithTheSameNameUpcountsSecondFilename() + { + $this->storage->createFile('/', 'test.txt'); + $this->storage->createFile('/', 'test (1).txt'); + $this->storage->createFile('/', 'test (2).txt'); + $this->storage->createFile('/sub', 'test.txt'); + + // move second file over the first one + $this->storage->copyFile('/sub/test.txt', '/'); + + $this->assertTrue($this->storage->fileExists('/test.txt')); + $this->assertTrue($this->storage->fileExists('/test (1).txt')); + $this->assertTrue($this->storage->fileExists('/test (2).txt')); + $this->assertTrue($this->storage->fileExists('/test (3).txt')); // file is copied here + } + + public function testGetPathPrefix() + { + $this->storage->setPathPrefix('/john/'); + $this->assertEquals($this->storage->getPathPrefix(), '/john/'); + + $this->storage->setPathPrefix('/john'); + $this->assertEquals($this->storage->getPathPrefix(), '/john/'); + + $this->storage->setPathPrefix('john/'); + $this->assertEquals($this->storage->getPathPrefix(), '/john/'); + + $this->storage->setPathPrefix('john'); + $this->assertEquals($this->storage->getPathPrefix(), '/john/'); + } + + public function testApplyPathPrefix() + { + $this->storage->setPathPrefix('/john/'); + + $this->assertEquals('/john/test', $this->invokeMethod($this->storage, 'applyPathPrefix', ['test'])); + $this->assertEquals('/john/test/', $this->invokeMethod($this->storage, 'applyPathPrefix', ['test/'])); + $this->assertEquals('/john/test/', $this->invokeMethod($this->storage, 'applyPathPrefix', ['/test/'])); + $this->assertEquals('/john/test', $this->invokeMethod($this->storage, 'applyPathPrefix', ['/test'])); + $this->assertEquals('/john/test.txt', $this->invokeMethod($this->storage, 'applyPathPrefix', ['test.txt'])); + $this->assertEquals('/john/test.txt/', $this->invokeMethod($this->storage, 'applyPathPrefix', ['test.txt/'])); + } + + public function testStripPathPrefix() + { + $this->storage->setPathPrefix('/john/'); + + $this->assertEquals('/', $this->invokeMethod($this->storage, 'stripPathPrefix', ['/john/'])); + $this->assertEquals('/test/', $this->invokeMethod($this->storage, 'stripPathPrefix', ['/john/test/'])); + $this->assertEquals('/test', $this->invokeMethod($this->storage, 'stripPathPrefix', ['/john/test'])); + $this->assertEquals('/doe/test', $this->invokeMethod($this->storage, 'stripPathPrefix', ['/john/doe/test'])); + $this->assertEquals('/doe/test.txt', $this->invokeMethod($this->storage, 'stripPathPrefix', ['john/doe/test.txt'])); + $this->assertEquals('/john', $this->invokeMethod($this->storage, 'stripPathPrefix', ['/john'])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'stripPathPrefix', ['/'])); + } + + public function testAddSeparators() + { + $this->assertEquals('/', $this->invokeMethod($this->storage, 'addSeparators', [''])); + $this->assertEquals('/ /', $this->invokeMethod($this->storage, 'addSeparators', [' '])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'addSeparators', ['/'])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'addSeparators', ['//'])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'addSeparators', ['////'])); + $this->assertEquals('/b/', $this->invokeMethod($this->storage, 'addSeparators', ['b'])); + $this->assertEquals('/b/', $this->invokeMethod($this->storage, 'addSeparators', ['/b'])); + $this->assertEquals('/b/', $this->invokeMethod($this->storage, 'addSeparators', ['/b/'])); + $this->assertEquals('/b/', $this->invokeMethod($this->storage, 'addSeparators', ['/b//'])); + $this->assertEquals('/b/', $this->invokeMethod($this->storage, 'addSeparators', ['//b//'])); + $this->assertEquals('/a/b/', $this->invokeMethod($this->storage, 'addSeparators', ['a/b'])); + $this->assertEquals('/a/b/', $this->invokeMethod($this->storage, 'addSeparators', ['a/b/'])); + $this->assertEquals('/a/b/', $this->invokeMethod($this->storage, 'addSeparators', ['/a/b/'])); + $this->assertEquals('/a b/', $this->invokeMethod($this->storage, 'addSeparators', ['a b'])); + $this->assertEquals('/a b/c/', $this->invokeMethod($this->storage, 'addSeparators', ['a b/c'])); + } + + public function testJoinPaths() + { + $this->assertEquals('/1/2', $this->invokeMethod($this->storage, 'joinPaths', ['1', '2'])); + $this->assertEquals('/1/2', $this->invokeMethod($this->storage, 'joinPaths', ['/1', '/2'])); + $this->assertEquals('/1/2/', $this->invokeMethod($this->storage, 'joinPaths', ['1/', '2/'])); + $this->assertEquals('/1/2', $this->invokeMethod($this->storage, 'joinPaths', ['1/', '/2'])); + $this->assertEquals('/1/2/', $this->invokeMethod($this->storage, 'joinPaths', ['/1', '2/'])); + $this->assertEquals('/1/2/', $this->invokeMethod($this->storage, 'joinPaths', ['/1/', '/2/'])); + } + + public function testGetBaseName() + { + $this->assertEquals('test.txt', $this->invokeMethod($this->storage, 'getBaseName', ['test.txt'])); + $this->assertEquals('test.txt', $this->invokeMethod($this->storage, 'getBaseName', ['/test.txt'])); + $this->assertEquals('test.txt', $this->invokeMethod($this->storage, 'getBaseName', ['/mike/test.txt'])); + $this->assertEquals('b', $this->invokeMethod($this->storage, 'getBaseName', ['/a/b'])); + $this->assertEquals('b', $this->invokeMethod($this->storage, 'getBaseName', ['/a/b/'])); + $this->assertEquals('b', $this->invokeMethod($this->storage, 'getBaseName', ['a/b'])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'getBaseName', [''])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'getBaseName', ['/'])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'getBaseName', ['/////'])); + } + + public function testGetParent() + { + $this->assertEquals('/', $this->invokeMethod($this->storage, 'getParent', [''])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'getParent', [' '])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'getParent', ['/'])); + $this->assertEquals('/', $this->invokeMethod($this->storage, 'getParent', ['////'])); + $this->assertEquals('/parent', $this->invokeMethod($this->storage, 'getParent', ['/parent/child/'])); + $this->assertEquals('/1/2/3/4', $this->invokeMethod($this->storage, 'getParent', ['/1/2/3/4/5/'])); + $this->assertEquals('/1/2', $this->invokeMethod($this->storage, 'getParent', ['1/2/3'])); + $this->assertEquals('/1/2', $this->invokeMethod($this->storage, 'getParent', ['1/2/3/'])); + $this->assertEquals('/1/2', $this->invokeMethod($this->storage, 'getParent', ['/1/2/3/'])); + } + + public function testDeleteFiles() + { + $this->storage->createFile('/', 'sample22.txt'); + $this->assertFileExists(TEST_REPOSITORY.'/sample22.txt'); + + $this->storage->deleteFile('sample22.txt'); + + $this->assertFileNotExists(TEST_REPOSITORY.'/sample22.txt'); + } + + public function testCreateAndDeleteDirectory() + { + $this->storage->createDir('/', 'sample22'); + $this->storage->createDir('/sample22/subsample', 'sample22'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/sample22'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/sample22/subsample'); + + $this->storage->deleteDir('sample22'); + + $this->assertDirectoryNotExists(TEST_REPOSITORY.'/sample22'); + $this->assertDirectoryNotExists(TEST_REPOSITORY.'/sample22/subsample'); + } + + public function testReadFileStream() + { + $this->storage->createFile('/', 'a.txt'); + $ret = $this->storage->readStream('a.txt'); + + $this->assertEquals($ret['filename'], 'a.txt'); + $this->assertTrue(is_resource($ret['stream'])); + } + + public function testReadFileStreamMissingFileThrowsException() + { + $this->expectException(\Exception::class); + + $this->storage->readStream('missing'); + } + + public function testCannotStreamDirectory() + { + $this->storage->createDir('/', 'sub'); + + $this->expectException(\Exception::class); + + $this->storage->readStream('sub'); + } + + public function testDirCheck() + { + $this->storage->createDir('/', 'sub'); + $this->storage->createDir('/', 'empty'); + $this->storage->createFile('/sub', 'd.txt'); + $this->storage->createDir('/sub', 'sub1'); + $this->storage->createFile('/sub/sub1', 'f.txt'); + $this->storage->createDir('/sub', 'empty'); + $this->storage->createDir('/', 'john'); + $this->storage->createFile('/', 'a.txt'); + + $this->assertTrue($this->storage->isDir('/sub')); + $this->assertTrue($this->storage->isDir('/sub/sub1')); + $this->assertTrue($this->storage->isDir('/john')); + $this->assertTrue($this->storage->isDir('/empty')); + $this->assertTrue($this->storage->isDir('/sub/empty')); + $this->assertFalse($this->storage->isDir('a.txt')); + $this->assertFalse($this->storage->isDir('/sub/d.txt')); + $this->assertFalse($this->storage->isDir('/sub/sub1/f.txt')); + } + + public function testRenameFile() + { + $this->storage->createFile('/', 'a.txt'); + + $this->storage->rename('/', 'a.txt', 'a1.txt'); + + $this->assertFalse($this->storage->fileExists('/a.txt')); + $this->assertTrue($this->storage->fileExists('/a1.txt')); + } + + public function testRenameFileToExistingDestinationUpcountsFilenameRecursively() + { + $this->storage->createFile('/', 'a.txt'); + $this->storage->createFile('/', 'a (1).txt'); + $this->storage->createFile('/', 'test.txt'); + + $this->storage->rename('/', 'test.txt', 'a.txt'); + + $this->assertTrue($this->storage->fileExists('/a.txt')); + $this->assertTrue($this->storage->fileExists('/a (1).txt')); + $this->assertTrue($this->storage->fileExists('/a (2).txt')); // result + } + + public function testRenameFileInSubfolder() + { + $this->storage->createDir('/', 'john'); + $this->storage->createFile('/john', 'john.txt'); + + $this->storage->rename('/john/', 'john.txt', 'john2.txt'); + + $this->assertFalse($this->storage->fileExists('/john/john.txt')); + $this->assertTrue($this->storage->fileExists('/john/john2.txt')); + } + + public function testRenameFileWithPathPrefix() + { + $this->storage->setPathPrefix('/john/'); + $this->storage->createFile('/', 'john.txt'); + $this->storage->rename('/', 'john.txt', 'john2.txt'); + + $this->assertFalse($this->storage->fileExists('/john.txt')); + $this->assertTrue($this->storage->fileExists('/john2.txt')); + } + + public function testRenameNonexistingFileThrowsException() + { + $this->expectException(\Exception::class); + + $this->storage->move('/', 'nonexisting.txt', 'a1.txt'); + } + + public function testCreatingFile() + { + $this->storage->createFile('/', 'sample22'); + $ret = $this->storage->getDirectoryCollection('/'); + $this->assertStringContainsString('sample22', json_encode($ret)); + + $this->storage->createFile('/sub/', 'sample33'); + $ret = $this->storage->getDirectoryCollection('/sub/'); + $this->assertStringContainsString('sample33', json_encode($ret)); + } + + public function testCreatingFileUpcountsNameIfAlreadyExists() + { + $this->assertFalse($this->storage->fileExists('/test.txt')); + $this->assertFalse($this->storage->fileExists('/test (1).txt')); + + $this->storage->createFile('/', 'test.txt'); + $this->storage->createFile('/', 'test.txt'); + + $this->assertTrue($this->storage->fileExists('/test.txt')); + $this->assertTrue($this->storage->fileExists('/test (1).txt')); + } + + public function testCreatingFileUpcountsNameRecursivelyIfAlreadyExists() + { + $this->storage->createFile('/', 'test.txt'); + $this->storage->createFile('/', 'test (1).txt'); + + // this file + $this->storage->createFile('/', 'test.txt'); + + $this->assertTrue($this->storage->fileExists('/test.txt')); + $this->assertTrue($this->storage->fileExists('/test (1).txt')); + $this->assertTrue($this->storage->fileExists('/test (2).txt')); // ends up here + } + + public function testGetSeparator() + { + $separator = $this->storage->getSeparator(); + + $this->assertEquals($this->separator, $separator); + } + + public function testCopyFile() + { + $this->storage->setPathPrefix('/john'); + $this->storage->createFile('/', 'john.txt'); + $this->storage->createDir('/', 'johnsub'); + $this->storage->createFile('/johnsub', 'sub.txt'); + + $this->assertFalse($this->storage->fileExists('/johnsub/john.txt')); + + $this->storage->copyFile('/john.txt', '/johnsub/'); + + $this->assertTrue($this->storage->fileExists('/johnsub/john.txt')); + + $this->assertFalse($this->storage->fileExists('/sub.txt')); + + $this->storage->copyFile('/johnsub/sub.txt', '/'); + + $this->assertTrue($this->storage->fileExists('/sub.txt')); + } + + public function testCopyMissingFileThrowsException() + { + $this->storage->createDir('/', 'tmp'); + + $this->expectException(\Exception::class); + $this->storage->copyFile('/missing.txt', '/tmp/'); + } + + public function testCopyMissingDirCreatedADirOnDestination() + { + $this->storage->createDir('/', 'tmp'); + + $this->storage->copyDir('/missing/', '/tmp/'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/tmp/missing/'); + } + + public function testCopyDir() + { + $this->storage->createDir('/', '/john'); + $this->storage->createDir('/john', '/johnsub'); + $this->storage->createDir('/', '/jane'); + + $this->storage->copyDir('/john/johnsub', '/jane/'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/jane/johnsub'); + } + + public function testCopyDirWithSubDirs() + { + $this->storage->createDir('/', '/sub'); + $this->storage->createDir('/sub', '/sub1'); + $this->storage->createDir('/', '/jane'); + + $this->storage->copyDir('/sub', '/jane/'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/jane/sub'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/jane/sub/sub1'); + } + + public function testCopyDirWithEmptySubDir() + { + $this->storage->createDir('/', 'tmp'); + $this->storage->createDir('/tmp/', 'sample22'); + $this->storage->createDir('/tmp/sample22/', 'subsample1'); + $this->storage->createDir('/tmp/sample22/', 'subsample2'); + $this->storage->createFile('/tmp/sample22/subsample2', 'zzzz'); + + $this->assertDirectoryNotExists(TEST_REPOSITORY.'/jane/sample22'); + + $this->storage->copyDir('/tmp/sample22', '/jane/'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/jane/sample22'); + $this->assertDirectoryExists(TEST_REPOSITORY.'/jane/sample22/subsample2'); + $this->assertTrue($this->storage->fileExists('/jane/sample22/subsample2/zzzz')); + } + + public function testCopyEmptyDir() + { + $this->storage->createDir('/', 'dest'); + $this->storage->createDir('/', 'tmp'); + + $this->storage->copyDir('/tmp', '/dest'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/dest/tmp'); + } + + public function testCopyDirOverExistingUpcountsDestinationDirname() + { + /* + * /dest/tmp/ + * /dest/tmp/a.txt + * /tmp/ + * /tmp/b.txt + * + * copy /tmp/ => /dest/ + * + * /dest/tmp/ + * /dest/tmp/a.txt + * /dest/tmp (1)/ + * /dest/tmp (1)/b.txt + * + */ + $this->storage->createDir('/', 'dest'); + $this->storage->createDir('/dest', 'tmp'); + $this->storage->createFile('/dest/tmp/', 'a.txt'); + $this->storage->createDir('/', 'tmp'); + $this->storage->createFile('/tmp/', 'b.txt'); + + $this->storage->copyDir('/tmp', '/dest'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/dest/tmp/'); + $this->assertTrue($this->storage->fileExists('/dest/tmp/a.txt')); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/dest/tmp (1)'); + $this->assertTrue($this->storage->fileExists('/dest/tmp (1)/b.txt')); + } + + public function testMoveFile() + { + $this->storage->createFile('/', 'file.txt'); + $this->storage->createDir('/', 'tmp'); + $this->storage->move('/file.txt', '/tmp/file.txt'); + + $this->assertFalse($this->storage->fileExists('/file.txt')); + $this->assertTrue($this->storage->fileExists('/tmp/file.txt')); + } + + public function testMoveDirectory() + { + $this->storage->createDir('/', 'test1'); + $this->storage->createDir('/', 'test2'); + $this->storage->move('/test1', '/test2/test1/'); + + $this->assertDirectoryExists(TEST_REPOSITORY.'/test2/test1/'); + } +} diff --git a/tests/backend/Unit/MainTest.php b/tests/backend/Unit/MainTest.php new file mode 100644 index 0000000..a8b853b --- /dev/null +++ b/tests/backend/Unit/MainTest.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\App; +use Filegator\Config\Config; +use Filegator\Container\Container; +use Filegator\Kernel\Request; +use Filegator\Kernel\Response; +use Filegator\Services\View\Adapters\Vuejs; +use Tests\FakeResponse; +use Tests\FakeStreamedResponse; +use Tests\TestCase; + +/** + * @internal + */ +class MainTest extends TestCase +{ + public function testMainApp() + { + $config = new Config(); + $request = new Request(); + $response = new FakeResponse(); + $sresponse = new FakeStreamedResponse(); + $container = new Container(); + + $app = new App($config, $request, $response, $sresponse, $container); + + $this->assertEquals($app->resolve(Config::class), $config); + $this->assertEquals($app->resolve(Request::class), $request); + $this->assertInstanceOf(Response::class, $app->resolve(Response::class)); + } + + public function testServices() + { + $config = [ + 'services' => [ + 'Service1' => [ + 'handler' => 'Filegator\Services\View\Adapters\Vuejs', + ], + 'Service2' => [ + 'handler' => 'Filegator\Services\View\Adapters\Vuejs', + ], + ], + ]; + + $app = new App(new Config($config), new Request(), new FakeResponse(), new FakeStreamedResponse(), new Container()); + + $this->assertEquals($app->resolve('Service1'), new Vuejs(new Config($config))); + $this->assertEquals($app->resolve('Service2'), new Vuejs(new Config($config))); + } +} diff --git a/tests/backend/Unit/RequestTest.php b/tests/backend/Unit/RequestTest.php new file mode 100644 index 0000000..99d7835 --- /dev/null +++ b/tests/backend/Unit/RequestTest.php @@ -0,0 +1,141 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Kernel\Request; +use Tests\TestCase; + +/** + * @internal + */ +class RequestTest extends TestCase +{ + public function testGetRequest() + { + $request = Request::create( + '?r=/test&a=1&b=2', + 'GET' + ); + + $this->assertEquals($request->all(), [ + 'r' => '/test', + 'a' => '1', + 'b' => '2', + ]); + + $this->assertEquals($request->input('r'), '/test'); + $this->assertEquals($request->input('a'), '1'); + $this->assertEquals($request->input('b'), '2'); + } + + public function testPostRequest() + { + $request = Request::create( + '/somewhere', + 'POST', + ['param1' => '1', 'param2' => '2'] + ); + + $this->assertEquals($request->all(), [ + 'param1' => '1', + 'param2' => '2', + ]); + + $this->assertEquals($request->input('param1'), '1'); + $this->assertEquals($request->input('param2'), '2'); + } + + public function testJsonRequest() + { + $request = Request::create( + '', + 'GET', + [], + [], + [], + [], + json_encode(['sample' => 'content']) + ); + + $this->assertEquals($request->all(), [ + 'sample' => 'content', + ]); + + $this->assertEquals($request->input('sample'), 'content'); + } + + public function testGetAndJsonParametersTogether() + { + $request = Request::create( + '/test?priority=1', + 'POST', + [], + [], + [], + [], + json_encode(['sample' => 'content', 'more' => '1']) + ); + + $this->assertEquals($request->all(), [ + 'priority' => '1', + 'sample' => 'content', + 'more' => '1', + ]); + + $this->assertEquals($request->input('priority'), '1'); + $this->assertEquals($request->input('sample'), 'content'); + $this->assertEquals($request->input('more'), '1'); + } + + public function testGetPostParametersTogether() + { + $request = Request::create( + '/test?priority=10&something=else', + 'POST', + ['param' => 'param1', 'priority' => 5], + ); + + $this->assertEquals($request->all(), [ + 'priority' => '10', + 'something' => 'else', + 'param' => 'param1', + ]); + + $this->assertEquals($request->input('priority'), '10'); + $this->assertEquals($request->input('something'), 'else'); + $this->assertEquals($request->input('param'), 'param1'); + } + + public function testGetPostAndJsonParametersTogether() + { + $request = Request::create( + '/test?priority=10&something=else', + 'POST', + ['param' => 'param1', 'priority' => 5], + [], + [], + [], + json_encode(['sample' => 'content', 'priority' => '2']) + ); + + $this->assertEquals($request->all(), [ + 'priority' => '10', + 'something' => 'else', + 'param' => 'param1', + 'sample' => 'content', + ]); + + $this->assertEquals($request->input('priority'), '10'); + $this->assertEquals($request->input('something'), 'else'); + $this->assertEquals($request->input('param'), 'param1'); + $this->assertEquals($request->input('sample'), 'content'); + } +} diff --git a/tests/backend/Unit/RouterTest.php b/tests/backend/Unit/RouterTest.php new file mode 100644 index 0000000..8e85703 --- /dev/null +++ b/tests/backend/Unit/RouterTest.php @@ -0,0 +1,172 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Container\Container; +use Filegator\Kernel\Request; +use Filegator\Services\Auth\User; +use Filegator\Services\Router\Router; +use Tests\MockUsers; +use Tests\TestCase; + +/** + * @internal + */ +class RouterTest extends TestCase +{ + private $config_stub; + + public function setUp(): void + { + $this->config_stub = [ + 'query_param' => 'r', + 'routes_file' => __DIR__.'/../testroutes.php', + ]; + + parent::setUp(); + } + + public function testHome() + { + $request = Request::create('?r=/', 'GET'); + + $user = new User(); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['\Filegator\Controllers\ViewController', 'index'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + public function testPostToLogin() + { + $request = Request::create('?r=/login', 'POST'); + + $user = new User(); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['\Filegator\Controllers\AuthController', 'login'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + public function testRouteNotFound() + { + $request = Request::create('?r=/something', 'POST'); + + $user = new User(); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['\Filegator\Controllers\ErrorController', 'notFound'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + public function testMethodNotAllowed() + { + $request = Request::create('?r=/login', 'GET'); + + $user = new User(); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['\Filegator\Controllers\ErrorController', 'methodNotAllowed'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + public function testRouteIsProtectedFromGuests() + { + $request = Request::create('?r=/noguests', 'GET'); + + $user = new User(); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['\Filegator\Controllers\ErrorController', 'notFound'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + public function testRouteIsAllowedForUser() + { + $request = Request::create('?r=/noguests', 'GET'); + + $user = new User(); + $user->setRole('user'); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['ProtectedController', 'protectedMethod'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + public function testRouteIsProtectedFromUsers() + { + $request = Request::create('?r=/adminonly', 'GET'); + + $user = new User(); + $user->setRole('user'); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['\Filegator\Controllers\ErrorController', 'notFound'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + public function testRouteIsAllowedForAdmin() + { + $request = Request::create('?r=/adminonly', 'GET'); + + $user = new User(); + $user->setRole('admin'); + + $container = $this->createMock(Container::class); + $container->expects($this->once()) + ->method('call') + ->with(['AdminController', 'adminOnlyMethod'], []) + ; + + $router = $this->getRouter($request, $user, $container); + } + + private function getRouter(Request $request, User $user, Container $container) + { + $auth_stub = $this->createMock(MockUsers::class); + $auth_stub->method('user') + ->willReturn($user) + ; + + $router = new Router($request, $auth_stub, $container); + $router->init($this->config_stub); + + return $router; + } +} diff --git a/tests/backend/Unit/SessionStorageTest.php b/tests/backend/Unit/SessionStorageTest.php new file mode 100644 index 0000000..bc25585 --- /dev/null +++ b/tests/backend/Unit/SessionStorageTest.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Kernel\Request; +use Filegator\Services\Session\Adapters\SessionStorage; +use Tests\TestCase; + +/** + * @internal + */ +class SessionStorageTest extends TestCase +{ + protected $session_service; + + public function setUp(): void + { + $this->session_service = new SessionStorage(new Request()); + $this->session_service->init([ + 'session_handler' => 'mockfilesession', + 'available' => [ + 'mockfilesession' => function () { + return new \Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage(); + }, + ], + ]); + + parent::setUp(); + } + + public function testInvalidateSession() + { + $this->session_service->set('test1', 444); + $this->session_service->invalidate(); + + $this->assertNull($this->session_service->get('test1')); + } + + public function testInvalidateSessionWhichIsNotStartedYet() + { + $this->session_service->invalidate(); + + $this->assertNull($this->session_service->get('something')); + } + + public function testUseSession() + { + $this->session_service->set('test2', 999); + $this->session_service->save(); + + $this->assertEquals($this->session_service->get('test2'), 999); + $this->assertNull($this->session_service->get('test1')); + } +} diff --git a/tests/backend/Unit/TmpfsTest.php b/tests/backend/Unit/TmpfsTest.php new file mode 100644 index 0000000..6883c42 --- /dev/null +++ b/tests/backend/Unit/TmpfsTest.php @@ -0,0 +1,146 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Services\Tmpfs\Adapters\Tmpfs; +use Tests\TestCase; + +/** + * @internal + */ +class TmpfsTest extends TestCase +{ + protected $service; + + public function setUp(): void + { + $this->resetTempDir(); + rmdir(TEST_TMP_PATH); + + $this->service = new Tmpfs(); + $this->service->init([ + 'path' => TEST_TMP_PATH, + 'gc_probability_perc' => 100, + 'gc_older_than' => 60 * 60 * 24 * 2, // 2 days + ]); + + parent::setUp(); + } + + public function testWriteContentToTmpFile() + { + $this->service->write('a.txt', 'lorem'); + + $this->assertFileExists(TEST_TMP_PATH.'/a.txt'); + } + + public function testWriteContentToTmpFileUsingStream() + { + $stream = fopen(TEST_FILE, 'r'); + $this->service->write('a.txt', $stream); + + $this->assertFileEquals(TEST_TMP_PATH.'/a.txt', TEST_FILE); + } + + public function testReadingTmpFileContents() + { + $this->service->write('a.txt', 'lorem'); + + $contents = $this->service->read('a.txt'); + + $this->assertEquals($contents, 'lorem'); + } + + public function testReadingTmpFileContentsUsingStream() + { + $this->service->write('a.txt', 'lorem'); + + $ret = $this->service->readStream('a.txt'); + $this->assertEquals($ret['filename'], 'a.txt'); + + $contents = stream_get_contents($ret['stream']); + $this->assertEquals($contents, 'lorem'); + } + + public function testRemovingTmpFile() + { + $this->service->write('a.txt', 'lorem'); + + $this->assertFileExists(TEST_TMP_PATH.'a.txt'); + + $this->service->remove('a.txt'); + + $this->assertFileNotExists(TEST_TMP_PATH.'a.txt'); + } + + public function testCheckExistingFile() + { + $this->service->write('a.txt', 'lorem'); + + $this->assertTrue($this->service->exists('a.txt')); + $this->assertFalse($this->service->exists('nothere.txt')); + } + + public function testFindingAllFilesMatchingPatters() + { + $this->service->write('a.txt', 'lorem'); + $this->service->write('b.txt', 'lorem'); + $this->service->write('b.zip', 'lorem'); + + $this->assertCount(2, $this->service->findAll('*.txt')); + $this->assertCount(2, $this->service->findAll('b*')); + $this->assertCount(3, $this->service->findAll('*')); + $this->assertCount(0, $this->service->findAll('1*2')); + } + + public function testCleaningFilesOlderThan() + { + $this->service->write('a.txt', 'lorem'); + $this->service->write('b.txt', 'lorem'); + $this->service->write('b.zip', 'lorem'); + + $this->service->clean(10000); + + $this->assertCount(3, $this->service->findAll('*')); + + $this->service->clean(0); + + $this->assertCount(0, $this->service->findAll('*')); + } + + public function testDeleteOldFilesAutomaticaly() + { + touch(TEST_TMP_PATH.'fresh.txt', time()); + touch(TEST_TMP_PATH.'old.txt', time() - 60 * 60 * 24 * 10); // 10 days old + + $this->service->init([ + 'path' => TEST_TMP_PATH, + 'gc_probability_perc' => 100, + 'gc_older_than' => 60 * 60 * 24 * 2, // 2 days + ]); + + $this->assertFileExists(TEST_TMP_PATH.'fresh.txt'); + $this->assertFileNotExists(TEST_TMP_PATH.'old.txt'); + } + + public function testGarbageIsNotDeletedEveryTime() + { + touch(TEST_TMP_PATH.'old.txt', time() - 60 * 60 * 24 * 10); // 10 days old + + $this->service->init([ + 'path' => TEST_TMP_PATH, + 'gc_probability_perc' => 0, + 'gc_older_than' => 60 * 60 * 24 * 2, // 2 days + ]); + + $this->assertFileExists(TEST_TMP_PATH.'old.txt'); + } +} diff --git a/tests/backend/Unit/UserTest.php b/tests/backend/Unit/UserTest.php new file mode 100644 index 0000000..9e68cd6 --- /dev/null +++ b/tests/backend/Unit/UserTest.php @@ -0,0 +1,173 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +use Filegator\Services\Auth\User; +use Tests\TestCase; + +/** + * @internal + */ +class UserTest extends TestCase +{ + public function testUser() + { + $name = 'John Doe'; + $username = 'john.doe@example.com'; + $homedir = '/'; + $role = 'user'; + $permissions = ['read']; + + $user = new User($role, $homedir, $username, $name); + $user->setRole($role); + $user->setHomedir($homedir); + $user->setUsername($username); + $user->setName($name); + $user->setPermissions($permissions); + + $this->assertTrue($user->isUser()); + + $decoded = json_decode(json_encode($user)); + $this->assertEquals('user', $decoded->role); + $this->assertEquals($username, $decoded->username); + $this->assertEquals($name, $decoded->name); + $this->assertEquals($permissions, $decoded->permissions); + } + + public function testAdmin() + { + $user = new User(); + $user->setRole('admin'); + + $this->assertTrue($user->isAdmin()); + } + + public function testGuest() + { + $user = new User(); + + $this->assertTrue($user->isGuest()); + + $decoded = json_decode(json_encode($user), true); + $this->assertEquals([ + 'role' => 'guest', + 'homedir' => '', + 'username' => '', + 'name' => '', + 'permissions' => [], + ], $decoded); + } + + public function testUserCannotGetNonExistingRole() + { + $user = new User(); + + $this->expectException(\Exception::class); + + $user->setRole('nonexistent'); + } + + public function testUserCannotGetNonExistingPermision() + { + $user = new User(); + + $this->expectException(\Exception::class); + + $user->setPermissions(['read', 'write', 'nonexistent']); + } + + public function testUserHasRole() + { + $user = new User(); + $user->setRole('user'); + + $this->assertTrue($user->hasRole('user')); + $this->assertTrue($user->hasRole(['user'])); + $this->assertTrue($user->hasRole(['admin', 'guest', 'user'])); + + $this->assertFalse($user->hasRole(['admin', 'guest'])); + $this->assertFalse($user->hasRole('admin')); + } + + public function testDefaultUserHasNoPermissions() + { + $user = new User(); + + $this->assertTrue($user->hasPermissions([])); + $this->assertFalse($user->hasPermissions('read')); + $this->assertFalse($user->hasPermissions(['read'])); + $this->assertFalse($user->hasPermissions(['write', 'upload', 'read'])); + $this->assertFalse($user->hasPermissions(['write', 'upload'])); + $this->assertFalse($user->hasPermissions('upload')); + } + + public function testUserHasOnlyPermissionsSet() + { + $user = new User(); + $user->setPermissions(['read', 'write']); + + $this->assertTrue($user->hasPermissions('read')); + $this->assertTrue($user->hasPermissions(['read'])); + $this->assertTrue($user->hasPermissions('write')); + $this->assertTrue($user->hasPermissions(['write'])); + $this->assertTrue($user->hasPermissions(['read', 'write'])); + $this->assertTrue($user->hasPermissions(['write', 'read'])); + $this->assertFalse($user->hasPermissions(['write', 'upload', 'read'])); + $this->assertFalse($user->hasPermissions(['write', 'upload'])); + $this->assertFalse($user->hasPermissions('upload')); + } + + public function testUserCanHaveReadPermissions() + { + $user = new User(); + $user->setPermissions(['read']); + + $this->assertTrue($user->hasPermissions('read')); + } + + public function testUserCanHaveWritePermissions() + { + $user = new User(); + $user->setPermissions(['write']); + + $this->assertTrue($user->hasPermissions('write')); + } + + public function testUserCanHaveUploadPermissions() + { + $user = new User(); + $user->setPermissions(['upload']); + + $this->assertTrue($user->hasPermissions('upload')); + } + + public function testUserCanHaveDownloadPermissions() + { + $user = new User(); + $user->setPermissions(['download']); + + $this->assertTrue($user->hasPermissions('download')); + } + + public function testUserCanHaveBatchDownloadPermissions() + { + $user = new User(); + $user->setPermissions(['batchdownload']); + + $this->assertTrue($user->hasPermissions('batchdownload')); + } + + public function testUserCanHaveZipPermissions() + { + $user = new User(); + $user->setPermissions(['zip']); + + $this->assertTrue($user->hasPermissions('zip')); + } +} diff --git a/tests/backend/Unit/ViewTest.php b/tests/backend/Unit/ViewTest.php new file mode 100644 index 0000000..7301ac5 --- /dev/null +++ b/tests/backend/Unit/ViewTest.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE file + */ + +namespace Tests\Unit; + +use Filegator\Config\Config; +use Filegator\Services\View\Adapters\Vuejs; +use Tests\TestCase; + +/** + * @internal + */ +class ViewTest extends TestCase +{ + public function testViewService() + { + $config_mock = new Config(['frontend_config' => ['app_name' => 'testapp']]); + + $service = new Vuejs($config_mock); + $service->init(); + + $this->assertRegexp('/testapp/', $service->getIndexPage()); + } +} diff --git a/tests/backend/configuration.php b/tests/backend/configuration.php new file mode 100644 index 0000000..c490062 --- /dev/null +++ b/tests/backend/configuration.php @@ -0,0 +1,79 @@ + '', + 'public_dir' => __DIR__.'/../../dist', + + 'frontend_config' => [ + 'app_name' => 'FileGator', + 'language' => 'english', + 'logo' => 'https://via.placeholder.com/263x55.png', + 'upload_max_size' => 2 * 1024 * 1024, + 'upload_chunk_size' => 1 * 1024 * 1024, + 'upload_simultaneous' => 3, + 'default_archive_name' => 'archive.zip', + ], + + 'services' => [ + 'Filegator\Services\Logger\LoggerInterface' => [ + 'handler' => '\Filegator\Services\Logger\Adapters\MonoLogger', + 'config' => [ + 'monolog_handlers' => [ + function () { + return new \Monolog\Handler\NullHandler(); + }, + ], + ], + ], + 'Filegator\Services\Session\SessionStorageInterface' => [ + 'handler' => '\Filegator\Services\Session\Adapters\SessionStorage', + 'config' => [ + 'session_handler' => 'mockfilesession', + 'available' => [ + 'mockfilesession' => function () { + return new \Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage(); + }, + ], + ], + ], + 'Filegator\Services\Tmpfs\TmpfsInterface' => [ + 'handler' => '\Filegator\Services\Tmpfs\Adapters\Tmpfs', + 'config' => [ + 'path' => TEST_TMP_PATH, + 'gc_probability_perc' => 10, + 'gc_older_than' => 60 * 60 * 24 * 2, // 2 days + ], + ], + 'Filegator\Services\View\ViewInterface' => [ + 'handler' => '\Filegator\Services\View\Adapters\Vuejs', + ], + 'Filegator\Services\Storage\Filesystem' => [ + 'handler' => '\Filegator\Services\Storage\Filesystem', + 'config' => [ + 'separator' => '/', + 'filesystem_adapter' => 'localfilesystem', + 'adapters' => [ + 'localfilesystem' => function () { + return new \League\Flysystem\Adapter\Local( + TEST_REPOSITORY + ); + }, + ], + ], + ], + 'Filegator\Services\Auth\AuthInterface' => [ + 'handler' => '\Tests\MockUsers', + ], + 'Filegator\Services\Archiver\ArchiverInterface' => [ + 'handler' => '\Filegator\Services\Archiver\Adapters\ZipArchiver', + 'config' => [], + ], + 'Filegator\Services\Router\Router' => [ + 'handler' => '\Filegator\Services\Router\Router', + 'config' => [ + 'query_param' => 'r', + 'routes_file' => __DIR__.'/../../backend/Controllers/routes.php', + ], + ], + ], +]; diff --git a/tests/backend/testroutes.php b/tests/backend/testroutes.php new file mode 100644 index 0000000..b6f113c --- /dev/null +++ b/tests/backend/testroutes.php @@ -0,0 +1,44 @@ + [ + 'GET', '/', '\Filegator\Controllers\ViewController@index', + ], + 'roles' => [ + 'guest', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'POST', '/login', '\Filegator\Controllers\AuthController@login', + ], + 'roles' => [ + 'guest', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'GET', '/noguests', 'ProtectedController@protectedMethod', + ], + 'roles' => [ + 'user', 'admin', + ], + 'permissions' => [ + ], + ], + [ + 'route' => [ + 'GET', '/adminonly', 'AdminController@adminOnlyMethod', + ], + 'roles' => [ + 'admin', + ], + 'permissions' => [ + ], + ], +]; diff --git a/tests/backend/tmp/.gitignore b/tests/backend/tmp/.gitignore new file mode 100755 index 0000000..46b566e --- /dev/null +++ b/tests/backend/tmp/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!testarchive.zip diff --git a/tests/backend/tmp/testarchive.zip b/tests/backend/tmp/testarchive.zip new file mode 100644 index 0000000000000000000000000000000000000000..b0b0ea0c650d61d7d13697f34354aa76b2bc9162 GIT binary patch literal 903 zcmWIWW@Zs#00HKZV}4);lwfC2V93u)Eh*2}4-MgEU~fDBBc>CGL3C*aHv=Qf3uXoe zmX|;x0Bi^c0|$yBoIryF5Qdaw6s4x>l~k0#O#_*P#We48=e0f0Y8yUd0vgQDArW59 z!wobFWE{jIkOO}Qqq>$CVNp^}VqP}H%~e1fU>K*H-y<0XvIOdJxKopXhNJ;8h(Og@60&iVG zB+(HGF%%Y+$YBqPN*Gwu2r?CFDA5rc;EixHw)lgY{?>IJ!gOL|6X9@Bd?LpLC_Z6e vN#jq5(eTj66T2|?!Xgnl_)!gwWMp6 1% +last 2 versions +not ie <= 8 diff --git a/tests/frontend/.eslintrc.js b/tests/frontend/.eslintrc.js new file mode 100644 index 0000000..1c6179f --- /dev/null +++ b/tests/frontend/.eslintrc.js @@ -0,0 +1,17 @@ +module.exports = { + root: true, + env: { + node: true + }, + 'extends': [ + 'plugin:vue/essential', + 'eslint:recommended' + ], + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' + }, + parserOptions: { + parser: 'babel-eslint' + } +} diff --git a/tests/frontend/.gitignore b/tests/frontend/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/tests/frontend/e2e/.eslintrc.js b/tests/frontend/e2e/.eslintrc.js new file mode 100644 index 0000000..72e6bbf --- /dev/null +++ b/tests/frontend/e2e/.eslintrc.js @@ -0,0 +1,12 @@ +module.exports = { + plugins: [ + 'cypress' + ], + env: { + mocha: true, + 'cypress/globals': true + }, + rules: { + strict: 'off' + } +} diff --git a/tests/frontend/e2e/plugins/index.js b/tests/frontend/e2e/plugins/index.js new file mode 100644 index 0000000..e841276 --- /dev/null +++ b/tests/frontend/e2e/plugins/index.js @@ -0,0 +1,24 @@ +// https://docs.cypress.io/guides/guides/plugins-guide.html + +// if you need a custom webpack configuration you can uncomment the following import +// and then use the `file:preprocessor` event +// as explained in the cypress docs +// https://docs.cypress.io/api/plugins/preprocessors-api.html#Examples + +/* eslint-disable import/no-extraneous-dependencies, global-require, arrow-body-style */ +// const webpack = require('@cypress/webpack-preprocessor') + +module.exports = (on, config) => { + // on('file:preprocessor', webpack({ + // webpackOptions: require('@vue/cli-service/webpack.config'), + // watchOptions: {} + // })) + + return Object.assign({}, config, { + fixturesFolder: 'tests/e2e/fixtures', + integrationFolder: 'tests/e2e/specs', + screenshotsFolder: 'tests/e2e/screenshots', + videosFolder: 'tests/e2e/videos', + supportFile: 'tests/e2e/support/index.js' + }) +} diff --git a/tests/frontend/e2e/specs/test.js b/tests/frontend/e2e/specs/test.js new file mode 100644 index 0000000..41ad94a --- /dev/null +++ b/tests/frontend/e2e/specs/test.js @@ -0,0 +1,8 @@ +// https://docs.cypress.io/api/introduction/api.html + +describe('My First Test', () => { + it('Visits the app root url', () => { + cy.visit('/') + cy.contains('h1', 'Welcome to Your Vue.js App') + }) +}) diff --git a/tests/frontend/e2e/support/commands.js b/tests/frontend/e2e/support/commands.js new file mode 100644 index 0000000..c1f5a77 --- /dev/null +++ b/tests/frontend/e2e/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add("login", (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This is will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/tests/frontend/e2e/support/index.js b/tests/frontend/e2e/support/index.js new file mode 100644 index 0000000..d68db96 --- /dev/null +++ b/tests/frontend/e2e/support/index.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/tests/frontend/unit/.eslintrc.js b/tests/frontend/unit/.eslintrc.js new file mode 100644 index 0000000..013a195 --- /dev/null +++ b/tests/frontend/unit/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + jest: true + } +} \ No newline at end of file diff --git a/tests/frontend/unit/example.spec.js b/tests/frontend/unit/example.spec.js new file mode 100644 index 0000000..f84fb39 --- /dev/null +++ b/tests/frontend/unit/example.spec.js @@ -0,0 +1,12 @@ +import { shallowMount } from '@vue/test-utils' +import HelloWorld from '@/components/HelloWorld.vue' + +describe('HelloWorld.vue', () => { + it('renders props.msg when passed', () => { + const msg = 'new message' + const wrapper = shallowMount(HelloWorld, { + propsData: { msg } + }) + expect(wrapper.text()).toMatch(msg) + }) +}) diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..4c494b9 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,11 @@ +module.exports = { + indexPath: 'main.html', + filenameHashing: false, + configureWebpack: config => { + config.entry = { + app: [ + './frontend/main.js' + ] + } + } +}

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 z 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 UjU5}<(#t{U{{g^FwM_s30AB#cdjJ3c literal 0 HcmV?d00001 diff --git a/dist/fonts/fa-solid-900.woff2 b/dist/fonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..92c4d57c5a8236cd682757da197d710189c67019 GIT binary patch literal 74328 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