master e04845939a38 cached
268 files
859.4 KB
237.7k tokens
1002 symbols
1 requests
Download .txt
Showing preview only (941K chars total). Download the full file or copy to clipboard to get everything.
Repository: Nikoms/clean-architecture-example
Branch: master
Commit: e04845939a38
Files: 268
Total size: 859.4 KB

Directory structure:
gitextract_n2l1_zf6/

├── .gitignore
├── bin/
│   ├── console
│   └── phpunit
├── composer.json
├── config/
│   ├── bootstrap.php
│   ├── bundles.php
│   ├── packages/
│   │   ├── assets.yaml
│   │   ├── dev/
│   │   │   ├── debug.yaml
│   │   │   ├── monolog.yaml
│   │   │   ├── routing.yaml
│   │   │   ├── security_checker.yaml
│   │   │   ├── swiftmailer.yaml
│   │   │   └── web_profiler.yaml
│   │   ├── doctrine.yaml
│   │   ├── doctrine_migrations.yaml
│   │   ├── easy_admin.yaml
│   │   ├── fos_ck_editor.yaml
│   │   ├── framework.yaml
│   │   ├── html_sanitizer.yaml
│   │   ├── prod/
│   │   │   ├── doctrine.yaml
│   │   │   ├── monolog.yaml
│   │   │   └── webpack_encore.yaml
│   │   ├── routing.yaml
│   │   ├── security.yaml
│   │   ├── security_checker.yaml
│   │   ├── sensio_framework_extra.yaml
│   │   ├── sentry.yml
│   │   ├── swiftmailer.yaml
│   │   ├── test/
│   │   │   ├── dama_doctrine_test_bundle.yaml
│   │   │   ├── framework.yaml
│   │   │   ├── monolog.yaml
│   │   │   ├── routing.yaml
│   │   │   ├── security.yaml
│   │   │   ├── swiftmailer.yaml
│   │   │   └── web_profiler.yaml
│   │   ├── translation.yaml
│   │   ├── twig.yaml
│   │   ├── twig_extensions.yaml
│   │   ├── validator.yaml
│   │   ├── vich_uploader.yaml
│   │   └── webpack_encore.yaml
│   ├── routes/
│   │   ├── annotations.yaml
│   │   ├── dev/
│   │   │   ├── twig.yaml
│   │   │   └── web_profiler.yaml
│   │   └── easy_admin.yaml
│   └── services.yaml
├── package.json
├── phpunit.xml.dist
├── public/
│   ├── .htaccess
│   ├── build/
│   │   ├── app.css
│   │   ├── app.js
│   │   ├── entrypoints.json
│   │   ├── manifest.json
│   │   └── runtime.js
│   ├── css/
│   │   ├── materialize.css
│   │   ├── seat-base.css
│   │   └── seat.css
│   ├── ico/
│   │   ├── browserconfig.xml
│   │   └── manifest.json
│   ├── index.php
│   └── js/
│       └── materialize.js
├── resources/
│   ├── assets/
│   │   ├── css/
│   │   │   └── app.css
│   │   └── js/
│   │       └── app.js
│   ├── templates/
│   │   ├── admin/
│   │   │   └── command/
│   │   │       └── list.twig
│   │   ├── base_resto.html.twig
│   │   ├── bundles/
│   │   │   └── EasyAdminBundle/
│   │   │       └── default/
│   │   │           └── layout.html.twig
│   │   ├── component/
│   │   │   └── download.html.twig
│   │   ├── default/
│   │   │   └── registration_complete.html.twig
│   │   ├── form/
│   │   │   ├── field-new.html.twig
│   │   │   └── field.html.twig
│   │   ├── order/
│   │   │   ├── confirm-basket.html.twig
│   │   │   ├── go-to-confirm-basket.html.twig
│   │   │   ├── summary.html.twig
│   │   │   └── the-menu.html.twig
│   │   └── page/
│   │       ├── basket.html.twig
│   │       ├── business-lunch.html.twig
│   │       ├── contact.html.twig
│   │       ├── home.html.twig
│   │       ├── login.html.twig
│   │       ├── menu-salle.html.twig
│   │       ├── order-done.html.twig
│   │       ├── register-complete.html.twig
│   │       ├── register.html.twig
│   │       ├── take-away.html.twig
│   │       └── update-client.html.twig
│   └── translations/
│       ├── EasyAdminBundle.fr.xlf
│       └── messages.fr.yaml
├── src/
│   └── Seat/
│       ├── Domain/
│       │   ├── Basket/
│       │   │   ├── Entity/
│       │   │   │   ├── Basket.php
│       │   │   │   └── BasketRepository.php
│       │   │   ├── Model/
│       │   │   │   ├── BasketProduct.php
│       │   │   │   ├── BasketProductOption.php
│       │   │   │   ├── BasketProductSupplement.php
│       │   │   │   ├── OrderType.php
│       │   │   │   ├── OrderTypeName.php
│       │   │   │   └── PossibleOrderType.php
│       │   │   ├── Service/
│       │   │   │   ├── Error/
│       │   │   │   │   ├── DeliveryNotAvailable.php
│       │   │   │   │   ├── OrderTooLate.php
│       │   │   │   │   ├── TakeAwayNotAvailable.php
│       │   │   │   │   └── TakeAwayTooLate.php
│       │   │   │   └── OrderTypeChecker.php
│       │   │   └── UseCase/
│       │   │       ├── AddProductToBasket/
│       │   │       │   ├── AddProductToBasket.php
│       │   │       │   ├── AddProductToBasketPresenter.php
│       │   │       │   ├── AddProductToBasketRequest.php
│       │   │       │   └── AddProductToBasketResponse.php
│       │   │       ├── RemoveFromBasket/
│       │   │       │   ├── RemoveFromBasket.php
│       │   │       │   ├── RemoveFromBasketPresenter.php
│       │   │       │   ├── RemoveFromBasketRequest.php
│       │   │       │   └── RemoveFromBasketResponse.php
│       │   │       └── ShowBasket/
│       │   │           ├── ShowBasket.php
│       │   │           ├── ShowBasketPresenter.php
│       │   │           ├── ShowBasketRequest.php
│       │   │           └── ShowBasketResponse.php
│       │   ├── Client/
│       │   │   ├── Entity/
│       │   │   │   ├── Client.php
│       │   │   │   ├── ClientRepository.php
│       │   │   │   ├── Company.php
│       │   │   │   ├── CompanyRepository.php
│       │   │   │   ├── Role.php
│       │   │   │   └── Store.php
│       │   │   └── UseCase/
│       │   │       ├── GetClient/
│       │   │       │   ├── GetClient.php
│       │   │       │   ├── GetClientPresenter.php
│       │   │       │   ├── GetClientRequest.php
│       │   │       │   └── GetClientResponse.php
│       │   │       ├── Login/
│       │   │       │   ├── Login.php
│       │   │       │   ├── LoginPresenter.php
│       │   │       │   ├── LoginRequest.php
│       │   │       │   └── LoginResponse.php
│       │   │       ├── Register/
│       │   │       │   ├── Register.php
│       │   │       │   ├── RegisterPresenter.php
│       │   │       │   ├── RegisterRequest.php
│       │   │       │   └── RegisterResponse.php
│       │   │       └── UpdateClient/
│       │   │           ├── UpdateClient.php
│       │   │           ├── UpdateClientPresenter.php
│       │   │           ├── UpdateClientRequest.php
│       │   │           └── UpdateClientResponse.php
│       │   ├── Cms/
│       │   │   └── Entity/
│       │   │       ├── HtmlContent.php
│       │   │       └── HtmlContentRepository.php
│       │   ├── Menu/
│       │   │   ├── Entity/
│       │   │   │   ├── Category.php
│       │   │   │   ├── CategoryRepository.php
│       │   │   │   ├── Product.php
│       │   │   │   ├── ProductOption.php
│       │   │   │   ├── ProductOptionRepository.php
│       │   │   │   ├── ProductRepository.php
│       │   │   │   ├── ProductSupplement.php
│       │   │   │   └── ProductSupplementRepository.php
│       │   │   ├── Model/
│       │   │   │   ├── MenuLine.php
│       │   │   │   ├── MenuOption.php
│       │   │   │   ├── MenuProduct.php
│       │   │   │   └── MenuSupplement.php
│       │   │   └── UseCase/
│       │   │       └── GetMenu/
│       │   │           ├── GetMenu.php
│       │   │           ├── GetMenuPresenter.php
│       │   │           └── GetMenuResponse.php
│       │   └── Order/
│       │       ├── Entity/
│       │       │   ├── Command.php
│       │       │   └── CommandRepository.php
│       │       └── UseCase/
│       │           └── ConfirmBasket/
│       │               ├── ConfirmBasket.php
│       │               ├── ConfirmBasketPresenter.php
│       │               ├── ConfirmBasketRequest.php
│       │               └── ConfirmBasketResponse.php
│       ├── Infrastructure/
│       │   └── Symfony4/
│       │       ├── Controller/
│       │       │   ├── AddToBasketController.php
│       │       │   ├── AdminController.php
│       │       │   ├── BusinessLunchController.php
│       │       │   ├── ContactController.php
│       │       │   ├── HomeController.php
│       │       │   ├── LoginCheckController.php
│       │       │   ├── LoginController.php
│       │       │   ├── LogoutController.php
│       │       │   ├── MenuSalleController.php
│       │       │   ├── RegisterCompleteController.php
│       │       │   ├── RegisterController.php
│       │       │   ├── RemoveFromBasketController.php
│       │       │   ├── ShowBasketController.php
│       │       │   ├── ShowOrderMenuController.php
│       │       │   └── UpdateClientController.php
│       │       ├── DependencyInjection/
│       │       │   └── Compiler/
│       │       │       ├── AdminFilterRolePass.php
│       │       │       └── AutowireSeatPass.php
│       │       ├── Doctrine/
│       │       │   ├── Basket.php
│       │       │   ├── BasketProductJson.php
│       │       │   ├── Category.php
│       │       │   ├── CategoryOption.php
│       │       │   ├── CategorySupplement.php
│       │       │   ├── Command.php
│       │       │   ├── Company.php
│       │       │   ├── DoctrineBasketRepository.php
│       │       │   ├── DoctrineCategoryRepository.php
│       │       │   ├── DoctrineClientRepository.php
│       │       │   ├── DoctrineCommandRepository.php
│       │       │   ├── DoctrineCompanyRepository.php
│       │       │   ├── DoctrineHtmlContentRepository.php
│       │       │   ├── DoctrineProductOptionRepository.php
│       │       │   ├── DoctrineProductRepository.php
│       │       │   ├── DoctrineProductSupplementRepository.php
│       │       │   ├── HtmlContent.php
│       │       │   ├── Pdf.php
│       │       │   ├── Product.php
│       │       │   ├── Tournee.php
│       │       │   └── User.php
│       │       ├── Form/
│       │       │   ├── BasketConfirmationType.php
│       │       │   ├── BasketType.php
│       │       │   ├── FormHelper.php
│       │       │   ├── RegisterType.php
│       │       │   └── UpdateClientType.php
│       │       ├── Kernel.php
│       │       ├── ParamConverter/
│       │       │   ├── FormToNullableRequestConverter.php
│       │       │   └── FormToRequestConverter.php
│       │       ├── Security/
│       │       │   ├── Service/
│       │       │   │   ├── ClientUserProvider.php
│       │       │   │   └── FormAuthenticator.php
│       │       │   └── User.php
│       │       ├── Twig/
│       │       │   ├── ContentExtension.php
│       │       │   └── DownloadExtension.php
│       │       └── View/
│       │           ├── AddProductToBasketView.php
│       │           ├── ConfirmBasketView.php
│       │           ├── GetMenuView.php
│       │           ├── RegisterView.php
│       │           ├── RemoveFromBasketView.php
│       │           ├── ShowBasketView.php
│       │           └── UpdateClientView.php
│       ├── Presentation/
│       │   ├── Basket/
│       │   │   ├── AddProductToBasketHtmlPresenter.php
│       │   │   ├── AddProductToBasketHtmlViewModel.php
│       │   │   ├── Model/
│       │   │   │   └── BasketViewModel.php
│       │   │   ├── RemoveFromBasketHtmlPresenter.php
│       │   │   ├── RemoveFromBasketHtmlViewModel.php
│       │   │   ├── ShowBasketHtmlPresenter.php
│       │   │   └── ShowBasketHtmlViewModel.php
│       │   ├── Client/
│       │   │   ├── EditableClient.php
│       │   │   ├── GetClientHtmlPresenter.php
│       │   │   ├── GetClientHtmlViewModel.php
│       │   │   ├── RegisterHtmlPresenter.php
│       │   │   ├── RegisterHtmlViewModel.php
│       │   │   ├── UpdateClientHtmlPresenter.php
│       │   │   └── UpdateClientHtmlViewModel.php
│       │   ├── Menu/
│       │   │   ├── GetMenuHtmlPresenter.php
│       │   │   ├── GetMenuHtmlViewModel.php
│       │   │   └── Model/
│       │   │       └── MenuViewModel.php
│       │   └── Order/
│       │       ├── ConfirmBasketHtmlPresenter.php
│       │       └── ConfirmBasketHtmlViewModel.php
│       └── SharedKernel/
│           ├── Error/
│           │   ├── Error.php
│           │   └── Notification.php
│           ├── Model/
│           │   └── TimeRange.php
│           └── Service/
│               ├── Base64PasswordHasher.php
│               ├── Clock.php
│               ├── IdGenerator.php
│               ├── NativePasswordHasher.php
│               └── PasswordHasher.php
├── tests/
│   └── unit/
│       └── Seat/
│           ├── Domain/
│           │   ├── Basket/
│           │   │   ├── Entity/
│           │   │   │   └── ProductBuilder.php
│           │   │   ├── Service/
│           │   │   │   └── OrderTypeCheckerTest.php
│           │   │   └── UseCase/
│           │   │       ├── AddProductToBasket/
│           │   │       │   └── AddProductToBasketTest.php
│           │   │       └── RemoveFromBasket/
│           │   │           └── RemoveFromBasketTest.php
│           │   ├── Client/
│           │   │   ├── Entity/
│           │   │   │   ├── ClientBuilder.php
│           │   │   │   └── CompanyBuilder.php
│           │   │   └── UseCase/
│           │   │       ├── GetClient/
│           │   │       │   └── GetClientTest.php
│           │   │       ├── Login/
│           │   │       │   └── LoginTest.php
│           │   │       ├── Register/
│           │   │       │   ├── RegisterRequestBuilder.php
│           │   │       │   └── RegisterTest.php
│           │   │       └── UpdateClient/
│           │   │           ├── UpdateClientRequestBuilder.php
│           │   │           └── UpdateClientTest.php
│           │   ├── Menu/
│           │   │   └── UseCase/
│           │   │       └── GetMenu/
│           │   │           └── GetMenuTest.php
│           │   └── Order/
│           │       └── UseCase/
│           │           └── ConfirmBasket/
│           │               ├── ConfirmBasketRequestBuilder.php
│           │               └── ConfirmBasketTest.php
│           ├── SharedKernel/
│           │   └── Model/
│           │       └── TimeRangeTest.php
│           └── _Mock/
│               ├── Domain/
│               │   ├── Basket/
│               │   │   └── Entity/
│               │   │       └── InMemoryBasketRepository.php
│               │   ├── Client/
│               │   │   └── Entity/
│               │   │       ├── InMemoryClientRepository.php
│               │   │       └── InMemoryCompanyRepository.php
│               │   ├── Menu/
│               │   │   └── Entity/
│               │   │       ├── InMemoryCategoryRepository.php
│               │   │       ├── InMemoryProductOptionRepository.php
│               │   │       ├── InMemoryProductRepository.php
│               │   │       └── InMemoryProductSupplementRepository.php
│               │   └── Order/
│               │       └── Entity/
│               │           └── InMemoryCommandRepository.php
│               └── Seat/
│                   └── SharedKernel/
│                       └── Service/
│                           └── IdGeneratorMock.php
└── webpack.config.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
/var/cache/*
!var/log/.gitkeep
.idea/*

/public/build/fonts/glyphicons-*
/public/build/images/glyphicons-*

###> symfony/framework-bundle ###
/.env
/.env.local
/.env.*.local
/public/bundles/
/var/
/vendor/
###< symfony/framework-bundle ###

###> symfony/phpunit-bridge ###
.phpunit
/phpunit.xml
###< symfony/phpunit-bridge ###

###> symfony/web-server-bundle ###
/.web-server-pid
###< symfony/web-server-bundle ###

###> friendsofphp/php-cs-fixer ###
/.php_cs
/.php_cs.cache
###< friendsofphp/php-cs-fixer ###

###> symfony/webpack-encore-bundle ###
/node_modules/
npm-debug.log
yarn-error.log
###< symfony/webpack-encore-bundle ###


# Our app
public/share


================================================
FILE: bin/console
================================================
#!/usr/bin/env php
<?php
use Symfony4\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
set_time_limit(0);
require dirname(__DIR__).'/vendor/autoload.php';
if (!class_exists(Application::class)) {
    throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.');
}
$input = new ArgvInput();
if (null !== $_ENV['APP_ENV'] = $input->getParameterOption(['--env', '-e'], null, true)) {
    putenv('APP_ENV='.$_ENV['APP_ENV']);
    // force loading .env files when --env is defined
    $_SERVER['APP_ENV'] = null;
}
if ($input->hasParameterOption('--no-debug', true)) {
    putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
}
require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) {
    umask(0000);
    if (class_exists(Debug::class)) {
        Debug::enable();
    }
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$application = new Application($kernel);
$application->run($input);


================================================
FILE: bin/phpunit
================================================
#!/usr/bin/env php
<?php

if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) {
    echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
    exit(1);
}
if (false === getenv('SYMFONY_PHPUNIT_REMOVE')) {
    putenv('SYMFONY_PHPUNIT_REMOVE=');
}
if (false === getenv('SYMFONY_PHPUNIT_VERSION')) {
    putenv('SYMFONY_PHPUNIT_VERSION=6.5');
}
if (false === getenv('SYMFONY_PHPUNIT_DIR')) {
    putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit');
}

require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit';


================================================
FILE: composer.json
================================================
{
  "name": "vagrant/seat",
  "license": "proprietary",
  "type": "project",
  "autoload": {
    "psr-4": {
      "Symfony4\\": "src/Seat/Infrastructure/Symfony4/",
      "Seat\\": "src/Seat/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "SeatTest\\": "tests/unit/Seat/"
    }
  },
  "config": {
    "platform": {
      "php": "7.2.0"
    }
  },
  "require": {
    "php": ">=7.2.0",
    "ext-json": "*",
    "symfony/symfony": "^4.0",
    "twig/twig": "^2.7",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "doctrine/doctrine-migrations-bundle": "^1.2",
    "symfony/swiftmailer-bundle": "^3.2",
    "symfony/monolog-bundle": "^3.3",
    "twig/extensions": "^1.4",
    "ramsey/uuid": "^3.8",
    "beberlei/assert": "^3.2",
    "symfony/flex": "^1.2",
    "sensio/framework-extra-bundle": "^5.3",
    "symfony/webpack-encore-bundle": "^1.5",
    "easycorp/easyadmin-bundle": "^2.1",
    "friendsofsymfony/ckeditor-bundle": "^2.0",
    "vich/uploader-bundle": "^1.9",
    "oro/doctrine-extensions": "^1.2",
    "sentry/sentry-symfony": "^2.3",
    "symfony/twig-bundle": "^4.2"
  },
  "require-dev": {
    "phpunit/phpunit": "^7.5",
    "symfony/phpunit-bridge": "*"
  },
  "scripts": {
    "auto-scripts": {
      "bin/console cache:clear": "script",
      "bin/console ckeditor:install --clear=drop": "symfony-cmd",
      "bin/console assets:install --symlink --relative %PUBLIC_DIR%": "script"
    },
    "post-install-cmd": [
      "@auto-scripts"
    ],
    "post-update-cmd": [
      "@auto-scripts"
    ]
  }
}


================================================
FILE: config/bootstrap.php
================================================
<?php
declare(strict_types=1);

use Symfony\Component\Dotenv\Dotenv;

require dirname(__DIR__).'/vendor/autoload.php';
if (!array_key_exists('APP_ENV', $_SERVER)) {
    $_SERVER['APP_ENV'] = $_ENV['APP_ENV'] ?? null;
}
if ('prod' !== $_SERVER['APP_ENV']) {
    if (!class_exists(Dotenv::class)) {
        throw new RuntimeException(
            'The "APP_ENV" environment variable is not set to "prod". Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.'
        );
    }
    (new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
}
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $_SERVER['APP_ENV'] ?: $_ENV['APP_ENV'] ?: 'dev';
$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int)$_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';


================================================
FILE: config/bundles.php
================================================
<?php
declare(strict_types=1);

return [
    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
    Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
    Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true],
    Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
    Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
    Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
    Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true],
    Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
    Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
    Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true],
    Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
    Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
    Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
    EasyCorp\Bundle\EasyAdminBundle\EasyAdminBundle::class => ['all' => true],
    FOS\CKEditorBundle\FOSCKEditorBundle::class => ['all' => true],
    Vich\UploaderBundle\VichUploaderBundle::class => ['all' => true],
    Sentry\SentryBundle\SentryBundle::class => ['all' => true],
];


================================================
FILE: config/packages/assets.yaml
================================================
framework:
    assets:
        json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'


================================================
FILE: config/packages/dev/debug.yaml
================================================
debug:
    # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
    # See the "server:dump" command to start a new server.
    dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"


================================================
FILE: config/packages/dev/monolog.yaml
================================================
monolog:
    handlers:
        main:
            type: stream
            path: '%kernel.logs_dir%/%kernel.environment%.log'
            level: debug
            channels: ['!event']
        # uncomment to get logging in your browser
        # you may have to allow bigger header sizes in your Web server configuration
        #firephp:
        #    type: firephp
        #    level: info
        #chromephp:
        #    type: chromephp
        #    level: info
        console:
            type:   console
            process_psr_3_messages: false
            channels: ['!event', '!doctrine', '!console']


================================================
FILE: config/packages/dev/routing.yaml
================================================
framework:
    router:
        strict_requirements: true


================================================
FILE: config/packages/dev/security_checker.yaml
================================================
#services:
#    SensioLabs\Security\SecurityChecker:
#        public: false
#
#    SensioLabs\Security\Command\SecurityCheckerCommand:
#        arguments: ['@SensioLabs\Security\SecurityChecker']
#        tags:
#            - { name: console.command }


================================================
FILE: config/packages/dev/swiftmailer.yaml
================================================
# See https://symfony.com/doc/current/email/dev_environment.html
swiftmailer:
    #  send all emails to a specific address
    #delivery_addresses: ['me@example.com']


================================================
FILE: config/packages/dev/web_profiler.yaml
================================================
web_profiler:
    toolbar: true
    intercept_redirects: false

framework:
    profiler: { only_exceptions: false }


================================================
FILE: config/packages/doctrine.yaml
================================================
parameters:
  # Adds a fallback DATABASE_URL if the env var is not set. This allows you
  # to run cache:warmup even if your environment variables are not available
  # yet. You should not need to change this value.
  env(DATABASE_URL): ''

doctrine:
  dbal:
    url: '%env(resolve:DATABASE_URL)%'
  orm:
    auto_generate_proxy_classes: '%kernel.debug%'
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true
    mappings:
      App:
        is_bundle: false
        type: annotation
        dir: '%kernel.project_dir%/src/Seat/Infrastructure/Symfony4/Doctrine'
        prefix: 'Symfony4\Doctrine'

    dql:
      string_functions:
        cast:           Oro\ORM\Query\AST\Functions\Cast


================================================
FILE: config/packages/doctrine_migrations.yaml
================================================
doctrine_migrations:
    dir_name: '%kernel.project_dir%/src/Migrations'
    # namespace is arbitrary but should be different from App\Migrations
    # as migrations classes should NOT be autoloaded
    namespace: DoctrineMigrations


================================================
FILE: config/packages/easy_admin.yaml
================================================
easy_admin:
  user:
    name_property_path: 'fullName'
  site_name: "S'eat"
  entities:
    CommandLaHulpe:
      label: 'Commandes La Hulpe'
      role: 'ROLE_SANDWICH'
      disabled_actions: ['new','edit','delete','search']
      class: Symfony4\Doctrine\Command
      templates:
        list: 'admin/command/list.twig'
      list:
        title: "Les commandes du jour à La Hulpe"
        dql_filter: 'SUBSTRING(CAST(entity.date as string),1,10) = SUBSTRING(CAST(CURRENT_DATE() as string),1,10)'
        sort: ['date', 'ASC']
        sortable: false
        max_results: 9999999999
        fields:
          - { property: 'date', format: 'H\hi', sortable: false }
          - orderTypeString
          - quantity
          - name
          - option
          - supplements
          - comment
          - { property: 'comment', type: 'id' }
          - { property: 'id', fsortable: false }
    CommandWaterloo:
      label: 'Commandes Waterloo'
      role: 'ROLE_SANDWICH'
      disabled_actions: ['new','edit','delete','search']
      class: Symfony4\Doctrine\Command
      templates:
        list: 'admin/command/list.twig'
      list:
        title: "Les commandes du jour à Waterloo"
        dql_filter: 'SUBSTRING(CAST(entity.date as string),1,10) = SUBSTRING(CAST(CURRENT_DATE() as string),1,10)'
        sort: ['date', 'ASC']
        max_results: 9999999999
        fields:
          - { property: 'date', format: 'H\hi', sortable: false }
          - orderTypeString
          - quantity
          - name
          - option
          - supplements
          - { property: 'comment', type: 'id' }
          - { property: 'id', fsortable: false }
    Category:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\Category
      list:
        fields:
          - 'name'
          - 'description'
          - 'order'
        sort: ['order', 'ASC']
    Option:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\CategoryOption
      list:
        fields:
          - 'category'
          - 'name'
          - { property: 'price', format: '%01.2f €' }
          - 'order'
        sort: ['order', 'ASC']
      form:
        fields:
          - 'category'
          - 'name'
          - { property: 'price', type: 'money', type_options: { currency: 'EUR' } }
          - 'order'

    Supplement:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\CategorySupplement
      list:
        fields:
          - 'category'
          - 'name'
          - { property: 'price', format: '%01.2f €' }
          - 'order'
        sort: ['order', 'ASC']
      form:
        fields:
          - 'category'
          - 'name'
          - { property: 'price', type: 'money', type_options: { currency: 'EUR' } }
          - 'order'
    Company:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\Company
      list:
        fields:
          - 'id'
          - 'name'
          - 'isEnabled'
          - 'canBeDelivered'
          - 'orderDeliveryDeadLine'
          - 'tournee'
          - store
      form:
        fields:
          - { type: 'section', label: 'Basic information' }
          - isEnabled
          - hasInvoice
          - name
          - slug
          - vat
          - comment
          - { property: 'store', type: 'choice', type_options: { choices:{'La hulpe':'la-hulpe','Waterloo':'waterloo'} } }
          - { type: 'section', label: 'Contact information' }
          - streetNumber
          - street
          - zipCode
          - city
          - phoneNumber
          - contactEmail
          - { type: 'section', label: 'Delivery' }
          - 'canBeDelivered'
          - { property: 'adminCommandBefore', label: 'Commander avant', type: 'time', type_options: { minutes:['10','25','40','55'] } }
          - tournee

    Content:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\HtmlContent
      new:
        fields:
          - 'name'
          - { property: 'html', type: 'fos_ckeditor' }
      edit:
        fields:
          - { property: 'html', type: 'fos_ckeditor' }

    Product:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\Product
      list:
        fields:
          - category
          - name
          - { property: 'price', format: '%01.2f €' }
          - isEnabled
          - order
      form:
        fields:
          - category
          - name
          - description
          - { property: 'price', type: 'money', type_options: { currency: 'EUR' } }
          - isEnabled
          - order
        sort: ['category', 'ASC']
    Tournee:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\Tournee
    Pdf:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\Pdf
      new:
        fields:
          - id
          - text
          - { property: 'pdfFile', type: 'file' }

      edit:
        fields:
          - text
          - { property: 'pdfFile', type: 'file' }
    User:
      role: 'ROLE_ADMIN'
      class: Symfony4\Doctrine\User
      list:
        fields:
          - firstName
          - lastName
          - company
          - phoneNumber
          - email
          - store
          - isEnabled
      form:
        fields:
          - isEnabled
          - firstName
          - lastName
          - company
          - phoneNumber
          - email
          - { property: 'store', type: 'choice', type_options: { choices:{'La hulpe':'la-hulpe','Waterloo':'waterloo'} } }
          - { property: 'role', type: 'choice', type_options: { choices:{'admin':'admin','sandwich':'sandwich','client':'client'} } }


================================================
FILE: config/packages/fos_ck_editor.yaml
================================================
fos_ck_editor:
  default_config: my_custom_config
  configs:
    my_custom_config:
      language:                   "fr"
      toolbar:                    [ [ 'Bold','Italic','Underline','Strike','-','RemoveFormat'], [ 'NumberedList','BulletedList','-','Outdent','Indent','-','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock' ], [ 'Link','Unlink'],[ 'Preview' ], [ 'Source' ], "/", [ 'Styles', 'Format','Font','FontSize' ], [ 'TextColor'] ]
      stylesSet:
        - { name: "Important", element: "span",  attributes: { class: "important" }}
        - { name: "Ecriture rouge", element: "span",  attributes: { class: "red-text lighten-2" }}
        - { name: "Encart rouge", element: "div",  attributes: { class: "card-panel red lighten-2"}}
        - { name: "Encart vert", element: "div",  attributes: { class: "card-panel light-green"}}
        - { name: "Encart vert 2", element: "div",  attributes: { class: "card-panel light-green lighten-2"}}
        - { name: "Encart vert 3", element: "div",  attributes: { class: "card-panel light-green lighten-3"}}
        - { name: "Encart vert 4", element: "div",  attributes: { class: "card-panel light-green darken-1"}}
        - { name: "Encart vert 5", element: "div",  attributes: { class: "card-panel light-green darken-2"}}
      # Chargement des styles personnalisables my_styles (voir plus bas)
      uiColor:                    "#FCFCFC"           # Couleur de fond de l'interface
      height:                     "600px"             # Hauteur par défaut
      contentsCss:                ['/css/seat-base.css','/css/materialize.min.css'] # Charge les styles dans l'éditeur (permet de voir en temps réel le résultat)


================================================
FILE: config/packages/framework.yaml
================================================
framework:
  secret: '%env(APP_SECRET)%'
  csrf_protection: true
  http_method_override: true
  trusted_hosts: ~
  session:
    # With this config, PHP's native session handling is used
    handler_id: ~
    cookie_secure: auto
    cookie_samesite: lax
  php_errors:
    log: true
  assets:
    json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
  cache:
    # this value is used as part of the "namespace" generated for the cache item keys
    # to avoid collisions when multiple apps share the same cache backend (e.g. a Redis server)
    # See https://symfony.com/doc/current/reference/configuration/framework.html#prefix-seed
    prefix_seed: restaurant-seat
  # The 'ide' option turns all of the file paths in an exception page
  # into clickable links that open the given file using your favorite IDE.
  # When 'ide' is set to null the file is opened in your web browser.
  # See https://symfony.com/doc/current/reference/configuration/framework.html#ide
  ide: phpstorm
  validation:
    email_validation_mode: 'html5'
    enable_annotations: true
  form: ~


================================================
FILE: config/packages/html_sanitizer.yaml
================================================
#html_sanitizer:
#    default_sanitizer: 'default'
#    sanitizers:
#        default:
#            # Read https://github.com/tgalopin/html-sanitizer/blob/master/docs/1-getting-started.md#extensions
#            # to learn more about which extensions you would like to enable.
#            extensions:
#                - 'basic'
#                - 'list'
#                - 'table'
#                - 'image'
#                - 'code'
#
#            # Read https://github.com/tgalopin/html-sanitizer/blob/master/docs/3-configuration-reference.md
#            # to discover all the available options for each extension.


================================================
FILE: config/packages/prod/doctrine.yaml
================================================
doctrine:
  dbal:
    driver: 'pdo_postgresql'
    url: '%env(resolve:DATABASE_URL)%'
    server_version: '11'
    charset: utf8
    default_table_options:
      charset: utf8
      collate: utf8_unicode_ci
  orm:
    metadata_cache_driver:
      type: service
      id: doctrine.system_cache_provider
    query_cache_driver:
      type: service
      id: doctrine.system_cache_provider
    result_cache_driver:
      type: service
      id: doctrine.result_cache_provider

services:
  doctrine.result_cache_provider:
    class: Symfony\Component\Cache\DoctrineProvider
    public: false
    arguments:
      - '@doctrine.result_cache_pool'
  doctrine.system_cache_provider:
    class: Symfony\Component\Cache\DoctrineProvider
    public: false
    arguments:
      - '@doctrine.system_cache_pool'

framework:
  cache:
    pools:
      doctrine.result_cache_pool:
        adapter: cache.app
      doctrine.system_cache_pool:
        adapter: cache.system


================================================
FILE: config/packages/prod/monolog.yaml
================================================
monolog:
    handlers:
        filter_for_errors:
            type: fingers_crossed
            action_level: error
            handler: error_log_handler
            excluded_404s:
                # regex: exclude all 404 errors from the logs
                - ^/

        error_log_handler:
            type: error_log
            level: info


================================================
FILE: config/packages/prod/webpack_encore.yaml
================================================
#webpack_encore:
    # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
    # Available in version 1.2
    #cache: true


================================================
FILE: config/packages/routing.yaml
================================================
framework:
    router:
        strict_requirements: ~
        utf8: true


================================================
FILE: config/packages/security.yaml
================================================
security:
    encoders:
        # Our user class and the algorithm we'll use to encode passwords
        # https://symfony.com/doc/current/security.html#c-encoding-the-user-s-password
        Symfony4\Security\User: bcrypt

    providers:
        # https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded
        # In this example, users are stored via Doctrine in the database
        # To see the users at src/App/DataFixtures/ORM/LoadFixtures.php
        # To load users from somewhere else: https://symfony.com/doc/current/security/custom_provider.html
        client_user_provider:
            id: Symfony4\Security\Service\ClientUserProvider

    # https://symfony.com/doc/current/security.html#initial-security-yml-setup-authentication
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            # this firewall applies to all URLs
            pattern: ^/

            # but the firewall does not require login on every page
            # denying access is done in access_control or in your controllers
            anonymous: true

            # This allows the user to login by submitting a username and password
            # Reference: https://symfony.com/doc/current/security/form_login_setup.html
            form_login:
                # The route name that the login form submits to
                check_path: login_check
                # The name of the route where the login form lives
                # When the user tries to access a protected page, they are redirected here
                login_path: login
                # Secure the login form against CSRF
                # Reference: https://symfony.com/doc/current/security/csrf_in_login_form.html
                csrf_token_generator: security.csrf.token_manager
                # The page users are redirect to when there is no previous page stored in the
                # session (for example when the users access directly to the login page).
                default_target_path: home

            logout:
                invalidate_session: false
                # The route name the user can go to in order to logout
                path: logout
                # The name of the route to redirect to after logging out
                target: home
            guard:
                authenticators:
                    - Symfony4\Security\Service\FormAuthenticator
            remember_me:
                secret:      "%kernel.secret%"
                lifetime: 315360000 # 10 years :)
                path:     /
                always_remember_me: true
    access_control:
        # this is a catch-all for the admin area
        # additional security lives in the controllers
        - { path: '^/work', roles: ROLE_SANDWICH }

    role_hierarchy:
        ROLE_SANDWICH: ROLE_CLIENT
        ROLE_ADMIN: ROLE_SANDWICH


================================================
FILE: config/packages/security_checker.yaml
================================================
#services:
#    SensioLabs\Security\SecurityChecker:
#        public: false
#
#    SensioLabs\Security\Command\SecurityCheckerCommand:
#        arguments: ['@SensioLabs\Security\SecurityChecker']
#        public: false
#        tags:
#            - { name: console.command, command: 'security:check' }


================================================
FILE: config/packages/sensio_framework_extra.yaml
================================================
sensio_framework_extra:
    router:
        annotations: false


================================================
FILE: config/packages/sentry.yml
================================================
sentry:
  dsn: "https://your@sentry.io/url"


================================================
FILE: config/packages/swiftmailer.yaml
================================================
swiftmailer:
    url: '%env(MAILER_URL)%'
    spool: { type: 'memory' }


================================================
FILE: config/packages/test/dama_doctrine_test_bundle.yaml
================================================
dama_doctrine_test:
    enable_static_connection: true
    enable_static_meta_data_cache: true
    enable_static_query_cache: true


================================================
FILE: config/packages/test/framework.yaml
================================================
framework:
    test: true
    session:
        storage_id: session.storage.mock_file


================================================
FILE: config/packages/test/monolog.yaml
================================================
monolog:
    handlers:
        main:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
            channels: ["!event"]


================================================
FILE: config/packages/test/routing.yaml
================================================
framework:
    router:
        strict_requirements: true


================================================
FILE: config/packages/test/security.yaml
================================================
# this configuration simplifies testing URLs protected by the security mechanism
# See https://symfony.com/doc/current/cookbook/testing/http_authentication.html
security:
    encoders:
        # to make tests much faster, BCrypt cost is changed to its minimum allowed value (4)
        # See https://symfony.com/doc/current/reference/configuration/security.html#using-the-bcrypt-password-encoder
        Symfony4\Security\User: { algorithm: bcrypt, cost: 4 }

    firewalls:
        main:
            http_basic: ~


================================================
FILE: config/packages/test/swiftmailer.yaml
================================================
swiftmailer:
    disable_delivery: true


================================================
FILE: config/packages/test/web_profiler.yaml
================================================
web_profiler:
    toolbar: false
    intercept_redirects: false

framework:
    profiler: { collect: false }


================================================
FILE: config/packages/translation.yaml
================================================
framework:
    default_locale: '%locale%'
    translator:
        default_path: '%kernel.project_dir%/resources/translations'
        fallbacks:
            - '%locale%'


================================================
FILE: config/packages/twig.yaml
================================================
twig:
    debug: '%kernel.debug%'
    default_path: '%kernel.project_dir%/resources/templates'
    strict_variables: '%kernel.debug%'
    form_themes:
        - '@FOSCKEditor/Form/ckeditor_widget.html.twig'
    globals:
        pdf_path: '%app.path.download_pdf%'


================================================
FILE: config/packages/twig_extensions.yaml
================================================
services:
    _defaults:
        public: false
        autowire: true
        autoconfigure: true

    #Twig\Extensions\ArrayExtension: ~
    #Twig\Extensions\DateExtension: ~
    Twig\Extensions\IntlExtension: ~   # needed for the 'localizeddate' filter
    #Twig\Extensions\TextExtension: ~


================================================
FILE: config/packages/validator.yaml
================================================
framework:
    validation:
        email_validation_mode: html5


================================================
FILE: config/packages/vich_uploader.yaml
================================================
vich_uploader:
  db_driver: orm
  mappings:
    pdf:
      uri_prefix:         '%app.path.download_pdf%'
      upload_destination: '%kernel.project_dir%/public%app.path.download_pdf%'


================================================
FILE: config/packages/webpack_encore.yaml
================================================
webpack_encore:
    # The path where Encore is building the assets.
    # This should match Encore.setOutputPath() in webpack.config.js.
    output_path: '%kernel.project_dir%/public/build'


================================================
FILE: config/routes/annotations.yaml
================================================
controllers:
    resource: '../../src/Seat/Infrastructure/Symfony4/Controller/'
    type: annotation
    requirements:
        _locale: '%app_locales%'
    defaults:
        _locale: '%locale%'


================================================
FILE: config/routes/dev/twig.yaml
================================================
_errors:
    resource: '@TwigBundle/Resources/config/routing/errors.xml'
    prefix:   /_error


================================================
FILE: config/routes/dev/web_profiler.yaml
================================================
web_profiler_wdt:
    resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
    prefix: /_wdt

web_profiler_profiler:
    resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
    prefix: /_profiler


================================================
FILE: config/routes/easy_admin.yaml
================================================
easy_admin_bundle:
    resource: 'Symfony4\Controller\AdminController'
    prefix: /work
    type: annotation


================================================
FILE: config/services.yaml
================================================
# Learn more about services, parameters and containers at
# http://symfony.com/doc/current/book/service_container.html
parameters:
  locale: fr
  seat_email: commande@seat.be
  app_locales: fr
  app.path.download_pdf: /share/download/pdf

services:
  # default configuration for services in *this* file
  _defaults:
    # automatically injects dependencies in your services
    autowire: true
    # automatically registers your services as commands, event subscribers, etc.
    autoconfigure: true
    # this means you cannot fetch services directly from the container via $container->get()
    # if you need to do this, you can override this setting on individual services
    public: false

  Symfony4\Doctrine\:
    resource: '../src/Seat/Infrastructure/Symfony4/Doctrine/*'
    tags: ['seat.autowire']

  Symfony4\:
    resource: '../src/Seat/Infrastructure/Symfony4/*'
    exclude: '../src/Seat/Infrastructure/Symfony4/{Doctrine,Kernel.php}'

  Symfony4\Twig\:
    resource: '../src/Seat/Infrastructure/Symfony4/Twig'
    tags: ['twig.extension']

  Seat\Domain\:
    resource: '../src/Seat/Domain/*'
    exclude: '../src/Seat/Domain/{**/Entity,**/Error,**/Model}'

  Seat\Presentation\:
    resource: '../src/Seat/Presentation/*'
    exclude: '../src/Seat/Presentation/{**/Entity,**/Error,**/Model}'

  Seat\SharedKernel\:
    resource: '../src/Seat/SharedKernel'

  Seat\SharedKernel\Service\PasswordHasher:
    alias: Seat\SharedKernel\Service\NativePasswordHasher

  Symfony\Component\HttpFoundation\Session\Session:
    alias: 'session'

  Symfony4\Controller\:
    resource: '../src/Seat/Infrastructure/Symfony4/Controller'
    tags: ['controller.service_arguments']

  Symfony4\DependencyInjection\Compiler\AdminFilterRolePass:
    tags:
      - name: "easyadmin.config_pass"
        priority: 75 # before menu


================================================
FILE: package.json
================================================
{
    "devDependencies": {
        "@symfony/webpack-encore": "^0.27.0",
        "core-js": "^3.0.0",
        "webpack-notifier": "^1.6.0"
    },
    "license": "UNLICENSED",
    "private": true,
    "scripts": {
        "dev-server": "encore dev-server",
        "dev": "encore dev",
        "watch": "encore dev --watch",
        "build": "encore production --progress"
    },
    "dependencies": {}
}


================================================
FILE: phpunit.xml.dist
================================================
<?xml version="1.0" encoding="UTF-8"?>

<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/7.5/phpunit.xsd"
         backupGlobals="false"
         colors="true"
         bootstrap="vendor/autoload.php"
>
    <testsuites>
        <testsuite name="Project Test Suite">
            <directory>tests/unit</directory>
        </testsuite>
    </testsuites>
</phpunit>


================================================
FILE: public/.htaccess
================================================
<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /index.php/
    </IfModule>
</IfModule>


================================================
FILE: public/build/app.css
================================================
body {
    background-color: lightgray;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vYXBwLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDJCQUEyQjtBQUMvQiIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/

================================================
FILE: public/build/app.js
================================================
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["app"],{

/***/ "./resources/assets/css/app.css":
/*!**************************************!*\
  !*** ./resources/assets/css/app.css ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "./resources/assets/js/app.js":
/*!************************************!*\
  !*** ./resources/assets/js/app.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*
 * Welcome to your app's main JavaScript file!
 *
 * We recommend including the built version of this JavaScript file
 * (and its CSS file) in your base layout (base.html.twig).
 */
// any CSS you require will output into a single css file (app.css in this case)
__webpack_require__(/*! ../css/app.css */ "./resources/assets/css/app.css"); // Need jQuery? Install it with "yarn add jquery", then uncomment to require it.
// const $ = require('jquery');


console.log('Hello Webpack Encore! Edit me in assets/js/app.js');

/***/ })

},[["./resources/assets/js/app.js","runtime"]]]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2Nzcy9hcHAuY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvYXBwLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1Qzs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7O0FBT0E7QUFDQUEsbUJBQU8sQ0FBQyxzREFBRCxDQUFQLEMsQ0FFQTtBQUNBOzs7QUFFQUMsT0FBTyxDQUFDQyxHQUFSLENBQVksbURBQVosRSIsImZpbGUiOiJhcHAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iLCIvKlxuICogV2VsY29tZSB0byB5b3VyIGFwcCdzIG1haW4gSmF2YVNjcmlwdCBmaWxlIVxuICpcbiAqIFdlIHJlY29tbWVuZCBpbmNsdWRpbmcgdGhlIGJ1aWx0IHZlcnNpb24gb2YgdGhpcyBKYXZhU2NyaXB0IGZpbGVcbiAqIChhbmQgaXRzIENTUyBmaWxlKSBpbiB5b3VyIGJhc2UgbGF5b3V0IChiYXNlLmh0bWwudHdpZykuXG4gKi9cblxuLy8gYW55IENTUyB5b3UgcmVxdWlyZSB3aWxsIG91dHB1dCBpbnRvIGEgc2luZ2xlIGNzcyBmaWxlIChhcHAuY3NzIGluIHRoaXMgY2FzZSlcbnJlcXVpcmUoJy4uL2Nzcy9hcHAuY3NzJyk7XG5cbi8vIE5lZWQgalF1ZXJ5PyBJbnN0YWxsIGl0IHdpdGggXCJ5YXJuIGFkZCBqcXVlcnlcIiwgdGhlbiB1bmNvbW1lbnQgdG8gcmVxdWlyZSBpdC5cbi8vIGNvbnN0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcblxuY29uc29sZS5sb2coJ0hlbGxvIFdlYnBhY2sgRW5jb3JlISBFZGl0IG1lIGluIGFzc2V0cy9qcy9hcHAuanMnKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

================================================
FILE: public/build/entrypoints.json
================================================
{
  "entrypoints": {
    "app": {
      "js": [
        "/build/runtime.js",
        "/build/app.js"
      ],
      "css": [
        "/build/app.css"
      ]
    }
  }
}

================================================
FILE: public/build/manifest.json
================================================
{
  "build/app.css": "/build/app.css",
  "build/app.js": "/build/app.js",
  "build/runtime.js": "/build/runtime.js"
}

================================================
FILE: public/build/runtime.js
================================================
/******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/ 		var executeModules = data[2];
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 		// add entry modules from loaded chunk to deferred list
/******/ 		deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ 		// run deferred modules when all chunks ready
/******/ 		return checkDeferredModules();
/******/ 	};
/******/ 	function checkDeferredModules() {
/******/ 		var result;
/******/ 		for(var i = 0; i < deferredModules.length; i++) {
/******/ 			var deferredModule = deferredModules[i];
/******/ 			var fulfilled = true;
/******/ 			for(var j = 1; j < deferredModule.length; j++) {
/******/ 				var depId = deferredModule[j];
/******/ 				if(installedChunks[depId] !== 0) fulfilled = false;
/******/ 			}
/******/ 			if(fulfilled) {
/******/ 				deferredModules.splice(i--, 1);
/******/ 				result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ 			}
/******/ 		}
/******/ 		return result;
/******/ 	}
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"runtime": 0
/******/ 	};
/******/
/******/ 	var deferredModules = [];
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/build/";
/******/
/******/ 	var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// run deferred modules from other chunks
/******/ 	checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ([]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0JBQVEsb0JBQW9CO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQWlCLDRCQUE0QjtBQUM3QztBQUNBO0FBQ0EsMEJBQWtCLDJCQUEyQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrREFBMEMsZ0NBQWdDO0FBQzFFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0VBQXdELGtCQUFrQjtBQUMxRTtBQUNBLHlEQUFpRCxjQUFjO0FBQy9EOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBeUMsaUNBQWlDO0FBQzFFLHdIQUFnSCxtQkFBbUIsRUFBRTtBQUNySTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1DQUEyQiwwQkFBMEIsRUFBRTtBQUN2RCx5Q0FBaUMsZUFBZTtBQUNoRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4REFBc0QsK0RBQStEOztBQUVySDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQWdCLHVCQUF1QjtBQUN2Qzs7O0FBR0E7QUFDQSIsImZpbGUiOiJydW50aW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gaW5zdGFsbCBhIEpTT05QIGNhbGxiYWNrIGZvciBjaHVuayBsb2FkaW5nXG4gXHRmdW5jdGlvbiB3ZWJwYWNrSnNvbnBDYWxsYmFjayhkYXRhKSB7XG4gXHRcdHZhciBjaHVua0lkcyA9IGRhdGFbMF07XG4gXHRcdHZhciBtb3JlTW9kdWxlcyA9IGRhdGFbMV07XG4gXHRcdHZhciBleGVjdXRlTW9kdWxlcyA9IGRhdGFbMl07XG5cbiBcdFx0Ly8gYWRkIFwibW9yZU1vZHVsZXNcIiB0byB0aGUgbW9kdWxlcyBvYmplY3QsXG4gXHRcdC8vIHRoZW4gZmxhZyBhbGwgXCJjaHVua0lkc1wiIGFzIGxvYWRlZCBhbmQgZmlyZSBjYWxsYmFja1xuIFx0XHR2YXIgbW9kdWxlSWQsIGNodW5rSWQsIGkgPSAwLCByZXNvbHZlcyA9IFtdO1xuIFx0XHRmb3IoO2kgPCBjaHVua0lkcy5sZW5ndGg7IGkrKykge1xuIFx0XHRcdGNodW5rSWQgPSBjaHVua0lkc1tpXTtcbiBcdFx0XHRpZihpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcbiBcdFx0XHRcdHJlc29sdmVzLnB1c2goaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdWzBdKTtcbiBcdFx0XHR9XG4gXHRcdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gMDtcbiBcdFx0fVxuIFx0XHRmb3IobW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcbiBcdFx0XHRpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuIFx0XHRcdFx0bW9kdWxlc1ttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdFx0fVxuIFx0XHR9XG4gXHRcdGlmKHBhcmVudEpzb25wRnVuY3Rpb24pIHBhcmVudEpzb25wRnVuY3Rpb24oZGF0YSk7XG5cbiBcdFx0d2hpbGUocmVzb2x2ZXMubGVuZ3RoKSB7XG4gXHRcdFx0cmVzb2x2ZXMuc2hpZnQoKSgpO1xuIFx0XHR9XG5cbiBcdFx0Ly8gYWRkIGVudHJ5IG1vZHVsZXMgZnJvbSBsb2FkZWQgY2h1bmsgdG8gZGVmZXJyZWQgbGlzdFxuIFx0XHRkZWZlcnJlZE1vZHVsZXMucHVzaC5hcHBseShkZWZlcnJlZE1vZHVsZXMsIGV4ZWN1dGVNb2R1bGVzIHx8IFtdKTtcblxuIFx0XHQvLyBydW4gZGVmZXJyZWQgbW9kdWxlcyB3aGVuIGFsbCBjaHVua3MgcmVhZHlcbiBcdFx0cmV0dXJuIGNoZWNrRGVmZXJyZWRNb2R1bGVzKCk7XG4gXHR9O1xuIFx0ZnVuY3Rpb24gY2hlY2tEZWZlcnJlZE1vZHVsZXMoKSB7XG4gXHRcdHZhciByZXN1bHQ7XG4gXHRcdGZvcih2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZE1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHR2YXIgZGVmZXJyZWRNb2R1bGUgPSBkZWZlcnJlZE1vZHVsZXNbaV07XG4gXHRcdFx0dmFyIGZ1bGZpbGxlZCA9IHRydWU7XG4gXHRcdFx0Zm9yKHZhciBqID0gMTsgaiA8IGRlZmVycmVkTW9kdWxlLmxlbmd0aDsgaisrKSB7XG4gXHRcdFx0XHR2YXIgZGVwSWQgPSBkZWZlcnJlZE1vZHVsZVtqXTtcbiBcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rc1tkZXBJZF0gIT09IDApIGZ1bGZpbGxlZCA9IGZhbHNlO1xuIFx0XHRcdH1cbiBcdFx0XHRpZihmdWxmaWxsZWQpIHtcbiBcdFx0XHRcdGRlZmVycmVkTW9kdWxlcy5zcGxpY2UoaS0tLCAxKTtcbiBcdFx0XHRcdHJlc3VsdCA9IF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gZGVmZXJyZWRNb2R1bGVbMF0pO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRyZXR1cm4gcmVzdWx0O1xuIFx0fVxuXG4gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuIFx0Ly8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4gXHQvLyBQcm9taXNlID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxuIFx0dmFyIGluc3RhbGxlZENodW5rcyA9IHtcbiBcdFx0XCJydW50aW1lXCI6IDBcbiBcdH07XG5cbiBcdHZhciBkZWZlcnJlZE1vZHVsZXMgPSBbXTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvYnVpbGQvXCI7XG5cbiBcdHZhciBqc29ucEFycmF5ID0gd2luZG93W1wid2VicGFja0pzb25wXCJdID0gd2luZG93W1wid2VicGFja0pzb25wXCJdIHx8IFtdO1xuIFx0dmFyIG9sZEpzb25wRnVuY3Rpb24gPSBqc29ucEFycmF5LnB1c2guYmluZChqc29ucEFycmF5KTtcbiBcdGpzb25wQXJyYXkucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrO1xuIFx0anNvbnBBcnJheSA9IGpzb25wQXJyYXkuc2xpY2UoKTtcbiBcdGZvcih2YXIgaSA9IDA7IGkgPCBqc29ucEFycmF5Lmxlbmd0aDsgaSsrKSB3ZWJwYWNrSnNvbnBDYWxsYmFjayhqc29ucEFycmF5W2ldKTtcbiBcdHZhciBwYXJlbnRKc29ucEZ1bmN0aW9uID0gb2xkSnNvbnBGdW5jdGlvbjtcblxuXG4gXHQvLyBydW4gZGVmZXJyZWQgbW9kdWxlcyBmcm9tIG90aGVyIGNodW5rc1xuIFx0Y2hlY2tEZWZlcnJlZE1vZHVsZXMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

================================================
FILE: public/css/materialize.css
================================================
/*!
 * Materialize v1.0.0 (http://materializecss.com)
 * Copyright 2014-2017 Materialize
 * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
 */
.materialize-red {
  background-color: #e51c23 !important;
}

.materialize-red-text {
  color: #e51c23 !important;
}

.materialize-red.lighten-5 {
  background-color: #fdeaeb !important;
}

.materialize-red-text.text-lighten-5 {
  color: #fdeaeb !important;
}

.materialize-red.lighten-4 {
  background-color: #f8c1c3 !important;
}

.materialize-red-text.text-lighten-4 {
  color: #f8c1c3 !important;
}

.materialize-red.lighten-3 {
  background-color: #f3989b !important;
}

.materialize-red-text.text-lighten-3 {
  color: #f3989b !important;
}

.materialize-red.lighten-2 {
  background-color: #ee6e73 !important;
}

.materialize-red-text.text-lighten-2 {
  color: #ee6e73 !important;
}

.materialize-red.lighten-1 {
  background-color: #ea454b !important;
}

.materialize-red-text.text-lighten-1 {
  color: #ea454b !important;
}

.materialize-red.darken-1 {
  background-color: #d0181e !important;
}

.materialize-red-text.text-darken-1 {
  color: #d0181e !important;
}

.materialize-red.darken-2 {
  background-color: #b9151b !important;
}

.materialize-red-text.text-darken-2 {
  color: #b9151b !important;
}

.materialize-red.darken-3 {
  background-color: #a21318 !important;
}

.materialize-red-text.text-darken-3 {
  color: #a21318 !important;
}

.materialize-red.darken-4 {
  background-color: #8b1014 !important;
}

.materialize-red-text.text-darken-4 {
  color: #8b1014 !important;
}

.red {
  background-color: #F44336 !important;
}

.red-text {
  color: #F44336 !important;
}

.red.lighten-5 {
  background-color: #FFEBEE !important;
}

.red-text.text-lighten-5 {
  color: #FFEBEE !important;
}

.red.lighten-4 {
  background-color: #FFCDD2 !important;
}

.red-text.text-lighten-4 {
  color: #FFCDD2 !important;
}

.red.lighten-3 {
  background-color: #EF9A9A !important;
}

.red-text.text-lighten-3 {
  color: #EF9A9A !important;
}

.red.lighten-2 {
  background-color: #E57373 !important;
}

.red-text.text-lighten-2 {
  color: #E57373 !important;
}

.red.lighten-1 {
  background-color: #EF5350 !important;
}

.red-text.text-lighten-1 {
  color: #EF5350 !important;
}

.red.darken-1 {
  background-color: #E53935 !important;
}

.red-text.text-darken-1 {
  color: #E53935 !important;
}

.red.darken-2 {
  background-color: #D32F2F !important;
}

.red-text.text-darken-2 {
  color: #D32F2F !important;
}

.red.darken-3 {
  background-color: #C62828 !important;
}

.red-text.text-darken-3 {
  color: #C62828 !important;
}

.red.darken-4 {
  background-color: #B71C1C !important;
}

.red-text.text-darken-4 {
  color: #B71C1C !important;
}

.red.accent-1 {
  background-color: #FF8A80 !important;
}

.red-text.text-accent-1 {
  color: #FF8A80 !important;
}

.red.accent-2 {
  background-color: #FF5252 !important;
}

.red-text.text-accent-2 {
  color: #FF5252 !important;
}

.red.accent-3 {
  background-color: #FF1744 !important;
}

.red-text.text-accent-3 {
  color: #FF1744 !important;
}

.red.accent-4 {
  background-color: #D50000 !important;
}

.red-text.text-accent-4 {
  color: #D50000 !important;
}

.pink {
  background-color: #e91e63 !important;
}

.pink-text {
  color: #e91e63 !important;
}

.pink.lighten-5 {
  background-color: #fce4ec !important;
}

.pink-text.text-lighten-5 {
  color: #fce4ec !important;
}

.pink.lighten-4 {
  background-color: #f8bbd0 !important;
}

.pink-text.text-lighten-4 {
  color: #f8bbd0 !important;
}

.pink.lighten-3 {
  background-color: #f48fb1 !important;
}

.pink-text.text-lighten-3 {
  color: #f48fb1 !important;
}

.pink.lighten-2 {
  background-color: #f06292 !important;
}

.pink-text.text-lighten-2 {
  color: #f06292 !important;
}

.pink.lighten-1 {
  background-color: #ec407a !important;
}

.pink-text.text-lighten-1 {
  color: #ec407a !important;
}

.pink.darken-1 {
  background-color: #d81b60 !important;
}

.pink-text.text-darken-1 {
  color: #d81b60 !important;
}

.pink.darken-2 {
  background-color: #c2185b !important;
}

.pink-text.text-darken-2 {
  color: #c2185b !important;
}

.pink.darken-3 {
  background-color: #ad1457 !important;
}

.pink-text.text-darken-3 {
  color: #ad1457 !important;
}

.pink.darken-4 {
  background-color: #880e4f !important;
}

.pink-text.text-darken-4 {
  color: #880e4f !important;
}

.pink.accent-1 {
  background-color: #ff80ab !important;
}

.pink-text.text-accent-1 {
  color: #ff80ab !important;
}

.pink.accent-2 {
  background-color: #ff4081 !important;
}

.pink-text.text-accent-2 {
  color: #ff4081 !important;
}

.pink.accent-3 {
  background-color: #f50057 !important;
}

.pink-text.text-accent-3 {
  color: #f50057 !important;
}

.pink.accent-4 {
  background-color: #c51162 !important;
}

.pink-text.text-accent-4 {
  color: #c51162 !important;
}

.purple {
  background-color: #9c27b0 !important;
}

.purple-text {
  color: #9c27b0 !important;
}

.purple.lighten-5 {
  background-color: #f3e5f5 !important;
}

.purple-text.text-lighten-5 {
  color: #f3e5f5 !important;
}

.purple.lighten-4 {
  background-color: #e1bee7 !important;
}

.purple-text.text-lighten-4 {
  color: #e1bee7 !important;
}

.purple.lighten-3 {
  background-color: #ce93d8 !important;
}

.purple-text.text-lighten-3 {
  color: #ce93d8 !important;
}

.purple.lighten-2 {
  background-color: #ba68c8 !important;
}

.purple-text.text-lighten-2 {
  color: #ba68c8 !important;
}

.purple.lighten-1 {
  background-color: #ab47bc !important;
}

.purple-text.text-lighten-1 {
  color: #ab47bc !important;
}

.purple.darken-1 {
  background-color: #8e24aa !important;
}

.purple-text.text-darken-1 {
  color: #8e24aa !important;
}

.purple.darken-2 {
  background-color: #7b1fa2 !important;
}

.purple-text.text-darken-2 {
  color: #7b1fa2 !important;
}

.purple.darken-3 {
  background-color: #6a1b9a !important;
}

.purple-text.text-darken-3 {
  color: #6a1b9a !important;
}

.purple.darken-4 {
  background-color: #4a148c !important;
}

.purple-text.text-darken-4 {
  color: #4a148c !important;
}

.purple.accent-1 {
  background-color: #ea80fc !important;
}

.purple-text.text-accent-1 {
  color: #ea80fc !important;
}

.purple.accent-2 {
  background-color: #e040fb !important;
}

.purple-text.text-accent-2 {
  color: #e040fb !important;
}

.purple.accent-3 {
  background-color: #d500f9 !important;
}

.purple-text.text-accent-3 {
  color: #d500f9 !important;
}

.purple.accent-4 {
  background-color: #aa00ff !important;
}

.purple-text.text-accent-4 {
  color: #aa00ff !important;
}

.deep-purple {
  background-color: #673ab7 !important;
}

.deep-purple-text {
  color: #673ab7 !important;
}

.deep-purple.lighten-5 {
  background-color: #ede7f6 !important;
}

.deep-purple-text.text-lighten-5 {
  color: #ede7f6 !important;
}

.deep-purple.lighten-4 {
  background-color: #d1c4e9 !important;
}

.deep-purple-text.text-lighten-4 {
  color: #d1c4e9 !important;
}

.deep-purple.lighten-3 {
  background-color: #b39ddb !important;
}

.deep-purple-text.text-lighten-3 {
  color: #b39ddb !important;
}

.deep-purple.lighten-2 {
  background-color: #9575cd !important;
}

.deep-purple-text.text-lighten-2 {
  color: #9575cd !important;
}

.deep-purple.lighten-1 {
  background-color: #7e57c2 !important;
}

.deep-purple-text.text-lighten-1 {
  color: #7e57c2 !important;
}

.deep-purple.darken-1 {
  background-color: #5e35b1 !important;
}

.deep-purple-text.text-darken-1 {
  color: #5e35b1 !important;
}

.deep-purple.darken-2 {
  background-color: #512da8 !important;
}

.deep-purple-text.text-darken-2 {
  color: #512da8 !important;
}

.deep-purple.darken-3 {
  background-color: #4527a0 !important;
}

.deep-purple-text.text-darken-3 {
  color: #4527a0 !important;
}

.deep-purple.darken-4 {
  background-color: #311b92 !important;
}

.deep-purple-text.text-darken-4 {
  color: #311b92 !important;
}

.deep-purple.accent-1 {
  background-color: #b388ff !important;
}

.deep-purple-text.text-accent-1 {
  color: #b388ff !important;
}

.deep-purple.accent-2 {
  background-color: #7c4dff !important;
}

.deep-purple-text.text-accent-2 {
  color: #7c4dff !important;
}

.deep-purple.accent-3 {
  background-color: #651fff !important;
}

.deep-purple-text.text-accent-3 {
  color: #651fff !important;
}

.deep-purple.accent-4 {
  background-color: #6200ea !important;
}

.deep-purple-text.text-accent-4 {
  color: #6200ea !important;
}

.indigo {
  background-color: #3f51b5 !important;
}

.indigo-text {
  color: #3f51b5 !important;
}

.indigo.lighten-5 {
  background-color: #e8eaf6 !important;
}

.indigo-text.text-lighten-5 {
  color: #e8eaf6 !important;
}

.indigo.lighten-4 {
  background-color: #c5cae9 !important;
}

.indigo-text.text-lighten-4 {
  color: #c5cae9 !important;
}

.indigo.lighten-3 {
  background-color: #9fa8da !important;
}

.indigo-text.text-lighten-3 {
  color: #9fa8da !important;
}

.indigo.lighten-2 {
  background-color: #7986cb !important;
}

.indigo-text.text-lighten-2 {
  color: #7986cb !important;
}

.indigo.lighten-1 {
  background-color: #5c6bc0 !important;
}

.indigo-text.text-lighten-1 {
  color: #5c6bc0 !important;
}

.indigo.darken-1 {
  background-color: #3949ab !important;
}

.indigo-text.text-darken-1 {
  color: #3949ab !important;
}

.indigo.darken-2 {
  background-color: #303f9f !important;
}

.indigo-text.text-darken-2 {
  color: #303f9f !important;
}

.indigo.darken-3 {
  background-color: #283593 !important;
}

.indigo-text.text-darken-3 {
  color: #283593 !important;
}

.indigo.darken-4 {
  background-color: #1a237e !important;
}

.indigo-text.text-darken-4 {
  color: #1a237e !important;
}

.indigo.accent-1 {
  background-color: #8c9eff !important;
}

.indigo-text.text-accent-1 {
  color: #8c9eff !important;
}

.indigo.accent-2 {
  background-color: #536dfe !important;
}

.indigo-text.text-accent-2 {
  color: #536dfe !important;
}

.indigo.accent-3 {
  background-color: #3d5afe !important;
}

.indigo-text.text-accent-3 {
  color: #3d5afe !important;
}

.indigo.accent-4 {
  background-color: #304ffe !important;
}

.indigo-text.text-accent-4 {
  color: #304ffe !important;
}

.blue {
  background-color: #2196F3 !important;
}

.blue-text {
  color: #2196F3 !important;
}

.blue.lighten-5 {
  background-color: #E3F2FD !important;
}

.blue-text.text-lighten-5 {
  color: #E3F2FD !important;
}

.blue.lighten-4 {
  background-color: #BBDEFB !important;
}

.blue-text.text-lighten-4 {
  color: #BBDEFB !important;
}

.blue.lighten-3 {
  background-color: #90CAF9 !important;
}

.blue-text.text-lighten-3 {
  color: #90CAF9 !important;
}

.blue.lighten-2 {
  background-color: #64B5F6 !important;
}

.blue-text.text-lighten-2 {
  color: #64B5F6 !important;
}

.blue.lighten-1 {
  background-color: #42A5F5 !important;
}

.blue-text.text-lighten-1 {
  color: #42A5F5 !important;
}

.blue.darken-1 {
  background-color: #1E88E5 !important;
}

.blue-text.text-darken-1 {
  color: #1E88E5 !important;
}

.blue.darken-2 {
  background-color: #1976D2 !important;
}

.blue-text.text-darken-2 {
  color: #1976D2 !important;
}

.blue.darken-3 {
  background-color: #1565C0 !important;
}

.blue-text.text-darken-3 {
  color: #1565C0 !important;
}

.blue.darken-4 {
  background-color: #0D47A1 !important;
}

.blue-text.text-darken-4 {
  color: #0D47A1 !important;
}

.blue.accent-1 {
  background-color: #82B1FF !important;
}

.blue-text.text-accent-1 {
  color: #82B1FF !important;
}

.blue.accent-2 {
  background-color: #448AFF !important;
}

.blue-text.text-accent-2 {
  color: #448AFF !important;
}

.blue.accent-3 {
  background-color: #2979FF !important;
}

.blue-text.text-accent-3 {
  color: #2979FF !important;
}

.blue.accent-4 {
  background-color: #2962FF !important;
}

.blue-text.text-accent-4 {
  color: #2962FF !important;
}

.light-blue {
  background-color: #03a9f4 !important;
}

.light-blue-text {
  color: #03a9f4 !important;
}

.light-blue.lighten-5 {
  background-color: #e1f5fe !important;
}

.light-blue-text.text-lighten-5 {
  color: #e1f5fe !important;
}

.light-blue.lighten-4 {
  background-color: #b3e5fc !important;
}

.light-blue-text.text-lighten-4 {
  color: #b3e5fc !important;
}

.light-blue.lighten-3 {
  background-color: #81d4fa !important;
}

.light-blue-text.text-lighten-3 {
  color: #81d4fa !important;
}

.light-blue.lighten-2 {
  background-color: #4fc3f7 !important;
}

.light-blue-text.text-lighten-2 {
  color: #4fc3f7 !important;
}

.light-blue.lighten-1 {
  background-color: #29b6f6 !important;
}

.light-blue-text.text-lighten-1 {
  color: #29b6f6 !important;
}

.light-blue.darken-1 {
  background-color: #039be5 !important;
}

.light-blue-text.text-darken-1 {
  color: #039be5 !important;
}

.light-blue.darken-2 {
  background-color: #0288d1 !important;
}

.light-blue-text.text-darken-2 {
  color: #0288d1 !important;
}

.light-blue.darken-3 {
  background-color: #0277bd !important;
}

.light-blue-text.text-darken-3 {
  color: #0277bd !important;
}

.light-blue.darken-4 {
  background-color: #01579b !important;
}

.light-blue-text.text-darken-4 {
  color: #01579b !important;
}

.light-blue.accent-1 {
  background-color: #80d8ff !important;
}

.light-blue-text.text-accent-1 {
  color: #80d8ff !important;
}

.light-blue.accent-2 {
  background-color: #40c4ff !important;
}

.light-blue-text.text-accent-2 {
  color: #40c4ff !important;
}

.light-blue.accent-3 {
  background-color: #00b0ff !important;
}

.light-blue-text.text-accent-3 {
  color: #00b0ff !important;
}

.light-blue.accent-4 {
  background-color: #0091ea !important;
}

.light-blue-text.text-accent-4 {
  color: #0091ea !important;
}

.cyan {
  background-color: #00bcd4 !important;
}

.cyan-text {
  color: #00bcd4 !important;
}

.cyan.lighten-5 {
  background-color: #e0f7fa !important;
}

.cyan-text.text-lighten-5 {
  color: #e0f7fa !important;
}

.cyan.lighten-4 {
  background-color: #b2ebf2 !important;
}

.cyan-text.text-lighten-4 {
  color: #b2ebf2 !important;
}

.cyan.lighten-3 {
  background-color: #80deea !important;
}

.cyan-text.text-lighten-3 {
  color: #80deea !important;
}

.cyan.lighten-2 {
  background-color: #4dd0e1 !important;
}

.cyan-text.text-lighten-2 {
  color: #4dd0e1 !important;
}

.cyan.lighten-1 {
  background-color: #26c6da !important;
}

.cyan-text.text-lighten-1 {
  color: #26c6da !important;
}

.cyan.darken-1 {
  background-color: #00acc1 !important;
}

.cyan-text.text-darken-1 {
  color: #00acc1 !important;
}

.cyan.darken-2 {
  background-color: #0097a7 !important;
}

.cyan-text.text-darken-2 {
  color: #0097a7 !important;
}

.cyan.darken-3 {
  background-color: #00838f !important;
}

.cyan-text.text-darken-3 {
  color: #00838f !important;
}

.cyan.darken-4 {
  background-color: #006064 !important;
}

.cyan-text.text-darken-4 {
  color: #006064 !important;
}

.cyan.accent-1 {
  background-color: #84ffff !important;
}

.cyan-text.text-accent-1 {
  color: #84ffff !important;
}

.cyan.accent-2 {
  background-color: #18ffff !important;
}

.cyan-text.text-accent-2 {
  color: #18ffff !important;
}

.cyan.accent-3 {
  background-color: #00e5ff !important;
}

.cyan-text.text-accent-3 {
  color: #00e5ff !important;
}

.cyan.accent-4 {
  background-color: #00b8d4 !important;
}

.cyan-text.text-accent-4 {
  color: #00b8d4 !important;
}

.teal {
  background-color: #009688 !important;
}

.teal-text {
  color: #009688 !important;
}

.teal.lighten-5 {
  background-color: #e0f2f1 !important;
}

.teal-text.text-lighten-5 {
  color: #e0f2f1 !important;
}

.teal.lighten-4 {
  background-color: #b2dfdb !important;
}

.teal-text.text-lighten-4 {
  color: #b2dfdb !important;
}

.teal.lighten-3 {
  background-color: #80cbc4 !important;
}

.teal-text.text-lighten-3 {
  color: #80cbc4 !important;
}

.teal.lighten-2 {
  background-color: #4db6ac !important;
}

.teal-text.text-lighten-2 {
  color: #4db6ac !important;
}

.teal.lighten-1 {
  background-color: #26a69a !important;
}

.teal-text.text-lighten-1 {
  color: #26a69a !important;
}

.teal.darken-1 {
  background-color: #00897b !important;
}

.teal-text.text-darken-1 {
  color: #00897b !important;
}

.teal.darken-2 {
  background-color: #00796b !important;
}

.teal-text.text-darken-2 {
  color: #00796b !important;
}

.teal.darken-3 {
  background-color: #00695c !important;
}

.teal-text.text-darken-3 {
  color: #00695c !important;
}

.teal.darken-4 {
  background-color: #004d40 !important;
}

.teal-text.text-darken-4 {
  color: #004d40 !important;
}

.teal.accent-1 {
  background-color: #a7ffeb !important;
}

.teal-text.text-accent-1 {
  color: #a7ffeb !important;
}

.teal.accent-2 {
  background-color: #64ffda !important;
}

.teal-text.text-accent-2 {
  color: #64ffda !important;
}

.teal.accent-3 {
  background-color: #1de9b6 !important;
}

.teal-text.text-accent-3 {
  color: #1de9b6 !important;
}

.teal.accent-4 {
  background-color: #00bfa5 !important;
}

.teal-text.text-accent-4 {
  color: #00bfa5 !important;
}

.green {
  background-color: #4CAF50 !important;
}

.green-text {
  color: #4CAF50 !important;
}

.green.lighten-5 {
  background-color: #E8F5E9 !important;
}

.green-text.text-lighten-5 {
  color: #E8F5E9 !important;
}

.green.lighten-4 {
  background-color: #C8E6C9 !important;
}

.green-text.text-lighten-4 {
  color: #C8E6C9 !important;
}

.green.lighten-3 {
  background-color: #A5D6A7 !important;
}

.green-text.text-lighten-3 {
  color: #A5D6A7 !important;
}

.green.lighten-2 {
  background-color: #81C784 !important;
}

.green-text.text-lighten-2 {
  color: #81C784 !important;
}

.green.lighten-1 {
  background-color: #66BB6A !important;
}

.green-text.text-lighten-1 {
  color: #66BB6A !important;
}

.green.darken-1 {
  background-color: #43A047 !important;
}

.green-text.text-darken-1 {
  color: #43A047 !important;
}

.green.darken-2 {
  background-color: #388E3C !important;
}

.green-text.text-darken-2 {
  color: #388E3C !important;
}

.green.darken-3 {
  background-color: #2E7D32 !important;
}

.green-text.text-darken-3 {
  color: #2E7D32 !important;
}

.green.darken-4 {
  background-color: #1B5E20 !important;
}

.green-text.text-darken-4 {
  color: #1B5E20 !important;
}

.green.accent-1 {
  background-color: #B9F6CA !important;
}

.green-text.text-accent-1 {
  color: #B9F6CA !important;
}

.green.accent-2 {
  background-color: #69F0AE !important;
}

.green-text.text-accent-2 {
  color: #69F0AE !important;
}

.green.accent-3 {
  background-color: #00E676 !important;
}

.green-text.text-accent-3 {
  color: #00E676 !important;
}

.green.accent-4 {
  background-color: #00C853 !important;
}

.green-text.text-accent-4 {
  color: #00C853 !important;
}

.light-green {
  background-color: #8bc34a !important;
}

.light-green-text {
  color: #8bc34a !important;
}

.light-green.lighten-5 {
  background-color: #f1f8e9 !important;
}

.light-green-text.text-lighten-5 {
  color: #f1f8e9 !important;
}

.light-green.lighten-4 {
  background-color: #dcedc8 !important;
}

.light-green-text.text-lighten-4 {
  color: #dcedc8 !important;
}

.light-green.lighten-3 {
  background-color: #c5e1a5 !important;
}

.light-green-text.text-lighten-3 {
  color: #c5e1a5 !important;
}

.light-green.lighten-2 {
  background-color: #aed581 !important;
}

.light-green-text.text-lighten-2 {
  color: #aed581 !important;
}

.light-green.lighten-1 {
  background-color: #9ccc65 !important;
}

.light-green-text.text-lighten-1 {
  color: #9ccc65 !important;
}

.light-green.darken-1 {
  background-color: #7cb342 !important;
}

.light-green-text.text-darken-1 {
  color: #7cb342 !important;
}

.light-green.darken-2 {
  background-color: #689f38 !important;
}

.light-green-text.text-darken-2 {
  color: #689f38 !important;
}

.light-green.darken-3 {
  background-color: #558b2f !important;
}

.light-green-text.text-darken-3 {
  color: #558b2f !important;
}

.light-green.darken-4 {
  background-color: #33691e !important;
}

.light-green-text.text-darken-4 {
  color: #33691e !important;
}

.light-green.accent-1 {
  background-color: #ccff90 !important;
}

.light-green-text.text-accent-1 {
  color: #ccff90 !important;
}

.light-green.accent-2 {
  background-color: #b2ff59 !important;
}

.light-green-text.text-accent-2 {
  color: #b2ff59 !important;
}

.light-green.accent-3 {
  background-color: #76ff03 !important;
}

.light-green-text.text-accent-3 {
  color: #76ff03 !important;
}

.light-green.accent-4 {
  background-color: #64dd17 !important;
}

.light-green-text.text-accent-4 {
  color: #64dd17 !important;
}

.lime {
  background-color: #cddc39 !important;
}

.lime-text {
  color: #cddc39 !important;
}

.lime.lighten-5 {
  background-color: #f9fbe7 !important;
}

.lime-text.text-lighten-5 {
  color: #f9fbe7 !important;
}

.lime.lighten-4 {
  background-color: #f0f4c3 !important;
}

.lime-text.text-lighten-4 {
  color: #f0f4c3 !important;
}

.lime.lighten-3 {
  background-color: #e6ee9c !important;
}

.lime-text.text-lighten-3 {
  color: #e6ee9c !important;
}

.lime.lighten-2 {
  background-color: #dce775 !important;
}

.lime-text.text-lighten-2 {
  color: #dce775 !important;
}

.lime.lighten-1 {
  background-color: #d4e157 !important;
}

.lime-text.text-lighten-1 {
  color: #d4e157 !important;
}

.lime.darken-1 {
  background-color: #c0ca33 !important;
}

.lime-text.text-darken-1 {
  color: #c0ca33 !important;
}

.lime.darken-2 {
  background-color: #afb42b !important;
}

.lime-text.text-darken-2 {
  color: #afb42b !important;
}

.lime.darken-3 {
  background-color: #9e9d24 !important;
}

.lime-text.text-darken-3 {
  color: #9e9d24 !important;
}

.lime.darken-4 {
  background-color: #827717 !important;
}

.lime-text.text-darken-4 {
  color: #827717 !important;
}

.lime.accent-1 {
  background-color: #f4ff81 !important;
}

.lime-text.text-accent-1 {
  color: #f4ff81 !important;
}

.lime.accent-2 {
  background-color: #eeff41 !important;
}

.lime-text.text-accent-2 {
  color: #eeff41 !important;
}

.lime.accent-3 {
  background-color: #c6ff00 !important;
}

.lime-text.text-accent-3 {
  color: #c6ff00 !important;
}

.lime.accent-4 {
  background-color: #aeea00 !important;
}

.lime-text.text-accent-4 {
  color: #aeea00 !important;
}

.yellow {
  background-color: #ffeb3b !important;
}

.yellow-text {
  color: #ffeb3b !important;
}

.yellow.lighten-5 {
  background-color: #fffde7 !important;
}

.yellow-text.text-lighten-5 {
  color: #fffde7 !important;
}

.yellow.lighten-4 {
  background-color: #fff9c4 !important;
}

.yellow-text.text-lighten-4 {
  color: #fff9c4 !important;
}

.yellow.lighten-3 {
  background-color: #fff59d !important;
}

.yellow-text.text-lighten-3 {
  color: #fff59d !important;
}

.yellow.lighten-2 {
  background-color: #fff176 !important;
}

.yellow-text.text-lighten-2 {
  color: #fff176 !important;
}

.yellow.lighten-1 {
  background-color: #ffee58 !important;
}

.yellow-text.text-lighten-1 {
  color: #ffee58 !important;
}

.yellow.darken-1 {
  background-color: #fdd835 !important;
}

.yellow-text.text-darken-1 {
  color: #fdd835 !important;
}

.yellow.darken-2 {
  background-color: #fbc02d !important;
}

.yellow-text.text-darken-2 {
  color: #fbc02d !important;
}

.yellow.darken-3 {
  background-color: #f9a825 !important;
}

.yellow-text.text-darken-3 {
  color: #f9a825 !important;
}

.yellow.darken-4 {
  background-color: #f57f17 !important;
}

.yellow-text.text-darken-4 {
  color: #f57f17 !important;
}

.yellow.accent-1 {
  background-color: #ffff8d !important;
}

.yellow-text.text-accent-1 {
  color: #ffff8d !important;
}

.yellow.accent-2 {
  background-color: #ffff00 !important;
}

.yellow-text.text-accent-2 {
  color: #ffff00 !important;
}

.yellow.accent-3 {
  background-color: #ffea00 !important;
}

.yellow-text.text-accent-3 {
  color: #ffea00 !important;
}

.yellow.accent-4 {
  background-color: #ffd600 !important;
}

.yellow-text.text-accent-4 {
  color: #ffd600 !important;
}

.amber {
  background-color: #ffc107 !important;
}

.amber-text {
  color: #ffc107 !important;
}

.amber.lighten-5 {
  background-color: #fff8e1 !important;
}

.amber-text.text-lighten-5 {
  color: #fff8e1 !important;
}

.amber.lighten-4 {
  background-color: #ffecb3 !important;
}

.amber-text.text-lighten-4 {
  color: #ffecb3 !important;
}

.amber.lighten-3 {
  background-color: #ffe082 !important;
}

.amber-text.text-lighten-3 {
  color: #ffe082 !important;
}

.amber.lighten-2 {
  background-color: #ffd54f !important;
}

.amber-text.text-lighten-2 {
  color: #ffd54f !important;
}

.amber.lighten-1 {
  background-color: #ffca28 !important;
}

.amber-text.text-lighten-1 {
  color: #ffca28 !important;
}

.amber.darken-1 {
  background-color: #ffb300 !important;
}

.amber-text.text-darken-1 {
  color: #ffb300 !important;
}

.amber.darken-2 {
  background-color: #ffa000 !important;
}

.amber-text.text-darken-2 {
  color: #ffa000 !important;
}

.amber.darken-3 {
  background-color: #ff8f00 !important;
}

.amber-text.text-darken-3 {
  color: #ff8f00 !important;
}

.amber.darken-4 {
  background-color: #ff6f00 !important;
}

.amber-text.text-darken-4 {
  color: #ff6f00 !important;
}

.amber.accent-1 {
  background-color: #ffe57f !important;
}

.amber-text.text-accent-1 {
  color: #ffe57f !important;
}

.amber.accent-2 {
  background-color: #ffd740 !important;
}

.amber-text.text-accent-2 {
  color: #ffd740 !important;
}

.amber.accent-3 {
  background-color: #ffc400 !important;
}

.amber-text.text-accent-3 {
  color: #ffc400 !important;
}

.amber.accent-4 {
  background-color: #ffab00 !important;
}

.amber-text.text-accent-4 {
  color: #ffab00 !important;
}

.orange {
  background-color: #ff9800 !important;
}

.orange-text {
  color: #ff9800 !important;
}

.orange.lighten-5 {
  background-color: #fff3e0 !important;
}

.orange-text.text-lighten-5 {
  color: #fff3e0 !important;
}

.orange.lighten-4 {
  background-color: #ffe0b2 !important;
}

.orange-text.text-lighten-4 {
  color: #ffe0b2 !important;
}

.orange.lighten-3 {
  background-color: #ffcc80 !important;
}

.orange-text.text-lighten-3 {
  color: #ffcc80 !important;
}

.orange.lighten-2 {
  background-color: #ffb74d !important;
}

.orange-text.text-lighten-2 {
  color: #ffb74d !important;
}

.orange.lighten-1 {
  background-color: #ffa726 !important;
}

.orange-text.text-lighten-1 {
  color: #ffa726 !important;
}

.orange.darken-1 {
  background-color: #fb8c00 !important;
}

.orange-text.text-darken-1 {
  color: #fb8c00 !important;
}

.orange.darken-2 {
  background-color: #f57c00 !important;
}

.orange-text.text-darken-2 {
  color: #f57c00 !important;
}

.orange.darken-3 {
  background-color: #ef6c00 !important;
}

.orange-text.text-darken-3 {
  color: #ef6c00 !important;
}

.orange.darken-4 {
  background-color: #e65100 !important;
}

.orange-text.text-darken-4 {
  color: #e65100 !important;
}

.orange.accent-1 {
  background-color: #ffd180 !important;
}

.orange-text.text-accent-1 {
  color: #ffd180 !important;
}

.orange.accent-2 {
  background-color: #ffab40 !important;
}

.orange-text.text-accent-2 {
  color: #ffab40 !important;
}

.orange.accent-3 {
  background-color: #ff9100 !important;
}

.orange-text.text-accent-3 {
  color: #ff9100 !important;
}

.orange.accent-4 {
  background-color: #ff6d00 !important;
}

.orange-text.text-accent-4 {
  color: #ff6d00 !important;
}

.deep-orange {
  background-color: #ff5722 !important;
}

.deep-orange-text {
  color: #ff5722 !important;
}

.deep-orange.lighten-5 {
  background-color: #fbe9e7 !important;
}

.deep-orange-text.text-lighten-5 {
  color: #fbe9e7 !important;
}

.deep-orange.lighten-4 {
  background-color: #ffccbc !important;
}

.deep-orange-text.text-lighten-4 {
  color: #ffccbc !important;
}

.deep-orange.lighten-3 {
  background-color: #ffab91 !important;
}

.deep-orange-text.text-lighten-3 {
  color: #ffab91 !important;
}

.deep-orange.lighten-2 {
  background-color: #ff8a65 !important;
}

.deep-orange-text.text-lighten-2 {
  color: #ff8a65 !important;
}

.deep-orange.lighten-1 {
  background-color: #ff7043 !important;
}

.deep-orange-text.text-lighten-1 {
  color: #ff7043 !important;
}

.deep-orange.darken-1 {
  background-color: #f4511e !important;
}

.deep-orange-text.text-darken-1 {
  color: #f4511e !important;
}

.deep-orange.darken-2 {
  background-color: #e64a19 !important;
}

.deep-orange-text.text-darken-2 {
  color: #e64a19 !important;
}

.deep-orange.darken-3 {
  background-color: #d84315 !important;
}

.deep-orange-text.text-darken-3 {
  color: #d84315 !important;
}

.deep-orange.darken-4 {
  background-color: #bf360c !important;
}

.deep-orange-text.text-darken-4 {
  color: #bf360c !important;
}

.deep-orange.accent-1 {
  background-color: #ff9e80 !important;
}

.deep-orange-text.text-accent-1 {
  color: #ff9e80 !important;
}

.deep-orange.accent-2 {
  background-color: #ff6e40 !important;
}

.deep-orange-text.text-accent-2 {
  color: #ff6e40 !important;
}

.deep-orange.accent-3 {
  background-color: #ff3d00 !important;
}

.deep-orange-text.text-accent-3 {
  color: #ff3d00 !important;
}

.deep-orange.accent-4 {
  background-color: #dd2c00 !important;
}

.deep-orange-text.text-accent-4 {
  color: #dd2c00 !important;
}

.brown {
  background-color: #795548 !important;
}

.brown-text {
  color: #795548 !important;
}

.brown.lighten-5 {
  background-color: #efebe9 !important;
}

.brown-text.text-lighten-5 {
  color: #efebe9 !important;
}

.brown.lighten-4 {
  background-color: #d7ccc8 !important;
}

.brown-text.text-lighten-4 {
  color: #d7ccc8 !important;
}

.brown.lighten-3 {
  background-color: #bcaaa4 !important;
}

.brown-text.text-lighten-3 {
  color: #bcaaa4 !important;
}

.brown.lighten-2 {
  background-color: #a1887f !important;
}

.brown-text.text-lighten-2 {
  color: #a1887f !important;
}

.brown.lighten-1 {
  background-color: #8d6e63 !important;
}

.brown-text.text-lighten-1 {
  color: #8d6e63 !important;
}

.brown.darken-1 {
  background-color: #6d4c41 !important;
}

.brown-text.text-darken-1 {
  color: #6d4c41 !important;
}

.brown.darken-2 {
  background-color: #5d4037 !important;
}

.brown-text.text-darken-2 {
  color: #5d4037 !important;
}

.brown.darken-3 {
  background-color: #4e342e !important;
}

.brown-text.text-darken-3 {
  color: #4e342e !important;
}

.brown.darken-4 {
  background-color: #3e2723 !important;
}

.brown-text.text-darken-4 {
  color: #3e2723 !important;
}

.blue-grey {
  background-color: #607d8b !important;
}

.blue-grey-text {
  color: #607d8b !important;
}

.blue-grey.lighten-5 {
  background-color: #eceff1 !important;
}

.blue-grey-text.text-lighten-5 {
  color: #eceff1 !important;
}

.blue-grey.lighten-4 {
  background-color: #cfd8dc !important;
}

.blue-grey-text.text-lighten-4 {
  color: #cfd8dc !important;
}

.blue-grey.lighten-3 {
  background-color: #b0bec5 !important;
}

.blue-grey-text.text-lighten-3 {
  color: #b0bec5 !important;
}

.blue-grey.lighten-2 {
  background-color: #90a4ae !important;
}

.blue-grey-text.text-lighten-2 {
  color: #90a4ae !important;
}

.blue-grey.lighten-1 {
  background-color: #78909c !important;
}

.blue-grey-text.text-lighten-1 {
  color: #78909c !important;
}

.blue-grey.darken-1 {
  background-color: #546e7a !important;
}

.blue-grey-text.text-darken-1 {
  color: #546e7a !important;
}

.blue-grey.darken-2 {
  background-color: #455a64 !important;
}

.blue-grey-text.text-darken-2 {
  color: #455a64 !important;
}

.blue-grey.darken-3 {
  background-color: #37474f !important;
}

.blue-grey-text.text-darken-3 {
  color: #37474f !important;
}

.blue-grey.darken-4 {
  background-color: #263238 !important;
}

.blue-grey-text.text-darken-4 {
  color: #263238 !important;
}

.grey {
  background-color: #9e9e9e !important;
}

.grey-text {
  color: #9e9e9e !important;
}

.grey.lighten-5 {
  background-color: #fafafa !important;
}

.grey-text.text-lighten-5 {
  color: #fafafa !important;
}

.grey.lighten-4 {
  background-color: #f5f5f5 !important;
}

.grey-text.text-lighten-4 {
  color: #f5f5f5 !important;
}

.grey.lighten-3 {
  background-color: #eeeeee !important;
}

.grey-text.text-lighten-3 {
  color: #eeeeee !important;
}

.grey.lighten-2 {
  background-color: #e0e0e0 !important;
}

.grey-text.text-lighten-2 {
  color: #e0e0e0 !important;
}

.grey.lighten-1 {
  background-color: #bdbdbd !important;
}

.grey-text.text-lighten-1 {
  color: #bdbdbd !important;
}

.grey.darken-1 {
  background-color: #757575 !important;
}

.grey-text.text-darken-1 {
  color: #757575 !important;
}

.grey.darken-2 {
  background-color: #616161 !important;
}

.grey-text.text-darken-2 {
  color: #616161 !important;
}

.grey.darken-3 {
  background-color: #424242 !important;
}

.grey-text.text-darken-3 {
  color: #424242 !important;
}

.grey.darken-4 {
  background-color: #212121 !important;
}

.grey-text.text-darken-4 {
  color: #212121 !important;
}

.black {
  background-color: #000000 !important;
}

.black-text {
  color: #000000 !important;
}

.white {
  background-color: #FFFFFF !important;
}

.white-text {
  color: #FFFFFF !important;
}

.transparent {
  background-color: transparent !important;
}

.transparent-text {
  color: transparent !important;
}

/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}

/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main {
  /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
     -moz-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */
template {
  display: none;
}

/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

*, *:before, *:after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

button,
input,
optgroup,
select,
textarea {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

ul:not(.browser-default) {
  padding-left: 0;
  list-style-type: none;
}

ul:not(.browser-default) > li {
  list-style-type: none;
}

a {
  color: #039be5;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.valign-wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}

.clearfix {
  clear: both;
}

.z-depth-0 {
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}

/* 2dp elevation modified*/
.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-small, .btn-floating, .dropdown-content, .collapsible, .sidenav {
  -webkit-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
          box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
}

.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-small:hover, .btn-floating:hover {
  -webkit-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);
          box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2);
}

/* 6dp elevation modified*/
.z-depth-2 {
  -webkit-box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
          box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
}

/* 12dp elevation modified*/
.z-depth-3 {
  -webkit-box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
          box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
}

/* 16dp elevation */
.z-depth-4 {
  -webkit-box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);
          box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2);
}

/* 24dp elevation */
.z-depth-5, .modal {
  -webkit-box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);
          box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);
}

.hoverable {
  -webkit-transition: -webkit-box-shadow .25s;
  transition: -webkit-box-shadow .25s;
  transition: box-shadow .25s;
  transition: box-shadow .25s, -webkit-box-shadow .25s;
}

.hoverable:hover {
  -webkit-box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
          box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

.divider {
  height: 1px;
  overflow: hidden;
  background-color: #e0e0e0;
}

blockquote {
  margin: 20px 0;
  padding-left: 1.5rem;
  border-left: 5px solid #ee6e73;
}

i {
  line-height: inherit;
}

i.left {
  float: left;
  margin-right: 15px;
}

i.right {
  float: right;
  margin-left: 15px;
}

i.tiny {
  font-size: 1rem;
}

i.small {
  font-size: 2rem;
}

i.medium {
  font-size: 4rem;
}

i.large {
  font-size: 6rem;
}

img.responsive-img,
video.responsive-video {
  max-width: 100%;
  height: auto;
}

.pagination li {
  display: inline-block;
  border-radius: 2px;
  text-align: center;
  vertical-align: top;
  height: 30px;
}

.pagination li a {
  color: #444;
  display: inline-block;
  font-size: 1.2rem;
  padding: 0 10px;
  line-height: 30px;
}

.pagination li.active a {
  color: #fff;
}

.pagination li.active {
  background-color: #ee6e73;
}

.pagination li.disabled a {
  cursor: default;
  color: #999;
}

.pagination li i {
  font-size: 2rem;
}

.pagination li.pages ul li {
  display: inline-block;
  float: none;
}

@media only screen and (max-width: 992px) {
  .pagination {
    width: 100%;
  }
  .pagination li.prev,
  .pagination li.next {
    width: 10%;
  }
  .pagination li.pages {
    width: 80%;
    overflow: hidden;
    white-space: nowrap;
  }
}

.breadcrumb {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.7);
}

.breadcrumb i,
.breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"],
.breadcrumb i.material-icons {
  display: inline-block;
  float: left;
  font-size: 24px;
}

.breadcrumb:before {
  content: '\E5CC';
  color: rgba(255, 255, 255, 0.7);
  vertical-align: top;
  display: inline-block;
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 25px;
  margin: 0 10px 0 8px;
  -webkit-font-smoothing: antialiased;
}

.breadcrumb:first-child:before {
  display: none;
}

.breadcrumb:last-child {
  color: #fff;
}

.parallax-container {
  position: relative;
  overflow: hidden;
  height: 500px;
}

.parallax-container .parallax {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}

.parallax-container .parallax img {
  opacity: 0;
  position: absolute;
  left: 50%;
  bottom: 0;
  min-width: 100%;
  min-height: 100%;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.pin-top, .pin-bottom {
  position: relative;
}

.pinned {
  position: fixed !important;
}

/*********************
  Transition Classes
**********************/
ul.staggered-list li {
  opacity: 0;
}

.fade-in {
  opacity: 0;
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
}

/*********************
  Media Query Classes
**********************/
@media only screen and (max-width: 600px) {
  .hide-on-small-only, .hide-on-small-and-down {
    display: none !important;
  }
}

@media only screen and (max-width: 992px) {
  .hide-on-med-and-down {
    display: none !important;
  }
}

@media only screen and (min-width: 601px) {
  .hide-on-med-and-up {
    display: none !important;
  }
}

@media only screen and (min-width: 600px) and (max-width: 992px) {
  .hide-on-med-only {
    display: none !important;
  }
}

@media only screen and (min-width: 993px) {
  .hide-on-large-only {
    display: none !important;
  }
}

@media only screen and (min-width: 1201px) {
  .hide-on-extra-large-only {
    display: none !important;
  }
}

@media only screen and (min-width: 1201px) {
  .show-on-extra-large {
    display: block !important;
  }
}

@media only screen and (min-width: 993px) {
  .show-on-large {
    display: block !important;
  }
}

@media only screen and (min-width: 600px) and (max-width: 992px) {
  .show-on-medium {
    display: block !important;
  }
}

@media only screen and (max-width: 600px) {
  .show-on-small {
    display: block !important;
  }
}

@media only screen and (min-width: 601px) {
  .show-on-medium-and-up {
    display: block !important;
  }
}

@media only screen and (max-width: 992px) {
  .show-on-medium-and-down {
    display: block !important;
  }
}

@media only screen and (max-width: 600px) {
  .center-on-small-only {
    text-align: center;
  }
}

.page-footer {
  padding-top: 20px;
  color: #fff;
  background-color: #ee6e73;
}

.page-footer .footer-copyright {
  overflow: hidden;
  min-height: 50px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 10px 0px;
  color: rgba(255, 255, 255, 0.8);
  background-color: rgba(51, 51, 51, 0.08);
}

table, th, td {
  border: none;
}

table {
  width: 100%;
  display: table;
  border-collapse: collapse;
  border-spacing: 0;
}

table.striped tr {
  border-bottom: none;
}

table.striped > tbody > tr:nth-child(odd) {
  background-color: rgba(242, 242, 242, 0.5);
}

table.striped > tbody > tr > td {
  border-radius: 0;
}

table.highlight > tbody > tr {
  -webkit-transition: background-color .25s ease;
  transition: background-color .25s ease;
}

table.highlight > tbody > tr:hover {
  background-color: rgba(242, 242, 242, 0.5);
}

table.centered thead tr th, table.centered tbody tr td {
  text-align: center;
}

tr {
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

td, th {
  padding: 15px 5px;
  display: table-cell;
  text-align: left;
  vertical-align: middle;
  border-radius: 2px;
}

@media only screen and (max-width: 992px) {
  table.responsive-table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    display: block;
    position: relative;
    /* sort out borders */
  }
  table.responsive-table td:empty:before {
    content: '\00a0';
  }
  table.responsive-table th,
  table.responsive-table td {
    margin: 0;
    vertical-align: top;
  }
  table.responsive-table th {
    text-align: left;
  }
  table.responsive-table thead {
    display: block;
    float: left;
  }
  table.responsive-table thead tr {
    display: block;
    padding: 0 10px 0 0;
  }
  table.responsive-table thead tr th::before {
    content: "\00a0";
  }
  table.responsive-table tbody {
    display: block;
    width: auto;
    position: relative;
    overflow-x: auto;
    white-space: nowrap;
  }
  table.responsive-table tbody tr {
    display: inline-block;
    vertical-align: top;
  }
  table.responsive-table th {
    display: block;
    text-align: right;
  }
  table.responsive-table td {
    display: block;
    min-height: 1.25em;
    text-align: left;
  }
  table.responsive-table tr {
    border-bottom: none;
    padding: 0 10px;
  }
  table.responsive-table thead {
    border: 0;
    border-right: 1px solid rgba(0, 0, 0, 0.12);
  }
}

.collection {
  margin: 0.5rem 0 1rem 0;
  border: 1px solid #e0e0e0;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}

.collection .collection-item {
  background-color: #fff;
  line-height: 1.5rem;
  padding: 10px 20px;
  margin: 0;
  border-bottom: 1px solid #e0e0e0;
}

.collection .collection-item.avatar {
  min-height: 84px;
  padding-left: 72px;
  position: relative;
}

.collection .collection-item.avatar:not(.circle-clipper) > .circle,
.collection .collection-item.avatar :not(.circle-clipper) > .circle {
  position: absolute;
  width: 42px;
  height: 42px;
  overflow: hidden;
  left: 15px;
  display: inline-block;
  vertical-align: middle;
}

.collection .collection-item.avatar i.circle {
  font-size: 18px;
  line-height: 42px;
  color: #fff;
  background-color: #999;
  text-align: center;
}

.collection .collection-item.avatar .title {
  font-size: 16px;
}

.collection .collection-item.avatar p {
  margin: 0;
}

.collection .collection-item.avatar .secondary-content {
  position: absolute;
  top: 16px;
  right: 16px;
}

.collection .collection-item:last-child {
  border-bottom: none;
}

.collection .collection-item.active {
  background-color: #26a69a;
  color: #eafaf9;
}

.collection .collection-item.active .secondary-content {
  color: #fff;
}

.collection a.collection-item {
  display: block;
  -webkit-transition: .25s;
  transition: .25s;
  color: #26a69a;
}

.collection a.collection-item:not(.active):hover {
  background-color: #ddd;
}

.collection.with-header .collection-header {
  background-color: #fff;
  border-bottom: 1px solid #e0e0e0;
  padding: 10px 20px;
}

.collection.with-header .collection-item {
  padding-left: 30px;
}

.collection.with-header .collection-item.avatar {
  padding-left: 72px;
}

.secondary-content {
  float: right;
  color: #26a69a;
}

.collapsible .collection {
  margin: 0;
  border: none;
}

.video-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.video-container iframe, .video-container object, .video-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.progress {
  position: relative;
  height: 4px;
  display: block;
  width: 100%;
  background-color: #acece6;
  border-radius: 2px;
  margin: 0.5rem 0 1rem 0;
  overflow: hidden;
}

.progress .determinate {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  background-color: #26a69a;
  -webkit-transition: width .3s linear;
  transition: width .3s linear;
}

.progress .indeterminate {
  background-color: #26a69a;
}

.progress .indeterminate:before {
  content: '';
  position: absolute;
  background-color: inherit;
  top: 0;
  left: 0;
  bottom: 0;
  will-change: left, right;
  -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
          animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
}

.progress .indeterminate:after {
  content: '';
  position: absolute;
  background-color: inherit;
  top: 0;
  left: 0;
  bottom: 0;
  will-change: left, right;
  -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
          animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
  -webkit-animation-delay: 1.15s;
          animation-delay: 1.15s;
}

@-webkit-keyframes indeterminate {
  0% {
    left: -35%;
    right: 100%;
  }
  60% {
    left: 100%;
    right: -90%;
  }
  100% {
    left: 100%;
    right: -90%;
  }
}

@keyframes indeterminate {
  0% {
    left: -35%;
    right: 100%;
  }
  60% {
    left: 100%;
    right: -90%;
  }
  100% {
    left: 100%;
    right: -90%;
  }
}

@-webkit-keyframes indeterminate-short {
  0% {
    left: -200%;
    right: 100%;
  }
  60% {
    left: 107%;
    right: -8%;
  }
  100% {
    left: 107%;
    right: -8%;
  }
}

@keyframes indeterminate-short {
  0% {
    left: -200%;
    right: 100%;
  }
  60% {
    left: 107%;
    right: -8%;
  }
  100% {
    left: 107%;
    right: -8%;
  }
}

/*******************
  Utility Classes
*******************/
.hide {
  display: none !important;
}

.left-align {
  text-align: left;
}

.right-align {
  text-align: right;
}

.center, .center-align {
  text-align: center;
}

.left {
  float: left !important;
}

.right {
  float: right !important;
}

.no-select, input[type=range],
input[type=range] + .thumb {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.circle {
  border-radius: 50%;
}

.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.truncate {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.no-padding {
  padding: 0 !important;
}

span.badge {
  min-width: 3rem;
  padding: 0 6px;
  margin-left: 14px;
  text-align: center;
  font-size: 1rem;
  line-height: 22px;
  height: 22px;
  color: #757575;
  float: right;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

span.badge.new {
  font-weight: 300;
  font-size: 0.8rem;
  color: #fff;
  background-color: #26a69a;
  border-radius: 2px;
}

span.badge.new:after {
  content: " new";
}

span.badge[data-badge-caption]::after {
  content: " " attr(data-badge-caption);
}

nav ul a span.badge {
  display: inline-block;
  float: none;
  margin-left: 4px;
  line-height: 22px;
  height: 22px;
  -webkit-font-smoothing: auto;
}

.collection-item span.badge {
  margin-top: calc(0.75rem - 11px);
}

.collapsible span.badge {
  margin-left: auto;
}

.sidenav span.badge {
  margin-top: calc(24px - 11px);
}

table span.badge {
  display: inline-block;
  float: none;
  margin-left: auto;
}

/* This is needed for some mobile phones to display the Google Icon font properly */
.material-icons {
  text-rendering: optimizeLegibility;
  -webkit-font-feature-settings: 'liga';
     -moz-font-feature-settings: 'liga';
          font-feature-settings: 'liga';
}

.container {
  margin: 0 auto;
  max-width: 1280px;
  width: 90%;
}

@media only screen and (min-width: 601px) {
  .container {
    width: 85%;
  }
}

@media only screen and (min-width: 993px) {
  .container {
    width: 70%;
  }
}

.col .row {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}

.section {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.section.no-pad {
  padding: 0;
}

.section.no-pad-bot {
  padding-bottom: 0;
}

.section.no-pad-top {
  padding-top: 0;
}

.row {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
}

.row:after {
  content: "";
  display: table;
  clear: both;
}

.row .col {
  float: left;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 0.75rem;
  min-height: 1px;
}

.row .col[class*="push-"], .row .col[class*="pull-"] {
  position: relative;
}

.row .col.s1 {
  width: 8.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s2 {
  width: 16.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s3 {
  width: 25%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s4 {
  width: 33.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s5 {
  width: 41.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s6 {
  width: 50%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s7 {
  width: 58.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s8 {
  width: 66.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s9 {
  width: 75%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s10 {
  width: 83.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s11 {
  width: 91.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s12 {
  width: 100%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.offset-s1 {
  margin-left: 8.3333333333%;
}

.row .col.pull-s1 {
  right: 8.3333333333%;
}

.row .col.push-s1 {
  left: 8.3333333333%;
}

.row .col.offset-s2 {
  margin-left: 16.6666666667%;
}

.row .col.pull-s2 {
  right: 16.6666666667%;
}

.row .col.push-s2 {
  left: 16.6666666667%;
}

.row .col.offset-s3 {
  margin-left: 25%;
}

.row .col.pull-s3 {
  right: 25%;
}

.row .col.push-s3 {
  left: 25%;
}

.row .col.offset-s4 {
  margin-left: 33.3333333333%;
}

.row .col.pull-s4 {
  right: 33.3333333333%;
}

.row .col.push-s4 {
  left: 33.3333333333%;
}

.row .col.offset-s5 {
  margin-left: 41.6666666667%;
}

.row .col.pull-s5 {
  right: 41.6666666667%;
}

.row .col.push-s5 {
  left: 41.6666666667%;
}

.row .col.offset-s6 {
  margin-left: 50%;
}

.row .col.pull-s6 {
  right: 50%;
}

.row .col.push-s6 {
  left: 50%;
}

.row .col.offset-s7 {
  margin-left: 58.3333333333%;
}

.row .col.pull-s7 {
  right: 58.3333333333%;
}

.row .col.push-s7 {
  left: 58.3333333333%;
}

.row .col.offset-s8 {
  margin-left: 66.6666666667%;
}

.row .col.pull-s8 {
  right: 66.6666666667%;
}

.row .col.push-s8 {
  left: 66.6666666667%;
}

.row .col.offset-s9 {
  margin-left: 75%;
}

.row .col.pull-s9 {
  right: 75%;
}

.row .col.push-s9 {
  left: 75%;
}

.row .col.offset-s10 {
  margin-left: 83.3333333333%;
}

.row .col.pull-s10 {
  right: 83.3333333333%;
}

.row .col.push-s10 {
  left: 83.3333333333%;
}

.row .col.offset-s11 {
  margin-left: 91.6666666667%;
}

.row .col.pull-s11 {
  right: 91.6666666667%;
}

.row .col.push-s11 {
  left: 91.6666666667%;
}

.row .col.offset-s12 {
  margin-left: 100%;
}

.row .col.pull-s12 {
  right: 100%;
}

.row .col.push-s12 {
  left: 100%;
}

@media only screen and (min-width: 601px) {
  .row .col.m1 {
    width: 8.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m2 {
    width: 16.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m3 {
    width: 25%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m4 {
    width: 33.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m5 {
    width: 41.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m6 {
    width: 50%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m7 {
    width: 58.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m8 {
    width: 66.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m9 {
    width: 75%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m10 {
    width: 83.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m11 {
    width: 91.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m12 {
    width: 100%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.offset-m1 {
    margin-left: 8.3333333333%;
  }
  .row .col.pull-m1 {
    right: 8.3333333333%;
  }
  .row .col.push-m1 {
    left: 8.3333333333%;
  }
  .row .col.offset-m2 {
    margin-left: 16.6666666667%;
  }
  .row .col.pull-m2 {
    right: 16.6666666667%;
  }
  .row .col.push-m2 {
    left: 16.6666666667%;
  }
  .row .col.offset-m3 {
    margin-left: 25%;
  }
  .row .col.pull-m3 {
    right: 25%;
  }
  .row .col.push-m3 {
    left: 25%;
  }
  .row .col.offset-m4 {
    margin-left: 33.3333333333%;
  }
  .row .col.pull-m4 {
    right: 33.3333333333%;
  }
  .row .col.push-m4 {
    left: 33.3333333333%;
  }
  .row .col.offset-m5 {
    margin-left: 41.6666666667%;
  }
  .row .col.pull-m5 {
    right: 41.6666666667%;
  }
  .row .col.push-m5 {
    left: 41.6666666667%;
  }
  .row .col.offset-m6 {
    margin-left: 50%;
  }
  .row .col.pull-m6 {
    right: 50%;
  }
  .row .col.push-m6 {
    left: 50%;
  }
  .row .col.offset-m7 {
    margin-left: 58.3333333333%;
  }
  .row .col.pull-m7 {
    right: 58.3333333333%;
  }
  .row .col.push-m7 {
    left: 58.3333333333%;
  }
  .row .col.offset-m8 {
    margin-left: 66.6666666667%;
  }
  .row .col.pull-m8 {
    right: 66.6666666667%;
  }
  .row .col.push-m8 {
    left: 66.6666666667%;
  }
  .row .col.offset-m9 {
    margin-left: 75%;
  }
  .row .col.pull-m9 {
    right: 75%;
  }
  .row .col.push-m9 {
    left: 75%;
  }
  .row .col.offset-m10 {
    margin-left: 83.3333333333%;
  }
  .row .col.pull-m10 {
    right: 83.3333333333%;
  }
  .row .col.push-m10 {
    left: 83.3333333333%;
  }
  .row .col.offset-m11 {
    margin-left: 91.6666666667%;
  }
  .row .col.pull-m11 {
    right: 91.6666666667%;
  }
  .row .col.push-m11 {
    left: 91.6666666667%;
  }
  .row .col.offset-m12 {
    margin-left: 100%;
  }
  .row .col.pull-m12 {
    right: 100%;
  }
  .row .col.push-m12 {
    left: 100%;
  }
}

@media only screen and (min-width: 993px) {
  .row .col.l1 {
    width: 8.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l2 {
    width: 16.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l3 {
    width: 25%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l4 {
    width: 33.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l5 {
    width: 41.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l6 {
    width: 50%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l7 {
    width: 58.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l8 {
    width: 66.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l9 {
    width: 75%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l10 {
    width: 83.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l11 {
    width: 91.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l12 {
    width: 100%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.offset-l1 {
    margin-left: 8.3333333333%;
  }
  .row .col.pull-l1 {
    right: 8.3333333333%;
  }
  .row .col.push-l1 {
    left: 8.3333333333%;
  }
  .row .col.offset-l2 {
    margin-left: 16.6666666667%;
  }
  .row .col.pull-l2 {
    right: 16.6666666667%;
  }
  .row .col.push-l2 {
    left: 16.6666666667%;
  }
  .row .col.offset-l3 {
    margin-left: 25%;
  }
  .row .col.pull-l3 {
    right: 25%;
  }
  .row .col.push-l3 {
    left: 25%;
  }
  .row .col.offset-l4 {
    margin-left: 33.3333333333%;
  }
  .row .col.pull-l4 {
    right: 33.3333333333%;
  }
  .row .col.push-l4 {
    left: 33.3333333333%;
  }
  .row .col.offset-l5 {
    margin-left: 41.6666666667%;
  }
  .row .col.pull-l5 {
    right: 41.6666666667%;
  }
  .row .col.push-l5 {
    left: 41.6666666667%;
  }
  .row .col.offset-l6 {
    margin-left: 50%;
  }
  .row .col.pull-l6 {
    right: 50%;
  }
  .row .col.push-l6 {
    left: 50%;
  }
  .row .col.offset-l7 {
    margin-left: 58.3333333333%;
  }
  .row .col.pull-l7 {
    right: 58.3333333333%;
  }
  .row .col.push-l7 {
    left: 58.3333333333%;
  }
  .row .col.offset-l8 {
    margin-left: 66.6666666667%;
  }
  .row .col.pull-l8 {
    right: 66.6666666667%;
  }
  .row .col.push-l8 {
    left: 66.6666666667%;
  }
  .row .col.offset-l9 {
    margin-left: 75%;
  }
  .row .col.pull-l9 {
    right: 75%;
  }
  .row .col.push-l9 {
    left: 75%;
  }
  .row .col.offset-l10 {
    margin-left: 83.3333333333%;
  }
  .row .col.pull-l10 {
    right: 83.3333333333%;
  }
  .row .col.push-l10 {
    left: 83.3333333333%;
  }
  .row .col.offset-l11 {
    margin-left: 91.6666666667%;
  }
  .row .col.pull-l11 {
    right: 91.6666666667%;
  }
  .row .col.push-l11 {
    left: 91.6666666667%;
  }
  .row .col.offset-l12 {
    margin-left: 100%;
  }
  .row .col.pull-l12 {
    right: 100%;
  }
  .row .col.push-l12 {
    left: 100%;
  }
}

@media only screen and (min-width: 1201px) {
  .row .col.xl1 {
    width: 8.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl2 {
    width: 16.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl3 {
    width: 25%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl4 {
    width: 33.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl5 {
    width: 41.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl6 {
    width: 50%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl7 {
    width: 58.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl8 {
    width: 66.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl9 {
    width: 75%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl10 {
    width: 83.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl11 {
    width: 91.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.xl12 {
    width: 100%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.offset-xl1 {
    margin-left: 8.3333333333%;
  }
  .row .col.pull-xl1 {
    right: 8.3333333333%;
  }
  .row .col.push-xl1 {
    left: 8.3333333333%;
  }
  .row .col.offset-xl2 {
    margin-left: 16.6666666667%;
  }
  .row .col.pull-xl2 {
    right: 16.6666666667%;
  }
  .row .col.push-xl2 {
    left: 16.6666666667%;
  }
  .row .col.offset-xl3 {
    margin-left: 25%;
  }
  .row .col.pull-xl3 {
    right: 25%;
  }
  .row .col.push-xl3 {
    left: 25%;
  }
  .row .col.offset-xl4 {
    margin-left: 33.3333333333%;
  }
  .row .col.pull-xl4 {
    right: 33.3333333333%;
  }
  .row .col.push-xl4 {
    left: 33.3333333333%;
  }
  .row .col.offset-xl5 {
    margin-left: 41.6666666667%;
  }
  .row .col.pull-xl5 {
    right: 41.6666666667%;
  }
  .row .col.push-xl5 {
    left: 41.6666666667%;
  }
  .row .col.offset-xl6 {
    margin-left: 50%;
  }
  .row .col.pull-xl6 {
    right: 50%;
  }
  .row .col.push-xl6 {
    left: 50%;
  }
  .row .col.offset-xl7 {
    margin-left: 58.3333333333%;
  }
  .row .col.pull-xl7 {
    right: 58.3333333333%;
  }
  .row .col.push-xl7 {
    left: 58.3333333333%;
  }
  .row .col.offset-xl8 {
    margin-left: 66.6666666667%;
  }
  .row .col.pull-xl8 {
    right: 66.6666666667%;
  }
  .row .col.push-xl8 {
    left: 66.6666666667%;
  }
  .row .col.offset-xl9 {
    margin-left: 75%;
  }
  .row .col.pull-xl9 {
    right: 75%;
  }
  .row .col.push-xl9 {
    left: 75%;
  }
  .row .col.offset-xl10 {
    margin-left: 83.3333333333%;
  }
  .row .col.pull-xl10 {
    right: 83.3333333333%;
  }
  .row .col.push-xl10 {
    left: 83.3333333333%;
  }
  .row .col.offset-xl11 {
    margin-left: 91.6666666667%;
  }
  .row .col.pull-xl11 {
    right: 91.6666666667%;
  }
  .row .col.push-xl11 {
    left: 91.6666666667%;
  }
  .row .col.offset-xl12 {
    margin-left: 100%;
  }
  .row .col.pull-xl12 {
    right: 100%;
  }
  .row .col.push-xl12 {
    left: 100%;
  }
}

nav {
  color: #fff;
  background-color: #ee6e73;
  width: 100%;
  height: 56px;
  line-height: 56px;
}

nav.nav-extended {
  height: auto;
}

nav.nav-extended .nav-wrapper {
  min-height: 56px;
  height: auto;
}

nav.nav-extended .nav-content {
  position: relative;
  line-height: normal;
}

nav a {
  color: #fff;
}

nav i,
nav [class^="mdi-"], nav [class*="mdi-"],
nav i.material-icons {
  display: block;
  font-size: 24px;
  height: 56px;
  line-height: 56px;
}

nav .nav-wrapper {
  position: relative;
  height: 100%;
}

@media only screen and (min-width: 993px) {
  nav a.sidenav-trigger {
    display: none;
  }
}

nav .sidenav-trigger {
  float: left;
  position: relative;
  z-index: 1;
  height: 56px;
  margin: 0 18px;
}

nav .sidenav-trigger i {
  height: 56px;
  line-height: 56px;
}

nav .brand-logo {
  position: absolute;
  color: #fff;
  display: inline-block;
  font-size: 2.1rem;
  padding: 0;
}

nav .brand-logo.center {
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

@media only screen and (max-width: 992px) {
  nav .brand-logo {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  nav .brand-logo.left, nav .brand-logo.right {
    padding: 0;
    -webkit-transform: none;
            transform: none;
  }
  nav .brand-logo.left {
    left: 0.5rem;
  }
  nav .brand-logo.right {
    right: 0.5rem;
    left: auto;
  }
}

nav .brand-logo.right {
  right: 0.5rem;
  padding: 0;
}

nav .brand-logo i,
nav .brand-logo [class^="mdi-"], nav .brand-logo [class*="mdi-"],
nav .brand-logo i.material-icons {
  float: left;
  margin-right: 15px;
}

nav .nav-title {
  display: inline-block;
  font-size: 32px;
  padding: 28px 0;
}

nav ul {
  margin: 0;
}

nav ul li {
  -webkit-transition: background-color .3s;
  transition: background-color .3s;
  float: left;
  padding: 0;
}

nav ul li.active {
  background-color: rgba(0, 0, 0, 0.1);
}

nav ul a {
  -webkit-transition: background-color .3s;
  transition: background-color .3s;
  font-size: 1rem;
  color: #fff;
  display: block;
  padding: 0 15px;
  cursor: pointer;
}

nav ul a.btn, nav ul a.btn-large, nav ul a.btn-small, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {
  margin-top: -2px;
  margin-left: 15px;
  margin-right: 15px;
}

nav ul a.btn > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-small > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {
  height: inherit;
  line-height: inherit;
}

nav ul a:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

nav ul.left {
  float: left;
}

nav form {
  height: 100%;
}

nav .input-field {
  margin: 0;
  height: 100%;
}

nav .input-field input {
  height: 100%;
  font-size: 1.2rem;
  border: none;
  padding-left: 2rem;
}

nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

nav .input-field label {
  top: 0;
  left: 0;
}

nav .input-field label i {
  color: rgba(255, 255, 255, 0.7);
  -webkit-transition: color .3s;
  transition: color .3s;
}

nav .input-field label.active i {
  color: #fff;
}

.navbar-fixed {
  position: relative;
  height: 56px;
  z-index: 997;
}

.navbar-fixed nav {
  position: fixed;
}

@media only screen and (min-width: 601px) {
  nav.nav-extended .nav-wrapper {
    min-height: 64px;
  }
  nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i {
    height: 64px;
    line-height: 64px;
  }
  .navbar-fixed {
    height: 64px;
  }
}

a {
  text-decoration: none;
}

html {
  line-height: 1.5;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  font-weight: normal;
  color: rgba(0, 0, 0, 0.87);
}

@media only screen and (min-width: 0) {
  html {
    font-size: 14px;
  }
}

@media only screen and (min-width: 992px) {
  html {
    font-size: 14.5px;
  }
}

@media only screen and (min-width: 1200px) {
  html {
    font-size: 15px;
  }
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
  line-height: 1.3;
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  font-weight: inherit;
}

h1 {
  font-size: 4.2rem;
  line-height: 110%;
  margin: 2.8rem 0 1.68rem 0;
}

h2 {
  font-size: 3.56rem;
  line-height: 110%;
  margin: 2.3733333333rem 0 1.424rem 0;
}

h3 {
  font-size: 2.92rem;
  line-height: 110%;
  margin: 1.9466666667rem 0 1.168rem 0;
}

h4 {
  font-size: 2.28rem;
  line-height: 110%;
  margin: 1.52rem 0 0.912rem 0;
}

h5 {
  font-size: 1.64rem;
  line-height: 110%;
  margin: 1.0933333333rem 0 0.656rem 0;
}

h6 {
  font-size: 1.15rem;
  line-height: 110%;
  margin: 0.7666666667rem 0 0.46rem 0;
}

em {
  font-style: italic;
}

strong {
  font-weight: 500;
}

small {
  font-size: 75%;
}

.light {
  font-weight: 300;
}

.thin {
  font-weight: 200;
}

@media only screen and (min-width: 360px) {
  .flow-text {
    font-size: 1.2rem;
  }
}

@media only screen and (min-width: 390px) {
  .flow-text {
    font-size: 1.224rem;
  }
}

@media only screen and (min-width: 420px) {
  .flow-text {
    font-size: 1.248rem;
  }
}

@media only screen and (min-width: 450px) {
  .flow-text {
    font-size: 1.272rem;
  }
}

@media only screen and (min-width: 480px) {
  .flow-text {
    font-size: 1.296rem;
  }
}

@media only screen and (min-width: 510px) {
  .flow-text {
    font-size: 1.32rem;
  }
}

@media only screen and (min-width: 540px) {
  .flow-text {
    font-size: 1.344rem;
  }
}

@media only screen and (min-width: 570px) {
  .flow-text {
    font-size: 1.368rem;
  }
}

@media only screen and (min-width: 600px) {
  .flow-text {
    font-size: 1.392rem;
  }
}

@media only screen and (min-width: 630px) {
  .flow-text {
    font-size: 1.416rem;
  }
}

@media only screen and (min-width: 660px) {
  .flow-text {
    font-size: 1.44rem;
  }
}

@media only screen and (min-width: 690px) {
  .flow-text {
    font-size: 1.464rem;
  }
}

@media only screen and (min-width: 720px) {
  .flow-text {
    font-size: 1.488rem;
  }
}

@media only screen and (min-width: 750px) {
  .flow-text {
    font-size: 1.512rem;
  }
}

@media only screen and (min-width: 780px) {
  .flow-text {
    font-size: 1.536rem;
  }
}

@media only screen and (min-width: 810px) {
  .flow-text {
    font-size: 1.56rem;
  }
}

@media only screen and (min-width: 840px) {
  .flow-text {
    font-size: 1.584rem;
  }
}

@media only screen and (min-width: 870px) {
  .flow-text {
    font-size: 1.608rem;
  }
}

@media only screen and (min-width: 900px) {
  .flow-text {
    font-size: 1.632rem;
  }
}

@media only screen and (min-width: 930px) {
  .flow-text {
    font-size: 1.656rem;
  }
}

@media only screen and (min-width: 960px) {
  .flow-text {
    font-size: 1.68rem;
  }
}

@media only screen and (max-width: 360px) {
  .flow-text {
    font-size: 1.2rem;
  }
}

.scale-transition {
  -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
  transition: -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
  transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
  transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
}

.scale-transition.scale-out {
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transition: -webkit-transform .2s !important;
  transition: -webkit-transform .2s !important;
  transition: transform .2s !important;
  transition: transform .2s, -webkit-transform .2s !important;
}

.scale-transition.scale-in {
  -webkit-transform: scale(1);
          transform: scale(1);
}

.card-panel {
  -webkit-transition: -webkit-box-shadow .25s;
  transition: -webkit-box-shadow .25s;
  transition: box-shadow .25s;
  transition: box-shadow .25s, -webkit-box-shadow .25s;
  padding: 24px;
  margin: 0.5rem 0 1rem 0;
  border-radius: 2px;
  background-color: #fff;
}

.card {
  position: relative;
  margin: 0.5rem 0 1rem 0;
  background-color: #fff;
  -webkit-transition: -webkit-box-shadow .25s;
  transition: -webkit-box-shadow .25s;
  transition: box-shadow .25s;
  transition: box-shadow .25s, -webkit-box-shadow .25s;
  border-radius: 2px;
}

.card .card-title {
  font-size: 24px;
  font-weight: 300;
}

.card .card-title.activator {
  cursor: pointer;
}

.card.small, .card.medium, .card.large {
  position: relative;
}

.card.small .card-image, .card.medium .card-image, .card.large .card-image {
  max-height: 60%;
  overflow: hidden;
}

.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {
  max-height: 40%;
}

.card.small .card-content, .card.medium .card-content, .card.large .card-content {
  max-height: 100%;
  overflow: hidden;
}

.card.small .card-action, .card.medium .card-action, .card.large .card-action {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.card.small {
  height: 300px;
}

.card.medium {
  height: 400px;
}

.card.large {
  height: 500px;
}

.card.horizontal {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {
  height: 100%;
  max-height: none;
  overflow: visible;
}

.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {
  height: 100%;
}

.card.horizontal .card-image {
  max-width: 50%;
}

.card.horizontal .card-image img {
  border-radius: 2px 0 0 2px;
  max-width: 100%;
  width: auto;
}

.card.horizontal .card-stacked {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  position: relative;
}

.card.horizontal .card-stacked .card-content {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.card.sticky-action .card-action {
  z-index: 2;
}

.card.sticky-action .card-reveal {
  z-index: 1;
  padding-bottom: 64px;
}

.card .card-image {
  position: relative;
}

.card .card-image img {
  display: block;
  border-radius: 2px 2px 0 0;
  position: relative;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
}

.card .card-image .card-title {
  color: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  max-width: 100%;
  padding: 24px;
}

.card .card-content {
  padding: 24px;
  border-radius: 0 0 2px 2px;
}

.card .card-content p {
  margin: 0;
}

.card .card-content .card-title {
  display: block;
  line-height: 32px;
  margin-bottom: 8px;
}

.card .card-content .card-title i {
  line-height: 32px;
}

.card .card-action {
  background-color: inherit;
  border-top: 1px solid rgba(160, 160, 160, 0.2);
  position: relative;
  padding: 16px 24px;
}

.card .card-action:last-child {
  border-radius: 0 0 2px 2px;
}

.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating) {
  color: #ffab40;
  margin-right: 24px;
  -webkit-transition: color .3s ease;
  transition: color .3s ease;
  text-transform: uppercase;
}

.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover {
  color: #ffd8a6;
}

.card .card-reveal {
  padding: 24px;
  position: absolute;
  background-color: #fff;
  width: 100%;
  overflow-y: auto;
  left: 0;
  top: 100%;
  height: 100%;
  z-index: 3;
  display: none;
}

.card .card-reveal .card-title {
  cursor: pointer;
  display: block;
}

#toast-container {
  display: block;
  position: fixed;
  z-index: 10000;
}

@media only screen and (max-width: 600px) {
  #toast-container {
    min-width: 100%;
    bottom: 0%;
  }
}

@media only screen and (min-width: 601px) and (max-width: 992px) {
  #toast-container {
    left: 5%;
    bottom: 7%;
    max-width: 90%;
  }
}

@media only screen and (min-width: 993px) {
  #toast-container {
    top: 10%;
    right: 7%;
    max-width: 86%;
  }
}

.toast {
  border-radius: 2px;
  top: 35px;
  width: auto;
  margin-top: 10px;
  position: relative;
  max-width: 100%;
  height: auto;
  min-height: 48px;
  line-height: 1.5em;
  background-color: #323232;
  padding: 10px 25px;
  font-size: 1.1rem;
  font-weight: 300;
  color: #fff;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  cursor: default;
}

.toast .toast-action {
  color: #eeff41;
  font-weight: 500;
  margin-right: -25px;
  margin-left: 3rem;
}

.toast.rounded {
  border-radius: 24px;
}

@media only screen and (max-width: 600px) {
  .toast {
    width: 100%;
    border-radius: 0;
  }
}

.tabs {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  height: 48px;
  width: 100%;
  background-color: #fff;
  margin: 0 auto;
  white-space: nowrap;
}

.tabs.tabs-transparent {
  background-color: transparent;
}

.tabs.tabs-transparent .tab a,
.tabs.tabs-transparent .tab.disabled a,
.tabs.tabs-transparent .tab.disabled a:hover {
  color: rgba(255, 255, 255, 0.7);
}

.tabs.tabs-transparent .tab a:hover,
.tabs.tabs-transparent .tab a.active {
  color: #fff;
}

.tabs.tabs-transparent .indicator {
  background-color: #fff;
}

.tabs.tabs-fixed-width {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

.tabs.tabs-fixed-width .tab {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.tabs .tab {
  display: inline-block;
  text-align: center;
  line-height: 48px;
  height: 48px;
  padding: 0;
  margin: 0;
  text-transform: uppercase;
}

.tabs .tab a {
  color: rgba(238, 110, 115, 0.7);
  display: block;
  width: 100%;
  height: 100%;
  padding: 0 24px;
  font-size: 14px;
  text-overflow: ellipsis;
  overflow: hidden;
  -webkit-transition: color .28s ease, background-color .28s ease;
  transition: color .28s ease, background-color .28s ease;
}

.tabs .tab a:focus, .tabs .tab a:focus.active {
  background-color: rgba(246, 178, 181, 0.2);
  outline: none;
}

.tabs .tab a:hover, .tabs .tab a.active {
  background-color: transparent;
  color: #ee6e73;
}

.tabs .tab.disabled a,
.tabs .tab.disabled a:hover {
  color: rgba(238, 110, 115, 0.4);
  cursor: default;
}

.tabs .indicator {
  position: absolute;
  bottom: 0;
  height: 2px;
  background-color: #f6b2b5;
  will-change: left, right;
}

@media only screen and (max-width: 992px) {
  .tabs {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .tabs .tab {
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
  }
  .tabs .tab a {
    padding: 0 12px;
  }
}

.material-tooltip {
  padding: 10px 8px;
  font-size: 1rem;
  z-index: 2000;
  background-color: transparent;
  border-radius: 2px;
  color: #fff;
  min-height: 36px;
  line-height: 120%;
  opacity: 0;
  position: absolute;
  text-align: center;
  max-width: calc(100% - 4px);
  overflow: hidden;
  left: 0;
  top: 0;
  pointer-events: none;
  visibility: hidden;
  background-color: #323232;
}

.backdrop {
  position: absolute;
  opacity: 0;
  height: 7px;
  width: 14px;
  border-radius: 0 0 50% 50%;
  background-color: #323232;
  z-index: -1;
  -webkit-transform-origin: 50% 0%;
          transform-origin: 50% 0%;
  visibility: hidden;
}

.btn, .btn-large, .btn-small,
.btn-flat {
  border: none;
  border-radius: 2px;
  display: inline-block;
  height: 36px;
  line-height: 36px;
  padding: 0 16px;
  text-transform: uppercase;
  vertical-align: middle;
  -webkit-tap-highlight-color: transparent;
}

.btn.disabled, .disabled.btn-large, .disabled.btn-small,
.btn-floating.disabled,
.btn-large.disabled,
.btn-small.disabled,
.btn-flat.disabled,
.btn:disabled,
.btn-large:disabled,
.btn-small:disabled,
.btn-floating:disabled,
.btn-large:disabled,
.btn-small:disabled,
.btn-flat:disabled,
.btn[disabled],
.btn-large[disabled],
.btn-small[disabled],
.btn-floating[disabled],
.btn-large[disabled],
.btn-small[disabled],
.btn-flat[disabled] {
  pointer-events: none;
  background-color: #DFDFDF !important;
  -webkit-box-shadow: none;
          box-shadow: none;
  color: #9F9F9F !important;
  cursor: default;
}

.btn.disabled:hover, .disabled.btn-large:hover, .disabled.btn-small:hover,
.btn-floating.disabled:hover,
.btn-large.disabled:hover,
.btn-small.disabled:hover,
.btn-flat.disabled:hover,
.btn:disabled:hover,
.btn-large:disabled:hover,
.btn-small:disabled:hover,
.btn-floating:disabled:hover,
.btn-large:disabled:hover,
.btn-small:disabled:hover,
.btn-flat:disabled:hover,
.btn[disabled]:hover,
.btn-large[disabled]:hover,
.btn-small[disabled]:hover,
.btn-floating[disabled]:hover,
.btn-large[disabled]:hover,
.btn-small[disabled]:hover,
.btn-flat[disabled]:hover {
  background-color: #DFDFDF !important;
  color: #9F9F9F !important;
}

.btn, .btn-large, .btn-small,
.btn-floating,
.btn-large,
.btn-small,
.btn-flat {
  font-size: 14px;
  outline: 0;
}

.btn i, .btn-large i, .btn-small i,
.btn-floating i,
.btn-large i,
.btn-small i,
.btn-flat i {
  font-size: 1.3rem;
  line-height: inherit;
}

.btn:focus, .btn-large:focus, .btn-small:focus,
.btn-floating:focus {
  background-color: #1d7d74;
}

.btn, .btn-large, .btn-small {
  text-decoration: none;
  color: #fff;
  background-color: #26a69a;
  text-align: center;
  letter-spacing: .5px;
  -webkit-transition: background-color .2s ease-out;
  transition: background-color .2s ease-out;
  cursor: pointer;
}

.btn:hover, .btn-large:hover, .btn-small:hover {
  background-color: #2bbbad;
}

.btn-floating {
  display: inline-block;
  color: #fff;
  position: relative;
  overflow: hidden;
  z-index: 1;
  width: 40px;
  height: 40px;
  line-height: 40px;
  padding: 0;
  background-color: #26a69a;
  border-radius: 50%;
  -webkit-transition: background-color .3s;
  transition: background-color .3s;
  cursor: pointer;
  vertical-align: middle;
}

.btn-floating:hover {
  background-color: #26a69a;
}

.btn-floating:before {
  border-radius: 0;
}

.btn-floating.btn-large {
  width: 56px;
  height: 56px;
  padding: 0;
}

.btn-floating.btn-large.halfway-fab {
  bottom: -28px;
}

.btn-floating.btn-large i {
  line-height: 56px;
}

.btn-floating.btn-small {
  width: 32.4px;
  height: 32.4px;
}

.btn-floating.btn-small.halfway-fab {
  bottom: -16.2px;
}

.btn-floating.btn-small i {
  line-height: 32.4px;
}

.btn-floating.halfway-fab {
  position: absolute;
  right: 24px;
  bottom: -20px;
}

.btn-floating.halfway-fab.left {
  right: auto;
  left: 24px;
}

.btn-floating i {
  width: inherit;
  display: inline-block;
  text-align: center;
  color: #fff;
  font-size: 1.6rem;
  line-height: 40px;
}

button.btn-floating {
  border: none;
}

.fixed-action-btn {
  position: fixed;
  right: 23px;
  bottom: 23px;
  padding-top: 15px;
  margin-bottom: 0;
  z-index: 997;
}

.fixed-action-btn.active ul {
  visibility: visible;
}

.fixed-action-btn.direction-left, .fixed-action-btn.direction-right {
  padding: 0 0 0 15px;
}

.fixed-action-btn.direction-left ul, .fixed-action-btn.direction-right ul {
  text-align: right;
  right: 64px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  height: 100%;
  left: auto;
  /*width 100% only goes to width of button container */
  width: 500px;
}

.fixed-action-btn.direction-left ul li, .fixed-action-btn.direction-right ul li {
  display: inline-block;
  margin: 7.5px 15px 0 0;
}

.fixed-action-btn.direction-right {
  padding: 0 15px 0 0;
}

.fixed-action-btn.direction-right ul {
  text-align: left;
  direction: rtl;
  left: 64px;
  right: auto;
}

.fixed-action-btn.direction-right ul li {
  margin: 7.5px 0 0 15px;
}

.fixed-action-btn.direction-bottom {
  padding: 0 0 15px 0;
}

.fixed-action-btn.direction-bottom ul {
  top: 64px;
  bottom: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

.fixed-action-btn.direction-bottom ul li {
  margin: 15px 0 0 0;
}

.fixed-action-btn.toolbar {
  padding: 0;
  height: 56px;
}

.fixed-action-btn.toolbar.active > a i {
  opacity: 0;
}

.fixed-action-btn.toolbar ul {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  top: 0;
  bottom: 0;
  z-index: 1;
}

.fixed-action-btn.toolbar ul li {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: inline-block;
  margin: 0;
  height: 100%;
  -webkit-transition: none;
  transition: none;
}

.fixed-action-btn.toolbar ul li a {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 100%;
  background-color: transparent;
  -webkit-box-shadow: none;
          box-shadow: none;
  color: #fff;
  line-height: 56px;
  z-index: 1;
}

.fixed-action-btn.toolbar ul li a i {
  line-height: inherit;
}

.fixed-action-btn ul {
  left: 0;
  right: 0;
  text-align: center;
  position: absolute;
  bottom: 64px;
  margin: 0;
  visibility: hidden;
}

.fixed-action-btn ul li {
  margin-bottom: 15px;
}

.fixed-action-btn ul a.btn-floating {
  opacity: 0;
}

.fixed-action-btn .fab-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 40px;
  height: 40px;
  background-color: #26a69a;
  border-radius: 50%;
  -webkit-transform: scale(0);
          transform: scale(0);
}

.btn-flat {
  -webkit-box-shadow: none;
          box-shadow: none;
  background-color: transparent;
  color: #343434;
  cursor: pointer;
  -webkit-transition: background-color .2s;
  transition: background-color .2s;
}

.btn-flat:focus, .btn-flat:hover {
  -webkit-box-shadow: none;
          box-shadow: none;
}

.btn-flat:focus {
  background-color: rgba(0, 0, 0, 0.1);
}

.btn-flat.disabled, .btn-flat.btn-flat[disabled] {
  background-color: transparent !important;
  color: #b3b2b2 !important;
  cursor: default;
}

.btn-large {
  height: 54px;
  line-height: 54px;
  font-size: 15px;
  padding: 0 28px;
}

.btn-large i {
  font-size: 1.6rem;
}

.btn-small {
  height: 32.4px;
  line-height: 32.4px;
  font-size: 13px;
}

.btn-small i {
  font-size: 1.2rem;
}

.btn-block {
  display: block;
}

.dropdown-content {
  background-color: #fff;
  margin: 0;
  display: none;
  min-width: 100px;
  overflow-y: auto;
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 9999;
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}

.dropdown-content:focus {
  outline: 0;
}

.dropdown-content li {
  clear: both;
  color: rgba(0, 0, 0, 0.87);
  cursor: pointer;
  min-height: 50px;
  line-height: 1.5rem;
  width: 100%;
  text-align: left;
}

.dropdown-content li:hover, .dropdown-content li.active {
  background-color: #eee;
}

.dropdown-content li:focus {
  outline: none;
}

.dropdown-content li.divider {
  min-height: 0;
  height: 1px;
}

.dropdown-content li > a, .dropdown-content li > span {
  font-size: 16px;
  color: #26a69a;
  display: block;
  line-height: 22px;
  padding: 14px 16px;
}

.dropdown-content li > span > label {
  top: 1px;
  left: 0;
  height: 18px;
}

.dropdown-content li > a > i {
  height: inherit;
  line-height: inherit;
  float: left;
  margin: 0 24px 0 0;
  width: 24px;
}

body.keyboard-focused .dropdown-content li:focus {
  background-color: #dadada;
}

.input-field.col .dropdown-content [type="checkbox"] + label {
  top: 1px;
  left: 0;
  height: 18px;
  -webkit-transform: none;
          transform: none;
}

.dropdown-trigger {
  cursor: pointer;
}

/*!
 * Waves v0.6.0
 * http://fian.my.id/Waves
 *
 * Copyright 2014 Alfiana E. Sibuea and other contributors
 * Released under the MIT license
 * https://github.com/fians/Waves/blob/master/LICENSE
 */
.waves-effect {
  position: relative;
  cursor: pointer;
  display: inline-block;
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-tap-highlight-color: transparent;
  vertical-align: middle;
  z-index: 1;
  -webkit-transition: .3s ease-out;
  transition: .3s ease-out;
}

.waves-effect .waves-ripple {
  position: absolute;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  margin-left: -10px;
  opacity: 0;
  background: rgba(0, 0, 0, 0.2);
  -webkit-transition: all 0.7s ease-out;
  transition: all 0.7s ease-out;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transform: scale(0);
          transform: scale(0);
  pointer-events: none;
}

.waves-effect.waves-light .waves-ripple {
  background-color: rgba(255, 255, 255, 0.45);
}

.waves-effect.waves-red .waves-ripple {
  background-color: rgba(244, 67, 54, 0.7);
}

.waves-effect.waves-yellow .waves-ripple {
  background-color: rgba(255, 235, 59, 0.7);
}

.waves-effect.waves-orange .waves-ripple {
  background-color: rgba(255, 152, 0, 0.7);
}

.waves-effect.waves-purple .waves-ripple {
  background-color: rgba(156, 39, 176, 0.7);
}

.waves-effect.waves-green .waves-ripple {
  background-color: rgba(76, 175, 80, 0.7);
}

.waves-effect.waves-teal .waves-ripple {
  background-color: rgba(0, 150, 136, 0.7);
}

.waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] {
  border: 0;
  font-style: normal;
  font-size: inherit;
  text-transform: inherit;
  background: none;
}

.waves-effect img {
  position: relative;
  z-index: -1;
}

.waves-notransition {
  -webkit-transition: none !important;
  transition: none !important;
}

.waves-circle {
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
}

.waves-input-wrapper {
  border-radius: 0.2em;
  vertical-align: bottom;
}

.waves-input-wrapper .waves-button-input {
  position: relative;
  top: 0;
  left: 0;
  z-index: 1;
}

.waves-circle {
  text-align: center;
  width: 2.5em;
  height: 2.5em;
  line-height: 2.5em;
  border-radius: 50%;
  -webkit-mask-image: none;
}

.waves-block {
  display: block;
}

/* Firefox Bug: link not triggered */
.waves-effect .waves-ripple {
  z-index: -1;
}

.modal {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  background-color: #fafafa;
  padding: 0;
  max-height: 70%;
  width: 55%;
  margin: auto;
  overflow-y: auto;
  border-radius: 2px;
  will-change: top, opacity;
}

.modal:focus {
  outline: none;
}

@media only screen and (max-width: 992px) {
  .modal {
    width: 80%;
  }
}

.modal h1, .modal h2, .modal h3, .modal h4 {
  margin-top: 0;
}

.modal .modal-content {
  padding: 24px;
}

.modal .modal-close {
  cursor: pointer;
}

.modal .modal-footer {
  border-radius: 0 0 2px 2px;
  background-color: #fafafa;
  padding: 4px 6px;
  height: 56px;
  width: 100%;
  text-align: right;
}

.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-small, .modal .modal-footer .btn-flat {
  margin: 6px 0;
}

.modal-overlay {
  position: fixed;
  z-index: 999;
  top: -25%;
  left: 0;
  bottom: 0;
  right: 0;
  height: 125%;
  width: 100%;
  background: #000;
  display: none;
  will-change: opacity;
}

.modal.modal-fixed-footer {
  padding: 0;
  height: 70%;
}

.modal.modal-fixed-footer .modal-content {
  position: absolute;
  height: calc(100% - 56px);
  max-height: 100%;
  width: 100%;
  overflow-y: auto;
}

.modal.modal-fixed-footer .modal-footer {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  position: absolute;
  bottom: 0;
}

.modal.bottom-sheet {
  top: auto;
  bottom: -100%;
  margin: 0;
  width: 100%;
  max-height: 45%;
  border-radius: 0;
  will-change: bottom, opacity;
}

.collapsible {
  border-top: 1px solid #ddd;
  border-right: 1px solid #ddd;
  border-left: 1px solid #ddd;
  margin: 0.5rem 0 1rem 0;
}

.collapsible-header {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  line-height: 1.5;
  padding: 1rem;
  background-color: #fff;
  border-bottom: 1px solid #ddd;
}

.collapsible-header:focus {
  outline: 0;
}

.collapsible-header i {
  width: 2rem;
  font-size: 1.6rem;
  display: inline-block;
  text-align: center;
  margin-right: 1rem;
}

.keyboard-focused .collapsible-header:focus {
  background-color: #eee;
}

.collapsible-body {
  display: none;
  border-bottom: 1px solid #ddd;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2rem;
}

.sidenav .collapsible,
.sidenav.fixed .collapsible {
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.sidenav .collapsible li,
.sidenav.fixed .collapsible li {
  padding: 0;
}

.sidenav .collapsible-header,
.sidenav.fixed .collapsible-header {
  background-color: transparent;
  border: none;
  line-height: inherit;
  height: inherit;
  padding: 0 16px;
}

.sidenav .collapsible-header:hover,
.sidenav.fixed .collapsible-header:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

.sidenav .collapsible-header i,
.sidenav.fixed .collapsible-header i {
  line-height: inherit;
}

.sidenav .collapsible-body,
.sidenav.fixed .collapsible-body {
  border: 0;
  background-color: #fff;
}

.sidenav .collapsible-body li a,
.sidenav.fixed .collapsible-body li a {
  padding: 0 23.5px 0 31px;
}

.collapsible.popout {
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.collapsible.popout > li {
  -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
          box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  margin: 0 24px;
  -webkit-transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.collapsible.popout > li.active {
  -webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
  margin: 16px 0;
}

.chip {
  display: inline-block;
  height: 32px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.6);
  line-height: 32px;
  padding: 0 12px;
  border-radius: 16px;
  background-color: #e4e4e4;
  margin-bottom: 5px;
  margin-right: 5px;
}

.chip:focus {
  outline: none;
  background-color: #26a69a;
  color: #fff;
}

.chip > img {
  float: left;
  margin: 0 8px 0 -12px;
  height: 32px;
  width: 32px;
  border-radius: 50%;
}

.chip .close {
  cursor: pointer;
  float: right;
  font-size: 16px;
  line-height: 32px;
  padding-left: 8px;
}

.chips {
  border: none;
  border-bottom: 1px solid #9e9e9e;
  -webkit-box-shadow: none;
          box-shadow: none;
  margin: 0 0 8px 0;
  min-height: 45px;
  outline: none;
  -webkit-transition: all .3s;
  transition: all .3s;
}

.chips.focus {
  border-bottom: 1px solid #26a69a;
  -webkit-box-shadow: 0 1px 0 0 #26a69a;
          box-shadow: 0 1px 0 0 #26a69a;
}

.chips:hover {
  cursor: text;
}

.chips .input {
  background: none;
  border: 0;
  color: rgba(0, 0, 0, 0.6);
  display: inline-block;
  font-size: 16px;
  height: 3rem;
  line-height: 32px;
  outline: 0;
  margin: 0;
  padding: 0 !important;
  width: 120px !important;
}

.chips .input:focus {
  border: 0 !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}

.chips .autocomplete-content {
  margin-top: 0;
  margin-bottom: 0;
}

.prefix ~ .chips {
  margin-left: 3rem;
  width: 92%;
  width: calc(100% - 3rem);
}

.chips:empty ~ label {
  font-size: 0.8rem;
  -webkit-transform: translateY(-140%);
          transform: translateY(-140%);
}

.materialboxed {
  display: block;
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
  position: relative;
  -webkit-transition: opacity .4s;
  transition: opacity .4s;
  -webkit-backface-visibility: hidden;
}

.materialboxed:hover:not(.active) {
  opacity: .8;
}

.materialboxed.active {
  cursor: -webkit-zoom-out;
  cursor: zoom-out;
}

#materialbox-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #292929;
  z-index: 1000;
  will-change: opacity;
}

.materialbox-caption {
  position: fixed;
  display: none;
  color: #fff;
  line-height: 50px;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center;
  padding: 0% 15%;
  height: 50px;
  z-index: 1000;
  -webkit-font-smoothing: antialiased;
}

select:focus {
  outline: 1px solid #c9f3ef;
}

button:focus {
  outline: none;
  background-color: #2ab7a9;
}

label {
  font-size: 0.8rem;
  color: #9e9e9e;
}

/* Text Inputs + Textarea
   ========================================================================== */
/* Style Placeholders */
::-webkit-input-placeholder {
  color: #d1d1d1;
}
::-moz-placeholder {
  color: #d1d1d1;
}
:-ms-input-placeholder {
  color: #d1d1d1;
}
::-ms-input-placeholder {
  color: #d1d1d1;
}
::placeholder {
  color: #d1d1d1;
}

/* Text inputs */
input:not([type]),
input[type=text]:not(.browser-default),
input[type=password]:not(.browser-default),
input[type=email]:not(.browser-default),
input[type=url]:not(.browser-default),
input[type=time]:not(.browser-default),
input[type=date]:not(.browser-default),
input[type=datetime]:not(.browser-default),
input[type=datetime-local]:not(.browser-default),
input[type=tel]:not(.browser-default),
input[type=number]:not(.browser-default),
input[type=search]:not(.browser-default),
textarea.materialize-textarea {
  background-color: transparent;
  border: none;
  border-bottom: 1px solid #9e9e9e;
  border-radius: 0;
  outline: none;
  height: 3rem;
  width: 100%;
  font-size: 16px;
  margin: 0 0 8px 0;
  padding: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  -webkit-transition: border .3s, -webkit-box-shadow .3s;
  transition: border .3s, -webkit-box-shadow .3s;
  transition: box-shadow .3s, border .3s;
  transition: box-shadow .3s, border .3s, -webkit-box-shadow .3s;
}

input:not([type]):disabled, input:not([type])[readonly="readonly"],
input[type=text]:not(.browser-default):disabled,
input[type=text]:not(.browser-default)[readonly="readonly"],
input[type=password]:not(.browser-default):disabled,
input[type=password]:not(.browser-default)[readonly="readonly"],
input[type=email]:not(.browser-default):disabled,
input[type=email]:not(.browser-default)[readonly="readonly"],
input[type=url]:not(.browser-default):disabled,
input[type=url]:not(.browser-default)[readonly="readonly"],
input[type=time]:not(.browser-default):disabled,
input[type=time]:not(.browser-default)[readonly="readonly"],
input[type=date]:not(.browser-default):disabled,
input[type=date]:not(.browser-default)[readonly="readonly"],
input[type=datetime]:not(.browser-default):disabled,
input[type=datetime]:not(.browser-default)[readonly="readonly"],
input[type=datetime-local]:not(.browser-default):disabled,
input[type=datetime-local]:not(.browser-default)[readonly="readonly"],
input[type=tel]:not(.browser-default):disabled,
input[type=tel]:not(.browser-default)[readonly="readonly"],
input[type=number]:not(.browser-default):disabled,
input[type=number]:not(.browser-default)[readonly="readonly"],
input[type=search]:not(.browser-default):disabled,
input[type=search]:not(.browser-default)[readonly="readonly"],
textarea.materialize-textarea:disabled,
textarea.materialize-textarea[readonly="readonly"] {
  color: rgba(0, 0, 0, 0.42);
  border-bottom: 1px dotted rgba(0, 0, 0, 0.42);
}

input:not([type]):disabled + label,
input:not([type])[readonly="readonly"] + label,
input[type=text]:not(.browser-default):disabled + label,
input[type=text]:not(.browser-default)[readonly="readonly"] + label,
input[type=password]:not(.browser-default):disabled + label,
input[type=password]:not(.browser-default)[readonly="readonly"] + label,
input[type=email]:not(.browser-default):disabled + label,
input[type=email]:not(.browser-default)[readonly="readonly"] + label,
input[type=url]:not(.browser-default):disabled + label,
input[type=url]:not(.browser-default)[readonly="readonly"] + label,
input[type=time]:not(.browser-default):disabled + label,
input[type=time]:not(.browser-default)[readonly="readonly"] + label,
input[type=date]:not(.browser-default):disabled + label,
input[type=date]:not(.browser-default)[readonly="readonly"] + label,
input[type=datetime]:not(.browser-default):disabled + label,
input[type=datetime]:not(.browser-default)[readonly="readonly"] + label,
input[type=datetime-local]:not(.browser-default):disabled + label,
input[type=datetime-local]:not(.browser-default)[readonly="readonly"] + label,
input[type=tel]:not(.browser-default):disabled + label,
input[type=tel]:not(.browser-default)[readonly="readonly"] + label,
input[type=number]:not(.browser-default):disabled + label,
input[type=number]:not(.browser-default)[readonly="readonly"] + label,
input[type=search]:not(.browser-default):disabled + label,
input[type=search]:not(.browser-default)[readonly="readonly"] + label,
textarea.materialize-textarea:disabled + label,
textarea.materialize-textarea[readonly="readonly"] + label {
  color: rgba(0, 0, 0, 0.42);
}

input:not([type]):focus:not([readonly]),
input[type=text]:not(.browser-default):focus:not([readonly]),
input[type=password]:not(.browser-default):focus:not([readonly]),
input[type=email]:not(.browser-default):focus:not([readonly]),
input[type=url]:not(.browser-default):focus:not([readonly]),
input[type=time]:not(.browser-default):focus:not([readonly]),
input[type=date]:not(.browser-default):focus:not([readonly]),
input[type=datetime]:not(.browser-default):focus:not([readonly]),
input[type=datetime-local]:not(.browser-default):focus:not([readonly]),
input[type=tel]:not(.browser-default):focus:not([readonly]),
input[type=number]:not(.browser-default):focus:not([readonly]),
input[type=search]:not(.browser-default):focus:not([readonly]),
textarea.materialize-textarea:focus:not([readonly]) {
  border-bottom: 1px solid #26a69a;
  -webkit-box-shadow: 0 1px 0 0 #26a69a;
          box-shadow: 0 1px 0 0 #26a69a;
}

input:not([type]):focus:not([readonly]) + label,
input[type=text]:not(.browser-default):focus:not([readonly]) + label,
input[type=password]:not(.browser-default):focus:not([readonly]) + label,
input[type=email]:not(.browser-default):focus:not([readonly]) + label,
input[type=url]:not(.browser-default):focus:not([readonly]) + label,
input[type=time]:not(.browser-default):focus:not([readonly]) + label,
input[type=date]:not(.browser-default):focus:not([readonly]) + label,
input[type=datetime]:not(.browser-default):focus:not([readonly]) + label,
input[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label,
input[type=tel]:not(.browser-default):focus:not([readonly]) + label,
input[type=number]:not(.browser-default):focus:not([readonly]) + label,
input[type=search]:not(.browser-default):focus:not([readonly]) + label,
textarea.materialize-textarea:focus:not([readonly]) + label {
  color: #26a69a;
}

input:not([type]):focus.valid ~ label,
input[type=text]:not(.browser-default):focus.valid ~ label,
input[type=password]:not(.browser-default):focus.valid ~ label,
input[type=email]:not(.browser-default):focus.valid ~ label,
input[type=url]:not(.browser-default):focus.valid ~ label,
input[type=time]:not(.browser-default):focus.valid ~ label,
input[type=date]:not(.browser-default):focus.valid ~ label,
input[type=datetime]:not(.browser-default):focus.valid ~ label,
input[type=datetime-local]:not(.browser-default):focus.valid ~ label,
input[type=tel]:not(.browser-default):focus.valid ~ label,
input[type=number]:not(.browser-default):focus.valid ~ label,
input[type=search]:not(.browser-default):focus.valid ~ label,
textarea.materialize-textarea:focus.valid ~ label {
  color: #4CAF50;
}

input:not([type]):focus.invalid ~ label,
input[type=text]:not(.browser-default):focus.invalid ~ label,
input[type=password]:not(.browser-default):focus.invalid ~ label,
input[type=email]:not(.browser-default):focus.invalid ~ label,
input[type=url]:not(.browser-default):focus.invalid ~ label,
input[type=time]:not(.browser-default):focus.invalid ~ label,
input[type=date]:not(.browser-default):focus.invalid ~ label,
input[type=datetime]:not(.browser-default):focus.invalid ~ label,
input[type=datetime-local]:not(.browser-default):focus.invalid ~ label,
input[type=tel]:not(.browser-default):focus.invalid ~ label,
input[type=number]:not(.browser-default):focus.invalid ~ label,
input[type=search]:not(.browser-default):focus.invalid ~ label,
textarea.materialize-textarea:focus.invalid ~ label {
  color: #F44336;
}

input:not([type]).validate + label,
input[type=text]:not(.browser-default).validate + label,
input[type=password]:not(.browser-default).validate + label,
input[type=email]:not(.browser-default).validate + label,
input[type=url]:not(.browser-default).validate + label,
input[type=time]:not(.browser-default).validate + label,
input[type=date]:not(.browser-default).validate + label,
input[type=datetime]:not(.browser-default).validate + label,
input[type=datetime-local]:not(.browser-default).validate + label,
input[type=tel]:not(.browser-default).validate + label,
input[type=number]:not(.browser-default).validate + label,
input[type=search]:not(.browser-default).validate + label,
textarea.materialize-textarea.validate + label {
  width: 100%;
}

/* Validation Sass Placeholders */
input.valid:not([type]), input.valid:not([type]):focus,
input.valid[type=text]:not(.browser-default),
input.valid[type=text]:not(.browser-default):focus,
input.valid[type=password]:not(.browser-default),
input.valid[type=password]:not(.browser-default):focus,
input.valid[type=email]:not(.browser-default),
input.valid[type=email]:not(.browser-default):focus,
input.valid[type=url]:not(.browser-default),
input.valid[type=url]:not(.browser-default):focus,
input.valid[type=time]:not(.browser-default),
input.valid[type=time]:not(.browser-default):focus,
input.valid[type=date]:not(.browser-default),
input.valid[type=date]:not(.browser-default):focus,
input.valid[type=datetime]:not(.browser-default),
input.valid[type=datetime]:not(.browser-default):focus,
input.valid[type=datetime-local]:not(.browser-default),
input.valid[type=datetime-local]:not(.browser-default):focus,
input.valid[type=tel]:not(.browser-default),
input.valid[type=tel]:not(.browser-default):focus,
input.valid[type=number]:not(.browser-default),
input.valid[type=number]:not(.browser-default):focus,
input.valid[type=search]:not(.browser-default),
input.valid[type=search]:not(.browser-default):focus,
textarea.materialize-textarea.valid,
textarea.materialize-textarea.valid:focus, .select-wrapper.valid > input.select-dropdown {
  border-bottom: 1px solid #4CAF50;
  -webkit-box-shadow: 0 1px 0 0 #4CAF50;
          box-shadow: 0 1px 0 0 #4CAF50;
}

input.invalid:not([type]), input.invalid:not([type]):focus,
input.invalid[type=text]:not(.browser-default),
input.invalid[type=text]:not(.browser-default):focus,
input.invalid[type=password]:not(.browser-default),
input.invalid[type=password]:not(.browser-default):focus,
input.invalid[type=email]:not(.browser-default),
input.invalid[type=email]:not(.browser-default):focus,
input.invalid[type=url]:not(.browser-default),
input.invalid[type=url]:not(.browser-default):focus,
input.invalid[type=time]:not(.browser-default),
input.invalid[type=time]:not(.browser-default):focus,
input.invalid[type=date]:not(.browser-default),
input.invalid[type=date]:not(.browser-default):focus,
input.invalid[type=datetime]:not(.browser-default),
input.invalid[type=datetime]:not(.browser-default):focus,
input.invalid[type=datetime-local]:not(.browser-default),
input.invalid[type=datetime-local]:not(.browser-default):focus,
input.invalid[type=tel]:not(.browser-default),
input.invalid[type=tel]:not(.browser-default):focus,
input.invalid[type=number]:not(.browser-default),
input.invalid[type=number]:not(.browser-default):focus,
input.invalid[type=search]:not(.browser-default),
input.invalid[type=search]:not(.browser-default):focus,
textarea.materialize-textarea.invalid,
textarea.materialize-textarea.invalid:focus, .select-wrapper.invalid > input.select-dropdown,
.select-wrapper.invalid > input.select-dropdown:focus {
  border-bottom: 1px solid #F44336;
  -webkit-box-shadow: 0 1px 0 0 #F44336;
          box-shadow: 0 1px 0 0 #F44336;
}

input:not([type]).valid ~ .helper-text[data-success],
input:not([type]):focus.valid ~ .helper-text[data-success],
input:not([type]).invalid ~ .helper-text[data-error],
input:not([type]):focus.invalid ~ .helper-text[data-error],
input[type=text]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=password]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=email]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=url]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=time]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=date]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=number]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
input[type=search]:not(.browser-default).valid ~ .helper-text[data-success],
input[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],
input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],
input[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],
textarea.materialize-textarea.valid ~ .helper-text[data-success],
textarea.materialize-textarea:focus.valid ~ .helper-text[data-success],
textarea.materialize-textarea.invalid ~ .helper-text[data-error],
textarea.materialize-textarea:focus.invalid ~ .helper-text[data-error], .select-wrapper.valid .helper-text[data-success],
.select-wrapper.invalid ~ .helper-text[data-error] {
  color: transparent;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  pointer-events: none;
}

input:not([type]).valid ~ .helper-text:after,
input:not([type]):focus.valid ~ .helper-text:after,
input[type=text]:not(.browser-default).valid ~ .helper-text:after,
input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=password]:not(.browser-default).valid ~ .helper-text:after,
input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=email]:not(.browser-default).valid ~ .helper-text:after,
input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=url]:not(.browser-default).valid ~ .helper-text:after,
input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=time]:not(.browser-default).valid ~ .helper-text:after,
input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=date]:not(.browser-default).valid ~ .helper-text:after,
input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=datetime]:not(.browser-default).valid ~ .helper-text:after,
input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,
input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=tel]:not(.browser-default).valid ~ .helper-text:after,
input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=number]:not(.browser-default).valid ~ .helper-text:after,
input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,
input[type=search]:not(.browser-default).valid ~ .helper-text:after,
input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,
textarea.materialize-textarea.valid ~ .helper-text:after,
textarea.materialize-textarea:focus.valid ~ .helper-text:after, .select-wrapper.valid ~ .helper-text:after {
  content: attr(data-success);
  color: #4CAF50;
}

input:not([type]).invalid ~ .helper-text:after,
input:not([type]):focus.invalid ~ .helper-text:after,
input[type=text]:not(.browser-default).invalid ~ .helper-text:after,
input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=password]:not(.browser-default).invalid ~ .helper-text:after,
input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=email]:not(.browser-default).invalid ~ .helper-text:after,
input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=url]:not(.browser-default).invalid ~ .helper-text:after,
input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=time]:not(.browser-default).invalid ~ .helper-text:after,
input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=date]:not(.browser-default).invalid ~ .helper-text:after,
input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,
input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,
input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=tel]:not(.browser-default).invalid ~ .helper-text:after,
input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=number]:not(.browser-default).invalid ~ .helper-text:after,
input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,
input[type=search]:not(.browser-default).invalid ~ .helper-text:after,
input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,
textarea.materialize-textarea.invalid ~ .helper-text:after,
textarea.materialize-textarea:focus.invalid ~ .helper-text:after, .select-wrapper.invalid ~ .helper-text:after {
  content: attr(data-error);
  color: #F44336;
}

input:not([type]) + label:after,
input[type=text]:not(.browser-default) + label:after,
input[type=password]:not(.browser-default) + label:after,
input[type=email]:not(.browser-default) + label:after,
input[type=url]:not(.browser-default) + label:after,
input[type=time]:not(.browser-default) + label:after,
input[type=date]:not(.browser-default) + label:after,
input[type=datetime]:not(.browser-default) + label:after,
input[type=datetime-local]:not(.browser-default) + label:after,
input[type=tel]:not(.browser-default) + label:after,
input[type=number]:not(.browser-default) + label:after,
input[type=search]:not(.browser-default) + label:after,
textarea.materialize-textarea + label:after, .select-wrapper + label:after {
  display: block;
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  opacity: 0;
  -webkit-transition: .2s opacity ease-out, .2s color ease-out;
  transition: .2s opacity ease-out, .2s color ease-out;
}

.input-field {
  position: relative;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.input-field.inline {
  display: inline-block;
  vertical-align: middle;
  margin-left: 5px;
}

.input-field.inline input,
.input-field.inline .select-dropdown {
  margin-bottom: 1rem;
}

.input-field.col label {
  left: 0.75rem;
}

.input-field.col .prefix ~ label,
.input-field.col .prefix ~ .validate ~ label {
  width: calc(100% - 3rem - 1.5rem);
}

.input-field > label {
  color: #9e9e9e;
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1rem;
  cursor: text;
  -webkit-transition: color .2s ease-out, -webkit-transform .2s ease-out;
  transition: color .2s ease-out, -webkit-transform .2s ease-out;
  transition: transform .2s ease-out, color .2s ease-out;
  transition: transform .2s ease-out, color .2s ease-out, -webkit-transform .2s ease-out;
  -webkit-transform-origin: 0% 100%;
          transform-origin: 0% 100%;
  text-align: initial;
  -webkit-transform: translateY(12px);
          transform: translateY(12px);
}

.input-field > label:not(.label-icon).active {
  -webkit-transform: translateY(-14px) scale(0.8);
          transform: translateY(-14px) scale(0.8);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}

.input-field > input[type]:-webkit-autofill:not(.browser-default):not([type="search"]) + label,
.input-field > input[type=date]:not(.browser-default) + label,
.input-field > input[type=time]:not(.browser-default) + label {
  -webkit-transform: translateY(-14px) scale(0.8);
          transform: translateY(-14px) scale(0.8);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}

.input-field .helper-text {
  position: relative;
  min-height: 18px;
  display: block;
  font-size: 12px;
  color: rgba(0, 0, 0, 0.54);
}

.input-field .helper-text::after {
  opacity: 1;
  position: absolute;
  top: 0;
  left: 0;
}

.input-field .prefix {
  position: absolute;
  width: 3rem;
  font-size: 2rem;
  -webkit-transition: color .2s;
  transition: color .2s;
  top: 0.5rem;
}

.input-field .prefix.active {
  color: #26a69a;
}

.input-field .prefix ~ input,
.input-field .prefix ~ textarea,
.input-field .prefix ~ label,
.input-field .prefix ~ .validate ~ label,
.input-field .prefix ~ .helper-text,
.input-field .prefix ~ .autocomplete-content {
  margin-left: 3rem;
  width: 92%;
  width: calc(100% - 3rem);
}

.input-field .prefix ~ label {
  margin-left: 3rem;
}

@media only screen and (max-width: 992px) {
  .input-field .prefix ~ input {
    width: 86%;
    width: calc(100% - 3rem);
  }
}

@media only screen and (max-width: 600px) {
  .input-field .prefix ~ input {
    width: 80%;
    width: calc(100% - 3rem);
  }
}

/* Search Field */
.input-field input[type=search] {
  display: block;
  line-height: inherit;
  -webkit-transition: .3s background-color;
  transition: .3s background-color;
}

.nav-wrapper .input-field input[type=search] {
  height: inherit;
  padding-left: 4rem;
  width: calc(100% - 4rem);
  border: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.input-field input[type=search]:focus:not(.browser-default) {
  background-color: #fff;
  border: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
  color: #444;
}

.input-field input[type=search]:focus:not(.browser-default) + label i,
.input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close,
.input-field input[type=search]:focus:not(.browser-default) ~ .material-icons {
  color: #444;
}

.input-field input[type=search] + .label-icon {
  -webkit-transform: none;
          transform: none;
  left: 1rem;
}

.input-field input[type=search] ~ .mdi-navigation-close,
.input-field input[type=search] ~ .material-icons {
  position: absolute;
  top: 0;
  right: 1rem;
  color: transparent;
  cursor: pointer;
  font-size: 2rem;
  -webkit-transition: .3s color;
  transition: .3s color;
}

/* Textarea */
textarea {
  width: 100%;
  height: 3rem;
  background-color: transparent;
}

textarea.materialize-textarea {
  line-height: normal;
  overflow-y: hidden;
  /* prevents scroll bar flash */
  padding: .8rem 0 .8rem 0;
  /* prevents text jump on Enter keypress */
  resize: none;
  min-height: 3rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.hiddendiv {
  visibility: hidden;
  white-space: pre-wrap;
  word-wrap: break-word;
  overflow-wrap: break-word;
  /* future version of deprecated 'word-wrap' */
  padding-top: 1.2rem;
  /* prevents text jump on Enter keypress */
  position: absolute;
  top: 0;
  z-index: -1;
}

/* Autocomplete */
.autocomplete-content li .highlight {
  color: #444;
}

.autocomplete-content li img {
  height: 40px;
  width: 40px;
  margin: 5px 15px;
}

/* Character Counter */
.character-counter {
  min-height: 18px;
}

/* Radio Buttons
   ========================================================================== */
[type="radio"]:not(:checked),
[type="radio"]:checked {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

[type="radio"]:not(:checked) + span,
[type="radio"]:checked + span {
  position: relative;
  padding-left: 35px;
  cursor: pointer;
  display: inline-block;
  height: 25px;
  line-height: 25px;
  font-size: 1rem;
  -webkit-transition: .28s ease;
  transition: .28s ease;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

[type="radio"] + span:before,
[type="radio"] + span:after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  margin: 4px;
  width: 16px;
  height: 16px;
  z-index: 0;
  -webkit-transition: .28s ease;
  transition: .28s ease;
}

/* Unchecked styles */
[type="radio"]:not(:checked) + span:before,
[type="radio"]:not(:checked) + span:after,
[type="radio"]:checked + span:before,
[type="radio"]:checked + span:after,
[type="radio"].with-gap:checked + span:before,
[type="radio"].with-gap:checked + span:after {
  border-radius: 50%;
}

[type="radio"]:not(:checked) + span:before,
[type="radio"]:not(:checked) + span:after {
  border: 2px solid #5a5a5a;
}

[type="radio"]:not(:checked) + span:after {
  -webkit-transform: scale(0);
          transform: scale(0);
}

/* Checked styles */
[type="radio"]:checked + span:before {
  border: 2px solid transparent;
}

[type="radio"]:checked + span:after,
[type="radio"].with-gap:checked + span:before,
[type="radio"].with-gap:checked + span:after {
  border: 2px solid #26a69a;
}

[type="radio"]:checked + span:after,
[type="radio"].with-gap:checked + span:after {
  background-color: #26a69a;
}

[type="radio"]:checked + span:after {
  -webkit-transform: scale(1.02);
          transform: scale(1.02);
}

/* Radio With gap */
[type="radio"].with-gap:checked + span:after {
  -webkit-transform: scale(0.5);
          transform: scale(0.5);
}

/* Focused styles */
[type="radio"].tabbed:focus + span:before {
  -webkit-box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Disabled Radio With gap */
[type="radio"].with-gap:disabled:checked + span:before {
  border: 2px solid rgba(0, 0, 0, 0.42);
}

[type="radio"].with-gap:disabled:checked + span:after {
  border: none;
  background-color: rgba(0, 0, 0, 0.42);
}

/* Disabled style */
[type="radio"]:disabled:not(:checked) + span:before,
[type="radio"]:disabled:checked + span:before {
  background-color: transparent;
  border-color: rgba(0, 0, 0, 0.42);
}

[type="radio"]:disabled + span {
  color: rgba(0, 0, 0, 0.42);
}

[type="radio"]:disabled:not(:checked) + span:before {
  border-color: rgba(0, 0, 0, 0.42);
}

[type="radio"]:disabled:checked + span:after {
  background-color: rgba(0, 0, 0, 0.42);
  border-color: #949494;
}

/* Checkboxes
   ========================================================================== */
/* Remove default checkbox */
[type="checkbox"]:not(:checked),
[type="checkbox"]:checked {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

[type="checkbox"] {
  /* checkbox aspect */
}

[type="checkbox"] + span:not(.lever) {
  position: relative;
  padding-left: 35px;
  cursor: pointer;
  display: inline-block;
  height: 25px;
  line-height: 25px;
  font-size: 1rem;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

[type="checkbox"] + span:not(.lever):before,
[type="checkbox"]:not(.filled-in) + span:not(.lever):after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 18px;
  height: 18px;
  z-index: 0;
  border: 2px solid #5a5a5a;
  border-radius: 1px;
  margin-top: 3px;
  -webkit-transition: .2s;
  transition: .2s;
}

[type="checkbox"]:not(.filled-in) + span:not(.lever):after {
  border: 0;
  -webkit-transform: scale(0);
          transform: scale(0);
}

[type="checkbox"]:not(:checked):disabled + span:not(.lever):before {
  border: none;
  background-color: rgba(0, 0, 0, 0.42);
}

[type="checkbox"].tabbed:focus + span:not(.lever):after {
  -webkit-transform: scale(1);
          transform: scale(1);
  border: 0;
  border-radius: 50%;
  -webkit-box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
  background-color: rgba(0, 0, 0, 0.1);
}

[type="checkbox"]:checked + span:not(.lever):before {
  top: -4px;
  left: -5px;
  width: 12px;
  height: 22px;
  border-top: 2px solid transparent;
  border-left: 2px solid transparent;
  border-right: 2px solid #26a69a;
  border-bottom: 2px solid #26a69a;
  -webkit-transform: rotate(40deg);
          transform: rotate(40deg);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}

[type="checkbox"]:checked:disabled + span:before {
  border-right: 2px solid rgba(0, 0, 0, 0.42);
  border-bottom: 2px solid rgba(0, 0, 0, 0.42);
}

/* Indeterminate checkbox */
[type="checkbox"]:indeterminate + span:not(.lever):before {
  top: -11px;
  left: -12px;
  width: 10px;
  height: 22px;
  border-top: none;
  border-left: none;
  border-right: 2px solid #26a69a;
  border-bottom: none;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}

[type="checkbox"]:indeterminate:disabled + span:not(.lever):before {
  border-right: 2px solid rgba(0, 0, 0, 0.42);
  background-color: transparent;
}

[type="checkbox"].filled-in + span:not(.lever):after {
  border-radius: 2px;
}

[type="checkbox"].filled-in + span:not(.lever):before,
[type="checkbox"].filled-in + span:not(.lever):after {
  content: '';
  left: 0;
  position: absolute;
  /* .1s delay is for check animation */
  -webkit-transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
  transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
  z-index: 1;
}

[type="checkbox"].filled-in:not(:checked) + span:not(.lever):before {
  width: 0;
  height: 0;
  border: 3px solid transparent;
  left: 6px;
  top: 10px;
  -webkit-transform: rotateZ(37deg);
          transform: rotateZ(37deg);
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}

[type="checkbox"].filled-in:not(:checked) + span:not(.lever):after {
  height: 20px;
  width: 20px;
  background-color: transparent;
  border: 2px solid #5a5a5a;
  top: 0px;
  z-index: 0;
}

[type="checkbox"].filled-in:checked + span:not(.lever):before {
  top: 0;
  left: 1px;
  width: 8px;
  height: 13px;
  border-top: 2px solid transparent;
  border-left: 2px solid transparent;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  -webkit-transform: rotateZ(37deg);
          transform: rotateZ(37deg);
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}

[type="checkbox"].filled-in:checked + span:not(.lever):after {
  top: 0;
  width: 20px;
  height: 20px;
  border: 2px solid #26a69a;
  background-color: #26a69a;
  z-index: 0;
}

[type="checkbox"].filled-in.tabbed:focus + span:not(.lever):after {
  border-radius: 2px;
  border-color: #5a5a5a;
  background-color: rgba(0, 0, 0, 0.1);
}

[type="checkbox"].filled-in.tabbed:checked:focus + span:not(.lever):after {
  border-radius: 2px;
  background-color: #26a69a;
  border-color: #26a69a;
}

[type="checkbox"].filled-in:disabled:not(:checked) + span:not(.lever):before {
  background-color: transparent;
  border: 2px solid transparent;
}

[type="checkbox"].filled-in:disabled:not(:checked) + span:not(.lever):after {
  border-color: transparent;
  background-color: #949494;
}

[type="checkbox"].filled-in:disabled:checked + span:not(.lever):before {
  background-color: transparent;
}

[type="checkbox"].filled-in:disabled:checked + span:not(.lever):after {
  background-color: #949494;
  border-color: #949494;
}

/* Switch
   ========================================================================== */
.switch,
.switch * {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.switch label {
  cursor: pointer;
}

.switch label input[type=checkbox] {
  opacity: 0;
  width: 0;
  height: 0;
}

.switch label input[type=checkbox]:checked + .lever {
  background-color: #84c7c1;
}

.switch label input[type=checkbox]:checked + .lever:before, .switch label input[type=checkbox]:checked + .lever:after {
  left: 18px;
}

.switch label input[type=checkbox]:checked + .lever:after {
  background-color: #26a69a;
}

.switch label .lever {
  content: "";
  display: inline-block;
  position: relative;
  width: 36px;
  height: 14px;
  background-color: rgba(0, 0, 0, 0.38);
  border-radius: 15px;
  margin-right: 10px;
  -webkit-transition: background 0.3s ease;
  transition: background 0.3s ease;
  vertical-align: middle;
  margin: 0 16px;
}

.switch label .lever:before, .switch label .lever:after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  left: 0;
  top: -3px;
  -webkit-transition: left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;
  transition: left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;
  transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease;
  transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;
}

.switch label .lever:before {
  background-color: rgba(38, 166, 154, 0.15);
}

.switch label .lever:after {
  background-color: #F1F1F1;
  -webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
          box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}

input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,
input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before {
  -webkit-transform: scale(2.4);
          transform: scale(2.4);
  background-color: rgba(38, 166, 154, 0.15);
}

input[type=checkbox]:not(:disabled) ~ .lever:active:before,
input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before {
  -webkit-transform: scale(2.4);
          transform: scale(2.4);
  background-color: rgba(0, 0, 0, 0.08);
}

.switch input[type=checkbox][disabled] + .lever {
  cursor: default;
  background-color: rgba(0, 0, 0, 0.12);
}

.switch label input[type=checkbox][disabled] + .lever:after,
.switch label input[type=checkbox][disabled]:checked + .lever:after {
  background-color: #949494;
}

/* Select Field
   ========================================================================== */
select {
  display: none;
}

select.browser-default {
  display: block;
}

select {
  background-color: rgba(255, 255, 255, 0.9);
  width: 100%;
  padding: 5px;
  border: 1px solid #f2f2f2;
  border-radius: 2px;
  height: 3rem;
}

.select-label {
  position: absolute;
}

.select-wrapper {
  position: relative;
}

.select-wrapper.valid + label,
.select-wrapper.invalid + label {
  width: 100%;
  pointer-events: none;
}

.select-wrapper input.select-dropdown {
  position: relative;
  cursor: pointer;
  background-color: transparent;
  border: none;
  border-bottom: 1px solid #9e9e9e;
  outline: none;
  height: 3rem;
  line-height: 3rem;
  width: 100%;
  font-size: 16px;
  margin: 0 0 8px 0;
  padding: 0;
  display: block;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  z-index: 1;
}

.select-wrapper input.select-dropdown:focus {
  border-bottom: 1px solid #26a69a;
}

.select-wrapper .caret {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto 0;
  z-index: 0;
  fill: rgba(0, 0, 0, 0.87);
}

.select-wrapper + label {
  position: absolute;
  top: -26px;
  font-size: 0.8rem;
}

select:disabled {
  color: rgba(0, 0, 0, 0.42);
}

.select-wrapper.disabled + label {
  color: rgba(0, 0, 0, 0.42);
}

.select-wrapper.disabled .caret {
  fill: rgba(0, 0, 0, 0.42);
}

.select-wrapper input.select-dropdown:disabled {
  color: rgba(0, 0, 0, 0.42);
  cursor: default;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.select-wrapper i {
  color: rgba(0, 0, 0, 0.3);
}

.select-dropdown li.disabled,
.select-dropdown li.disabled > span,
.select-dropdown li.optgroup {
  color: rgba(0, 0, 0, 0.3);
  background-color: transparent;
}

body.keyboard-focused .select-dropdown.dropdown-content li:focus {
  background-color: rgba(0, 0, 0, 0.08);
}

.select-dropdown.dropdown-content li:hover {
  background-color: rgba(0, 0, 0, 0.08);
}

.select-dropdown.dropdown-content li.selected {
  background-color: rgba(0, 0, 0, 0.03);
}

.prefix ~ .select-wrapper {
  margin-left: 3rem;
  width: 92%;
  width: calc(100% - 3rem);
}

.prefix ~ label {
  margin-left: 3rem;
}

.select-dropdown li img {
  height: 40px;
  width: 40px;
  margin: 5px 15px;
  float: right;
}

.select-dropdown li.optgroup {
  border-top: 1px solid #eee;
}

.select-dropdown li.optgroup.selected > span {
  color: rgba(0, 0, 0, 0.7);
}

.select-dropdown li.optgroup > span {
  color: rgba(0, 0, 0, 0.4);
}

.select-dropdown li.optgroup ~ li.optgroup-option {
  padding-left: 1rem;
}

/* File Input
   ========================================================================== */
.file-field {
  position: relative;
}

.file-field .file-path-wrapper {
  overflow: hidden;
  padding-left: 10px;
}

.file-field input.file-path {
  width: 100%;
}

.file-field .btn, .file-field .btn-large, .file-field .btn-small {
  float: left;
  height: 3rem;
  line-height: 3rem;
}

.file-field span {
  cursor: pointer;
}

.file-field input[type=file] {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  font-size: 20px;
  cursor: pointer;
  opacity: 0;
  filter: alpha(opacity=0);
}

.file-field input[type=file]::-webkit-file-upload-button {
  display: none;
}

/* Range
   ========================================================================== */
.range-field {
  position: relative;
}

input[type=range],
input[type=range] + .thumb {
  cursor: pointer;
}

input[type=range] {
  position: relative;
  background-color: transparent;
  border: none;
  outline: none;
  width: 100%;
  margin: 15px 0;
  padding: 0;
}

input[type=range]:focus {
  outline: none;
}

input[type=range] + .thumb {
  position: absolute;
  top: 10px;
  left: 0;
  border: none;
  height: 0;
  width: 0;
  border-radius: 50%;
  background-color: #26a69a;
  margin-left: 7px;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

input[type=range] + .thumb .value {
  display: block;
  width: 30px;
  text-align: center;
  color: #26a69a;
  font-size: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

input[type=range] + .thumb.active {
  border-radius: 50% 50% 50% 0;
}

input[type=range] + .thumb.active .value {
  color: #fff;
  margin-left: -1px;
  margin-top: 8px;
  font-size: 10px;
}

input[type=range] {
  -webkit-appearance: none;
}

input[type=range]::-webkit-slider-runnable-track {
  height: 3px;
  background: #c2c0c2;
  border: none;
}

input[type=range]::-webkit-slider-thumb {
  border: none;
  height: 14px;
  width: 14px;
  border-radius: 50%;
  background: #26a69a;
  -webkit-transition: -webkit-box-shadow .3s;
  transition: -webkit-box-shadow .3s;
  transition: box-shadow .3s;
  transition: box-shadow .3s, -webkit-box-shadow .3s;
  -webkit-appearance: none;
  background-color: #26a69a;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
  margin: -5px 0 0 0;
}

.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb {
  -webkit-box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);
          box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);
}

input[type=range] {
  /* fix for FF unable to apply focus style bug  */
  border: 1px solid white;
  /*required for proper track sizing in FF*/
}

input[type=range]::-moz-range-track {
  height: 3px;
  background: #c2c0c2;
  border: none;
}

input[type=range]::-moz-focus-inner {
  border: 0;
}

input[type=range]::-moz-range-thumb {
  border: none;
  height: 14px;
  width: 14px;
  border-radius: 50%;
  background: #26a69a;
  -webkit-transition: -webkit-box-shadow .3s;
  transition: -webkit-box-shadow .3s;
  transition: box-shadow .3s;
  transition: box-shadow .3s, -webkit-box-shadow .3s;
  margin-top: -5px;
}

input[type=range]:-moz-focusring {
  outline: 1px solid #fff;
  outline-offset: -1px;
}

.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb {
  box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26);
}

input[type=range]::-ms-track {
  height: 3px;
  background: transparent;
  border-color: transparent;
  border-width: 6px 0;
  /*remove default tick 
Download .txt
gitextract_n2l1_zf6/

├── .gitignore
├── bin/
│   ├── console
│   └── phpunit
├── composer.json
├── config/
│   ├── bootstrap.php
│   ├── bundles.php
│   ├── packages/
│   │   ├── assets.yaml
│   │   ├── dev/
│   │   │   ├── debug.yaml
│   │   │   ├── monolog.yaml
│   │   │   ├── routing.yaml
│   │   │   ├── security_checker.yaml
│   │   │   ├── swiftmailer.yaml
│   │   │   └── web_profiler.yaml
│   │   ├── doctrine.yaml
│   │   ├── doctrine_migrations.yaml
│   │   ├── easy_admin.yaml
│   │   ├── fos_ck_editor.yaml
│   │   ├── framework.yaml
│   │   ├── html_sanitizer.yaml
│   │   ├── prod/
│   │   │   ├── doctrine.yaml
│   │   │   ├── monolog.yaml
│   │   │   └── webpack_encore.yaml
│   │   ├── routing.yaml
│   │   ├── security.yaml
│   │   ├── security_checker.yaml
│   │   ├── sensio_framework_extra.yaml
│   │   ├── sentry.yml
│   │   ├── swiftmailer.yaml
│   │   ├── test/
│   │   │   ├── dama_doctrine_test_bundle.yaml
│   │   │   ├── framework.yaml
│   │   │   ├── monolog.yaml
│   │   │   ├── routing.yaml
│   │   │   ├── security.yaml
│   │   │   ├── swiftmailer.yaml
│   │   │   └── web_profiler.yaml
│   │   ├── translation.yaml
│   │   ├── twig.yaml
│   │   ├── twig_extensions.yaml
│   │   ├── validator.yaml
│   │   ├── vich_uploader.yaml
│   │   └── webpack_encore.yaml
│   ├── routes/
│   │   ├── annotations.yaml
│   │   ├── dev/
│   │   │   ├── twig.yaml
│   │   │   └── web_profiler.yaml
│   │   └── easy_admin.yaml
│   └── services.yaml
├── package.json
├── phpunit.xml.dist
├── public/
│   ├── .htaccess
│   ├── build/
│   │   ├── app.css
│   │   ├── app.js
│   │   ├── entrypoints.json
│   │   ├── manifest.json
│   │   └── runtime.js
│   ├── css/
│   │   ├── materialize.css
│   │   ├── seat-base.css
│   │   └── seat.css
│   ├── ico/
│   │   ├── browserconfig.xml
│   │   └── manifest.json
│   ├── index.php
│   └── js/
│       └── materialize.js
├── resources/
│   ├── assets/
│   │   ├── css/
│   │   │   └── app.css
│   │   └── js/
│   │       └── app.js
│   ├── templates/
│   │   ├── admin/
│   │   │   └── command/
│   │   │       └── list.twig
│   │   ├── base_resto.html.twig
│   │   ├── bundles/
│   │   │   └── EasyAdminBundle/
│   │   │       └── default/
│   │   │           └── layout.html.twig
│   │   ├── component/
│   │   │   └── download.html.twig
│   │   ├── default/
│   │   │   └── registration_complete.html.twig
│   │   ├── form/
│   │   │   ├── field-new.html.twig
│   │   │   └── field.html.twig
│   │   ├── order/
│   │   │   ├── confirm-basket.html.twig
│   │   │   ├── go-to-confirm-basket.html.twig
│   │   │   ├── summary.html.twig
│   │   │   └── the-menu.html.twig
│   │   └── page/
│   │       ├── basket.html.twig
│   │       ├── business-lunch.html.twig
│   │       ├── contact.html.twig
│   │       ├── home.html.twig
│   │       ├── login.html.twig
│   │       ├── menu-salle.html.twig
│   │       ├── order-done.html.twig
│   │       ├── register-complete.html.twig
│   │       ├── register.html.twig
│   │       ├── take-away.html.twig
│   │       └── update-client.html.twig
│   └── translations/
│       ├── EasyAdminBundle.fr.xlf
│       └── messages.fr.yaml
├── src/
│   └── Seat/
│       ├── Domain/
│       │   ├── Basket/
│       │   │   ├── Entity/
│       │   │   │   ├── Basket.php
│       │   │   │   └── BasketRepository.php
│       │   │   ├── Model/
│       │   │   │   ├── BasketProduct.php
│       │   │   │   ├── BasketProductOption.php
│       │   │   │   ├── BasketProductSupplement.php
│       │   │   │   ├── OrderType.php
│       │   │   │   ├── OrderTypeName.php
│       │   │   │   └── PossibleOrderType.php
│       │   │   ├── Service/
│       │   │   │   ├── Error/
│       │   │   │   │   ├── DeliveryNotAvailable.php
│       │   │   │   │   ├── OrderTooLate.php
│       │   │   │   │   ├── TakeAwayNotAvailable.php
│       │   │   │   │   └── TakeAwayTooLate.php
│       │   │   │   └── OrderTypeChecker.php
│       │   │   └── UseCase/
│       │   │       ├── AddProductToBasket/
│       │   │       │   ├── AddProductToBasket.php
│       │   │       │   ├── AddProductToBasketPresenter.php
│       │   │       │   ├── AddProductToBasketRequest.php
│       │   │       │   └── AddProductToBasketResponse.php
│       │   │       ├── RemoveFromBasket/
│       │   │       │   ├── RemoveFromBasket.php
│       │   │       │   ├── RemoveFromBasketPresenter.php
│       │   │       │   ├── RemoveFromBasketRequest.php
│       │   │       │   └── RemoveFromBasketResponse.php
│       │   │       └── ShowBasket/
│       │   │           ├── ShowBasket.php
│       │   │           ├── ShowBasketPresenter.php
│       │   │           ├── ShowBasketRequest.php
│       │   │           └── ShowBasketResponse.php
│       │   ├── Client/
│       │   │   ├── Entity/
│       │   │   │   ├── Client.php
│       │   │   │   ├── ClientRepository.php
│       │   │   │   ├── Company.php
│       │   │   │   ├── CompanyRepository.php
│       │   │   │   ├── Role.php
│       │   │   │   └── Store.php
│       │   │   └── UseCase/
│       │   │       ├── GetClient/
│       │   │       │   ├── GetClient.php
│       │   │       │   ├── GetClientPresenter.php
│       │   │       │   ├── GetClientRequest.php
│       │   │       │   └── GetClientResponse.php
│       │   │       ├── Login/
│       │   │       │   ├── Login.php
│       │   │       │   ├── LoginPresenter.php
│       │   │       │   ├── LoginRequest.php
│       │   │       │   └── LoginResponse.php
│       │   │       ├── Register/
│       │   │       │   ├── Register.php
│       │   │       │   ├── RegisterPresenter.php
│       │   │       │   ├── RegisterRequest.php
│       │   │       │   └── RegisterResponse.php
│       │   │       └── UpdateClient/
│       │   │           ├── UpdateClient.php
│       │   │           ├── UpdateClientPresenter.php
│       │   │           ├── UpdateClientRequest.php
│       │   │           └── UpdateClientResponse.php
│       │   ├── Cms/
│       │   │   └── Entity/
│       │   │       ├── HtmlContent.php
│       │   │       └── HtmlContentRepository.php
│       │   ├── Menu/
│       │   │   ├── Entity/
│       │   │   │   ├── Category.php
│       │   │   │   ├── CategoryRepository.php
│       │   │   │   ├── Product.php
│       │   │   │   ├── ProductOption.php
│       │   │   │   ├── ProductOptionRepository.php
│       │   │   │   ├── ProductRepository.php
│       │   │   │   ├── ProductSupplement.php
│       │   │   │   └── ProductSupplementRepository.php
│       │   │   ├── Model/
│       │   │   │   ├── MenuLine.php
│       │   │   │   ├── MenuOption.php
│       │   │   │   ├── MenuProduct.php
│       │   │   │   └── MenuSupplement.php
│       │   │   └── UseCase/
│       │   │       └── GetMenu/
│       │   │           ├── GetMenu.php
│       │   │           ├── GetMenuPresenter.php
│       │   │           └── GetMenuResponse.php
│       │   └── Order/
│       │       ├── Entity/
│       │       │   ├── Command.php
│       │       │   └── CommandRepository.php
│       │       └── UseCase/
│       │           └── ConfirmBasket/
│       │               ├── ConfirmBasket.php
│       │               ├── ConfirmBasketPresenter.php
│       │               ├── ConfirmBasketRequest.php
│       │               └── ConfirmBasketResponse.php
│       ├── Infrastructure/
│       │   └── Symfony4/
│       │       ├── Controller/
│       │       │   ├── AddToBasketController.php
│       │       │   ├── AdminController.php
│       │       │   ├── BusinessLunchController.php
│       │       │   ├── ContactController.php
│       │       │   ├── HomeController.php
│       │       │   ├── LoginCheckController.php
│       │       │   ├── LoginController.php
│       │       │   ├── LogoutController.php
│       │       │   ├── MenuSalleController.php
│       │       │   ├── RegisterCompleteController.php
│       │       │   ├── RegisterController.php
│       │       │   ├── RemoveFromBasketController.php
│       │       │   ├── ShowBasketController.php
│       │       │   ├── ShowOrderMenuController.php
│       │       │   └── UpdateClientController.php
│       │       ├── DependencyInjection/
│       │       │   └── Compiler/
│       │       │       ├── AdminFilterRolePass.php
│       │       │       └── AutowireSeatPass.php
│       │       ├── Doctrine/
│       │       │   ├── Basket.php
│       │       │   ├── BasketProductJson.php
│       │       │   ├── Category.php
│       │       │   ├── CategoryOption.php
│       │       │   ├── CategorySupplement.php
│       │       │   ├── Command.php
│       │       │   ├── Company.php
│       │       │   ├── DoctrineBasketRepository.php
│       │       │   ├── DoctrineCategoryRepository.php
│       │       │   ├── DoctrineClientRepository.php
│       │       │   ├── DoctrineCommandRepository.php
│       │       │   ├── DoctrineCompanyRepository.php
│       │       │   ├── DoctrineHtmlContentRepository.php
│       │       │   ├── DoctrineProductOptionRepository.php
│       │       │   ├── DoctrineProductRepository.php
│       │       │   ├── DoctrineProductSupplementRepository.php
│       │       │   ├── HtmlContent.php
│       │       │   ├── Pdf.php
│       │       │   ├── Product.php
│       │       │   ├── Tournee.php
│       │       │   └── User.php
│       │       ├── Form/
│       │       │   ├── BasketConfirmationType.php
│       │       │   ├── BasketType.php
│       │       │   ├── FormHelper.php
│       │       │   ├── RegisterType.php
│       │       │   └── UpdateClientType.php
│       │       ├── Kernel.php
│       │       ├── ParamConverter/
│       │       │   ├── FormToNullableRequestConverter.php
│       │       │   └── FormToRequestConverter.php
│       │       ├── Security/
│       │       │   ├── Service/
│       │       │   │   ├── ClientUserProvider.php
│       │       │   │   └── FormAuthenticator.php
│       │       │   └── User.php
│       │       ├── Twig/
│       │       │   ├── ContentExtension.php
│       │       │   └── DownloadExtension.php
│       │       └── View/
│       │           ├── AddProductToBasketView.php
│       │           ├── ConfirmBasketView.php
│       │           ├── GetMenuView.php
│       │           ├── RegisterView.php
│       │           ├── RemoveFromBasketView.php
│       │           ├── ShowBasketView.php
│       │           └── UpdateClientView.php
│       ├── Presentation/
│       │   ├── Basket/
│       │   │   ├── AddProductToBasketHtmlPresenter.php
│       │   │   ├── AddProductToBasketHtmlViewModel.php
│       │   │   ├── Model/
│       │   │   │   └── BasketViewModel.php
│       │   │   ├── RemoveFromBasketHtmlPresenter.php
│       │   │   ├── RemoveFromBasketHtmlViewModel.php
│       │   │   ├── ShowBasketHtmlPresenter.php
│       │   │   └── ShowBasketHtmlViewModel.php
│       │   ├── Client/
│       │   │   ├── EditableClient.php
│       │   │   ├── GetClientHtmlPresenter.php
│       │   │   ├── GetClientHtmlViewModel.php
│       │   │   ├── RegisterHtmlPresenter.php
│       │   │   ├── RegisterHtmlViewModel.php
│       │   │   ├── UpdateClientHtmlPresenter.php
│       │   │   └── UpdateClientHtmlViewModel.php
│       │   ├── Menu/
│       │   │   ├── GetMenuHtmlPresenter.php
│       │   │   ├── GetMenuHtmlViewModel.php
│       │   │   └── Model/
│       │   │       └── MenuViewModel.php
│       │   └── Order/
│       │       ├── ConfirmBasketHtmlPresenter.php
│       │       └── ConfirmBasketHtmlViewModel.php
│       └── SharedKernel/
│           ├── Error/
│           │   ├── Error.php
│           │   └── Notification.php
│           ├── Model/
│           │   └── TimeRange.php
│           └── Service/
│               ├── Base64PasswordHasher.php
│               ├── Clock.php
│               ├── IdGenerator.php
│               ├── NativePasswordHasher.php
│               └── PasswordHasher.php
├── tests/
│   └── unit/
│       └── Seat/
│           ├── Domain/
│           │   ├── Basket/
│           │   │   ├── Entity/
│           │   │   │   └── ProductBuilder.php
│           │   │   ├── Service/
│           │   │   │   └── OrderTypeCheckerTest.php
│           │   │   └── UseCase/
│           │   │       ├── AddProductToBasket/
│           │   │       │   └── AddProductToBasketTest.php
│           │   │       └── RemoveFromBasket/
│           │   │           └── RemoveFromBasketTest.php
│           │   ├── Client/
│           │   │   ├── Entity/
│           │   │   │   ├── ClientBuilder.php
│           │   │   │   └── CompanyBuilder.php
│           │   │   └── UseCase/
│           │   │       ├── GetClient/
│           │   │       │   └── GetClientTest.php
│           │   │       ├── Login/
│           │   │       │   └── LoginTest.php
│           │   │       ├── Register/
│           │   │       │   ├── RegisterRequestBuilder.php
│           │   │       │   └── RegisterTest.php
│           │   │       └── UpdateClient/
│           │   │           ├── UpdateClientRequestBuilder.php
│           │   │           └── UpdateClientTest.php
│           │   ├── Menu/
│           │   │   └── UseCase/
│           │   │       └── GetMenu/
│           │   │           └── GetMenuTest.php
│           │   └── Order/
│           │       └── UseCase/
│           │           └── ConfirmBasket/
│           │               ├── ConfirmBasketRequestBuilder.php
│           │               └── ConfirmBasketTest.php
│           ├── SharedKernel/
│           │   └── Model/
│           │       └── TimeRangeTest.php
│           └── _Mock/
│               ├── Domain/
│               │   ├── Basket/
│               │   │   └── Entity/
│               │   │       └── InMemoryBasketRepository.php
│               │   ├── Client/
│               │   │   └── Entity/
│               │   │       ├── InMemoryClientRepository.php
│               │   │       └── InMemoryCompanyRepository.php
│               │   ├── Menu/
│               │   │   └── Entity/
│               │   │       ├── InMemoryCategoryRepository.php
│               │   │       ├── InMemoryProductOptionRepository.php
│               │   │       ├── InMemoryProductRepository.php
│               │   │       └── InMemoryProductSupplementRepository.php
│               │   └── Order/
│               │       └── Entity/
│               │           └── InMemoryCommandRepository.php
│               └── Seat/
│                   └── SharedKernel/
│                       └── Service/
│                           └── IdGeneratorMock.php
└── webpack.config.js
Download .txt
SYMBOL INDEX (1002 symbols across 182 files)

FILE: public/build/runtime.js
  function webpackJsonpCallback (line 3) | function webpackJsonpCallback(data) {
  function checkDeferredModules (line 35) | function checkDeferredModules() {
  function __webpack_require__ (line 65) | function __webpack_require__(moduleId) {

FILE: public/js/materialize.js
  function defineProperties (line 8) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _possibleConstructorReturn (line 10) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
  function _inherits (line 12) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
  function _classCallCheck (line 14) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function find (line 41) | function find(selector, context) {
  function parseHTML (line 48) | function parseHTML(str) {
  function onReady (line 61) | function onReady(fn) {
  function Init (line 69) | function Init(selector, context) {
  function cash (line 116) | function cash(selector, context) {
  function each (line 162) | function each(collection, callback) {
  function matches (line 173) | function matches(el, selector) {
  function getCompareFunction (line 178) | function getCompareFunction(selector) {
  function unique (line 193) | function unique(collection) {
  function getDataCache (line 225) | function getDataCache(node) {
  function setData (line 229) | function setData(node, key, value) {
  function getData (line 233) | function getData(node, key) {
  function removeData (line 241) | function removeData(node, key) {
  function getClasses (line 277) | function getClasses(c) {
  function hasClass (line 281) | function hasClass(v, c) {
  function addClass (line 285) | function addClass(v, c, spacedName) {
  function removeClass (line 293) | function removeClass(v, c) {
  function compute (line 517) | function compute(el, prop) {
  function registerEvent (line 537) | function registerEvent(node, eventName, callback) {
  function removeEvent (line 544) | function removeEvent(node, eventName, callback) {
  function encode (line 649) | function encode(name, value) {
  function getSelectMultiple_ (line 653) | function getSelectMultiple_(el) {
  function getSelectSingle_ (line 663) | function getSelectSingle_(el) {
  function getValue (line 668) | function getValue(el) {
  function insertElement (line 733) | function insertElement(el, child, prepend) {
  function insertContent (line 742) | function insertContent(parent, child, prepend) {
  function Component (line 1014) | function Component(classDef, el, options) {
  function s4 (line 1211) | function s4() {
  function e (line 1525) | function e(a) {
  function r (line 1529) | function r(a, c) {
  function p (line 1535) | function p(a) {
  function m (line 1539) | function m(a) {
  function u (line 1542) | function u(a, c) {
  function C (line 1546) | function C(a) {
  function D (line 1551) | function D(a, c) {
  function z (line 1556) | function z(a, c) {
  function T (line 1561) | function T(a) {
  function U (line 1567) | function U(a) {
  function y (line 1578) | function y(a) {
  function V (line 1580) | function V(a) {
  function I (line 1582) | function I(a, c) {
  function E (line 1584) | function E(a, c) {
  function J (line 1586) | function J(a, c) {
  function X (line 1588) | function X(a, c) {
  function K (line 1595) | function K(a, c) {
  function L (line 1600) | function L(a, c) {
  function F (line 1605) | function F(a, c) {
  function M (line 1607) | function M(a) {
  function N (line 1611) | function N(a) {
  function Y (line 1618) | function Y(a, c) {
  function O (line 1628) | function O(a, c) {
  function P (line 1635) | function P(a) {
  function Z (line 1639) | function Z(a) {
  function aa (line 1643) | function aa(a, c) {
  function ba (line 1651) | function ba(a, c) {
  function ca (line 1658) | function ca(a) {
  function da (line 1660) | function da(a, c) {
  function ea (line 1669) | function ea(a, c) {
  function R (line 1679) | function R(a, c, d, b) {
  function fa (line 1683) | function fa(a) {
  function q (line 1692) | function q(a) {
  function a (line 1795) | function a(a, d, b) {
  function a (line 1822) | function a(a, b) {
  function a (line 1852) | function a() {
  function c (line 1854) | function c(c) {
  function Collapsible (line 1913) | function Collapsible(el, options) {
  function Dropdown (line 2240) | function Dropdown(el, options) {
  function Modal (line 2893) | function Modal(el, options) {
  function Materialbox (line 3327) | function Materialbox(el, options) {
  function Parallax (line 3814) | function Parallax(el, options) {
  function Tabs (line 3991) | function Tabs(el, options) {
  function Tooltip (line 4461) | function Tooltip(el, options) {
  function isWindow (line 4790) | function isWindow(obj) {
  function getWindow (line 4794) | function getWindow(elem) {
  function offset (line 4798) | function offset(elem) {
  function convertStyle (line 4816) | function convertStyle(obj) {
  function getWavesEffectElement (line 5025) | function getWavesEffectElement(e) {
  function showEffect (line 5046) | function showEffect(e) {
  function Toast (line 5121) | function Toast(options) {
  function Sidenav (line 5486) | function Sidenav(el, options) {
  function ScrollSpy (line 6129) | function ScrollSpy(el, options) {
  function Autocomplete (line 6449) | function Autocomplete(el, options) {
  function Slider (line 7183) | function Slider(el, options) {
  function Chips (line 7641) | function Chips(el, options) {
  function Pushpin (line 8185) | function Pushpin(el, options) {
  function FloatingActionButton (line 8352) | function FloatingActionButton(el, options) {
  function Datepicker (line 8821) | function Datepicker(el, options) {
  function Timepicker (line 9692) | function Timepicker(el, options) {
  function CharacterCounter (line 10307) | function CharacterCounter(el, options) {
  function Carousel (line 10487) | function Carousel(el, options) {
  function TapTarget (line 11267) | function TapTarget(el, options) {
  function FormSelect (line 11621) | function FormSelect(el, options) {
  function Range (line 12094) | function Range(el, options) {

FILE: src/Seat/Domain/Basket/Entity/Basket.php
  class Basket (line 7) | class Basket extends \ArrayObject
    method __construct (line 14) | public function __construct(string $userId, array $basketProducts)
    method totalPrice (line 20) | public function totalPrice()
    method userId (line 31) | public function userId(): string
    method isEmpty (line 36) | public function isEmpty()
    method checkSum (line 41) | public function checkSum()

FILE: src/Seat/Domain/Basket/Entity/BasketRepository.php
  type BasketRepository (line 7) | interface BasketRepository
    method addToBasket (line 9) | public function addToBasket(string $userId, BasketProduct $basketProdu...
    method getUserBasket (line 11) | public function getUserBasket(string $userId): Basket;
    method emptyBasketFor (line 13) | public function emptyBasketFor(string $userId): void;
    method delete (line 15) | public function delete(string $basketId, string $userId): void;

FILE: src/Seat/Domain/Basket/Model/BasketProduct.php
  class BasketProduct (line 5) | class BasketProduct
    method __construct (line 16) | public function __construct(
    method id (line 34) | public function id(): string
    method name (line 39) | public function name(): string
    method price (line 44) | public function price(): float
    method option (line 49) | public function option(): ?BasketProductOption
    method supplements (line 57) | public function supplements(): array
    method comment (line 62) | public function comment(): string
    method quantity (line 67) | public function quantity(): int
    method totalPrice (line 72) | public function totalPrice()

FILE: src/Seat/Domain/Basket/Model/BasketProductOption.php
  class BasketProductOption (line 5) | class BasketProductOption
    method __construct (line 10) | public function __construct(string $name, float $price)
    method name (line 16) | public function name(): string
    method price (line 21) | public function price(): float

FILE: src/Seat/Domain/Basket/Model/BasketProductSupplement.php
  class BasketProductSupplement (line 5) | class BasketProductSupplement
    method __construct (line 10) | public function __construct(string $name, float $price)
    method name (line 16) | public function name(): string
    method price (line 21) | public function price(): float

FILE: src/Seat/Domain/Basket/Model/OrderType.php
  class OrderType (line 6) | class OrderType
    method takeAwayFor (line 14) | public static function takeAwayFor($time)
    method delivery (line 19) | public static function delivery()
    method fromString (line 24) | public static function fromString($orderType, $takeAwayTime = null)
    method __construct (line 36) | public function __construct(string $name, ?string $time = null)
    method name (line 42) | public function name(): string
    method time (line 47) | public function time(): ?string
    method isDelivery (line 52) | public function isDelivery()
    method isTakeAway (line 57) | public function isTakeAway()

FILE: src/Seat/Domain/Basket/Model/OrderTypeName.php
  class OrderTypeName (line 5) | class OrderTypeName

FILE: src/Seat/Domain/Basket/Model/PossibleOrderType.php
  class PossibleOrderType (line 7) | class PossibleOrderType
    method __construct (line 13) | public function __construct(string $name, ?TimeRange $range, ?\Excepti...
    method name (line 20) | public function name(): string
    method range (line 25) | public function range(): ?TimeRange
    method error (line 30) | public function error(): ?\Exception

FILE: src/Seat/Domain/Basket/Service/Error/DeliveryNotAvailable.php
  class DeliveryNotAvailable (line 5) | class DeliveryNotAvailable extends \Exception

FILE: src/Seat/Domain/Basket/Service/Error/OrderTooLate.php
  class OrderTooLate (line 5) | class OrderTooLate extends \Exception

FILE: src/Seat/Domain/Basket/Service/Error/TakeAwayNotAvailable.php
  class TakeAwayNotAvailable (line 5) | class TakeAwayNotAvailable extends \Exception

FILE: src/Seat/Domain/Basket/Service/Error/TakeAwayTooLate.php
  class TakeAwayTooLate (line 5) | class TakeAwayTooLate extends \Exception

FILE: src/Seat/Domain/Basket/Service/OrderTypeChecker.php
  class OrderTypeChecker (line 19) | class OrderTypeChecker
    method __construct (line 28) | public function __construct(
    method getPossibleOrderType (line 38) | public function getPossibleOrderType(string $userId): PossibleOrderType
    method getPossibleOrderTypeForCompany (line 50) | private function getPossibleOrderTypeForCompany(?string $companyId)
    method checkPossibleOrderType (line 85) | public function checkPossibleOrderType(OrderType $orderType, ?string $...

FILE: src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasket.php
  class AddProductToBasket (line 17) | class AddProductToBasket
    method __construct (line 24) | public function __construct(
    method execute (line 37) | public function execute(AddProductToBasketRequest $request, AddProduct...
    method getProduct (line 72) | private function getProduct(AddProductToBasketRequest $basketData, Add...
    method getSupplements (line 83) | private function getSupplements(AddProductToBasketRequest $basketData,...
    method getOption (line 104) | private function getOption(AddProductToBasketRequest $basketData, AddP...
    method checkRequest (line 121) | private function checkRequest(AddProductToBasketRequest $request, AddP...

FILE: src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasketPresenter.php
  type AddProductToBasketPresenter (line 5) | interface AddProductToBasketPresenter
    method present (line 7) | public function present(AddProductToBasketResponse $response): void;

FILE: src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasketRequest.php
  class AddProductToBasketRequest (line 5) | class AddProductToBasketRequest
    method fromAll (line 20) | public static function fromAll($quantity, $userId, $productId, $option...
    method withUserId (line 33) | public function withUserId(string $userId)

FILE: src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasketResponse.php
  class AddProductToBasketResponse (line 8) | class AddProductToBasketResponse
    method __construct (line 14) | public function __construct()
    method addError (line 19) | public function addError(string $fieldName, string $error)
    method notification (line 24) | public function notification(): Notification
    method setBasketProduct (line 29) | public function setBasketProduct(BasketProduct $basketProduct)
    method basketProduct (line 34) | public function basketProduct(): ?BasketProduct

FILE: src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasket.php
  class RemoveFromBasket (line 7) | class RemoveFromBasket
    method __construct (line 11) | public function __construct(BasketRepository $basketRepository)
    method execute (line 16) | public function execute(RemoveFromBasketRequest $request, RemoveFromBa...

FILE: src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasketPresenter.php
  type RemoveFromBasketPresenter (line 5) | interface RemoveFromBasketPresenter
    method present (line 7) | public function present(RemoveFromBasketResponse $response): void;

FILE: src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasketRequest.php
  class RemoveFromBasketRequest (line 5) | class RemoveFromBasketRequest
    method __construct (line 10) | public function __construct($userId, $basketId)

FILE: src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasketResponse.php
  class RemoveFromBasketResponse (line 5) | class RemoveFromBasketResponse
    method isDone (line 9) | public function isDone(): bool
    method setIsDone (line 14) | public function setIsDone($isDone)

FILE: src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasket.php
  class ShowBasket (line 7) | class ShowBasket
    method __construct (line 11) | public function __construct(BasketRepository $basketRepository)
    method execute (line 17) | public function execute(ShowBasketRequest $request, ShowBasketPresente...

FILE: src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasketPresenter.php
  type ShowBasketPresenter (line 5) | interface ShowBasketPresenter
    method present (line 7) | public function present(ShowBasketResponse $response): void;

FILE: src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasketRequest.php
  class ShowBasketRequest (line 5) | class ShowBasketRequest
    method __construct (line 9) | public function __construct($userId)

FILE: src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasketResponse.php
  class ShowBasketResponse (line 7) | class ShowBasketResponse
    method setBasket (line 12) | public function setBasket(?Basket $basket)
    method basket (line 19) | public function basket(): ?Basket

FILE: src/Seat/Domain/Client/Entity/Client.php
  class Client (line 5) | class Client
    method __construct (line 18) | public function __construct(
    method firstName (line 42) | public function firstName(): string
    method lastName (line 47) | public function lastName(): string
    method phoneNumber (line 52) | public function phoneNumber(): string
    method id (line 57) | public function id(): string
    method email (line 62) | public function email(): string
    method password (line 67) | public function password(): string
    method store (line 72) | public function store(): string
    method companyId (line 77) | public function companyId(): ?string
    method hasCompany (line 82) | public function hasCompany()
    method role (line 87) | public function role(): string
    method isEnabled (line 92) | public function isEnabled(): bool

FILE: src/Seat/Domain/Client/Entity/ClientRepository.php
  type ClientRepository (line 5) | interface ClientRepository
    method addClient (line 7) | public function addClient(Client $client);
    method getClientByEmail (line 9) | public function getClientByEmail(string $email): ?Client;
    method getClientById (line 11) | public function getClientById(string $id): ?Client;
    method updateClient (line 13) | public function updateClient(Client $client): void;

FILE: src/Seat/Domain/Client/Entity/Company.php
  class Company (line 5) | class Company
    method __construct (line 14) | public function __construct(string $id, string $name, bool $hasInvoice...
    method id (line 24) | public function id(): string
    method name (line 29) | public function name(): string
    method maxOrderTimeForDelivery (line 34) | public function maxOrderTimeForDelivery(): ?string
    method canBeDelivered (line 39) | public function canBeDelivered(): bool
    method hasInvoice (line 44) | public function hasInvoice(): bool
    method store (line 49) | public function store(): string
    method isEnabled (line 54) | public function isEnabled(): bool

FILE: src/Seat/Domain/Client/Entity/CompanyRepository.php
  type CompanyRepository (line 5) | interface CompanyRepository
    method getCompanyNamed (line 7) | public function getCompanyNamed(string $companyName): ?Company;
    method addCompany (line 9) | public function addCompany(Company $company): void;
    method getCompanyById (line 11) | public function getCompanyById(?string $companyId): ?Company;

FILE: src/Seat/Domain/Client/Entity/Role.php
  class Role (line 5) | class Role

FILE: src/Seat/Domain/Client/Entity/Store.php
  class Store (line 5) | class Store

FILE: src/Seat/Domain/Client/UseCase/GetClient/GetClient.php
  class GetClient (line 7) | class GetClient
    method __construct (line 11) | public function __construct(ClientRepository $clientRepository)
    method execute (line 16) | public function execute(GetClientRequest $request, GetClientPresenter ...

FILE: src/Seat/Domain/Client/UseCase/GetClient/GetClientPresenter.php
  type GetClientPresenter (line 5) | interface GetClientPresenter
    method present (line 7) | public function present(GetClientResponse $response): void;

FILE: src/Seat/Domain/Client/UseCase/GetClient/GetClientRequest.php
  class GetClientRequest (line 5) | class GetClientRequest
    method __construct (line 9) | public function __construct(string $clientId)

FILE: src/Seat/Domain/Client/UseCase/GetClient/GetClientResponse.php
  class GetClientResponse (line 7) | class GetClientResponse
    method client (line 11) | public function client(): ?Client
    method setClient (line 16) | public function setClient(Client $client)

FILE: src/Seat/Domain/Client/UseCase/Login/Login.php
  class Login (line 10) | class Login
    method __construct (line 16) | public function __construct(ClientRepository $clientRepository, Compan...
    method execute (line 29) | public function execute(LoginRequest $request, LoginPresenter $presenter)
    method checkClient (line 46) | private function checkClient(?Client $client, LoginResponse $response)...
    method checkPassword (line 57) | private function checkPassword(LoginRequest $request, Client $client, ...
    method checkClientEnabled (line 68) | private function checkClientEnabled(Client $client, LoginResponse $res...
    method checkCompanyEnabled (line 79) | private function checkCompanyEnabled(Client $client, LoginResponse $re...

FILE: src/Seat/Domain/Client/UseCase/Login/LoginPresenter.php
  type LoginPresenter (line 5) | interface LoginPresenter
    method present (line 7) | public function present(LoginResponse $response);

FILE: src/Seat/Domain/Client/UseCase/Login/LoginRequest.php
  class LoginRequest (line 5) | class LoginRequest
    method __construct (line 10) | public function __construct(string $email, string $password)

FILE: src/Seat/Domain/Client/UseCase/Login/LoginResponse.php
  class LoginResponse (line 8) | class LoginResponse
    method __construct (line 15) | public function __construct()
    method addError (line 20) | public function addError(string $fieldName, string $error)
    method notification (line 25) | public function notification(): Notification
    method setClient (line 30) | public function setClient(Client $client)
    method client (line 35) | public function client(): ?Client

FILE: src/Seat/Domain/Client/UseCase/Register/Register.php
  class Register (line 16) | class Register
    method __construct (line 23) | public function __construct(
    method execute (line 35) | public function execute(RegisterRequest $request): void
    method register (line 45) | private function register(RegisterRequest $request, RegisterResponse $...
    method validateClient (line 55) | private function validateClient(RegisterRequest $request, RegisterResp...
    method validateCompany (line 70) | private function validateCompany(RegisterRequest $request, RegisterRes...
    method saveClient (line 90) | private function saveClient(RegisterRequest $request, RegisterResponse...
    method validateRequest (line 109) | private function validateRequest(RegisterRequest $request, RegisterRes...

FILE: src/Seat/Domain/Client/UseCase/Register/RegisterPresenter.php
  type RegisterPresenter (line 5) | interface RegisterPresenter
    method present (line 7) | public function present(RegisterResponse $response): void;

FILE: src/Seat/Domain/Client/UseCase/Register/RegisterRequest.php
  class RegisterRequest (line 5) | class RegisterRequest

FILE: src/Seat/Domain/Client/UseCase/Register/RegisterResponse.php
  class RegisterResponse (line 8) | class RegisterResponse
    method __construct (line 13) | public function __construct()
    method addError (line 18) | public function addError(string $fieldName, string $error)
    method notification (line 23) | public function notification(): Notification
    method setRegisteredClient (line 28) | public function setRegisteredClient(Client $client)
    method client (line 35) | public function client(): ?Client

FILE: src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClient.php
  class UpdateClient (line 11) | class UpdateClient
    method __construct (line 16) | public function __construct(ClientRepository $clientRepository, Passwo...
    method execute (line 22) | public function execute(UpdateClientRequest $request, UpdateClientPres...
    method validateRequest (line 51) | private function validateRequest(UpdateClientRequest $request, UpdateC...
    method validateClient (line 74) | private function validateClient(UpdateClientRequest $request, UpdateCl...

FILE: src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientPresenter.php
  type UpdateClientPresenter (line 5) | interface UpdateClientPresenter
    method present (line 7) | public function present(UpdateClientResponse $response);

FILE: src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientRequest.php
  class UpdateClientRequest (line 7) | class UpdateClientRequest extends EditableClient
    method fromEditable (line 9) | public static function fromEditable(EditableClient $nullableRequest)
    method byClientId (line 22) | public function byClientId(string $clientId)

FILE: src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientResponse.php
  class UpdateClientResponse (line 8) | class UpdateClientResponse
    method __construct (line 18) | public function __construct()
    method addError (line 23) | public function addError(string $fieldName, string $error)
    method notification (line 28) | public function notification(): Notification
    method setUpdatedClient (line 33) | public function setUpdatedClient(Client $client)
    method hasPasswordChanged (line 41) | public function hasPasswordChanged(): bool
    method updatedClient (line 46) | public function updatedClient(): ?Client
    method setOriginalClient (line 51) | public function setOriginalClient(?Client $originalClient)
    method originalClient (line 56) | public function originalClient(): ?Client
    method request (line 61) | public function request(): ?UpdateClientRequest
    method setRequest (line 66) | public function setRequest(UpdateClientRequest $request)

FILE: src/Seat/Domain/Cms/Entity/HtmlContent.php
  class HtmlContent (line 5) | class HtmlContent
    method __construct (line 10) | public function __construct(string $name, string $html)
    method name (line 16) | public function name()
    method html (line 21) | public function html()

FILE: src/Seat/Domain/Cms/Entity/HtmlContentRepository.php
  type HtmlContentRepository (line 5) | interface HtmlContentRepository
    method getNamed (line 7) | public function getNamed(string $name): HtmlContent;

FILE: src/Seat/Domain/Menu/Entity/Category.php
  class Category (line 5) | class Category
    method __construct (line 11) | public function __construct(string $id, string $name, ?string $descrip...
    method id (line 18) | public function id(): string
    method name (line 23) | public function name(): string
    method description (line 28) | public function description(): ?string

FILE: src/Seat/Domain/Menu/Entity/CategoryRepository.php
  type CategoryRepository (line 6) | interface CategoryRepository
    method getCategories (line 11) | public function getCategories(): array;
    method addCategory (line 13) | public function addCategory(Category $category);

FILE: src/Seat/Domain/Menu/Entity/Product.php
  class Product (line 5) | class Product
    method __construct (line 13) | public function __construct(string $id, string $categoryId, string $na...
    method id (line 22) | public function id(): string
    method name (line 27) | public function name(): string
    method description (line 32) | public function description(): string
    method price (line 37) | public function price(): float
    method categoryId (line 42) | public function categoryId(): string

FILE: src/Seat/Domain/Menu/Entity/ProductOption.php
  class ProductOption (line 5) | class ProductOption
    method __construct (line 12) | public function __construct(string $id, string $categoryId, string $na...
    method id (line 20) | public function id(): string
    method name (line 25) | public function name(): string
    method price (line 30) | public function price(): float
    method categoryId (line 35) | public function categoryId(): string

FILE: src/Seat/Domain/Menu/Entity/ProductOptionRepository.php
  type ProductOptionRepository (line 5) | interface ProductOptionRepository
    method get (line 10) | public function get(string $productOptionId): ?ProductOption;
    method getByCategoryId (line 15) | public function getByCategoryId(string $categoryId): array;
    method add (line 17) | public function add(ProductOption $productOption): void;

FILE: src/Seat/Domain/Menu/Entity/ProductRepository.php
  type ProductRepository (line 6) | interface ProductRepository
    method add (line 8) | public function add(Product $product): void;
    method get (line 10) | public function get(string $id): ?Product;
    method getByCategoryId (line 15) | public function getByCategoryId(string $categoryId): array;

FILE: src/Seat/Domain/Menu/Entity/ProductSupplement.php
  class ProductSupplement (line 5) | class ProductSupplement
    method __construct (line 12) | public function __construct(string $id, string $categoryId, string $na...
    method id (line 20) | public function id(): string
    method name (line 25) | public function name(): string
    method price (line 30) | public function price(): float
    method categoryId (line 35) | public function categoryId(): string

FILE: src/Seat/Domain/Menu/Entity/ProductSupplementRepository.php
  type ProductSupplementRepository (line 5) | interface ProductSupplementRepository
    method get (line 7) | public function get(string $supplementId): ?ProductSupplement;
    method add (line 9) | public function add(ProductSupplement $supplement): void;
    method getByCategoryId (line 14) | public function getByCategoryId(string $categoryId): array;

FILE: src/Seat/Domain/Menu/Model/MenuLine.php
  class MenuLine (line 5) | class MenuLine
    method __construct (line 20) | public function __construct(string $name, ?string $description, array ...
    method name (line 29) | public function name(): string
    method description (line 34) | public function description(): ?string
    method options (line 42) | public function options(): array
    method supplements (line 50) | public function supplements(): array
    method products (line 55) | public function products()

FILE: src/Seat/Domain/Menu/Model/MenuOption.php
  class MenuOption (line 5) | class MenuOption
    method __construct (line 11) | public function __construct(string $id, string $name, float $price)
    method id (line 19) | public function id(): string
    method name (line 24) | public function name(): string
    method price (line 29) | public function price(): float

FILE: src/Seat/Domain/Menu/Model/MenuProduct.php
  class MenuProduct (line 5) | class MenuProduct
    method __construct (line 12) | public function __construct(string $id, string $name, ?string $descrip...
    method id (line 21) | public function id(): string
    method name (line 26) | public function name(): string
    method price (line 31) | public function price(): float
    method description (line 36) | public function description(): ?string

FILE: src/Seat/Domain/Menu/Model/MenuSupplement.php
  class MenuSupplement (line 5) | class MenuSupplement
    method __construct (line 11) | public function __construct(string $id, string $name, float $price)
    method id (line 19) | public function id(): string
    method name (line 24) | public function name(): string
    method price (line 29) | public function price(): float

FILE: src/Seat/Domain/Menu/UseCase/GetMenu/GetMenu.php
  class GetMenu (line 18) | class GetMenu
    method __construct (line 25) | public function __construct(
    method execute (line 37) | public function execute(GetMenuPresenter $presenter)
    method getOptionsOf (line 53) | private function getOptionsOf(Category $category): array
    method getProductsOf (line 63) | private function getProductsOf(Category $category): array
    method getSupplementsOf (line 73) | private function getSupplementsOf(Category $category): array

FILE: src/Seat/Domain/Menu/UseCase/GetMenu/GetMenuPresenter.php
  type GetMenuPresenter (line 5) | interface GetMenuPresenter
    method present (line 7) | public function present(GetMenuResponse $response): void;

FILE: src/Seat/Domain/Menu/UseCase/GetMenu/GetMenuResponse.php
  class GetMenuResponse (line 7) | class GetMenuResponse
    method __construct (line 12) | public function __construct(array $menuLines)

FILE: src/Seat/Domain/Order/Entity/Command.php
  class Command (line 9) | class Command
    method __construct (line 17) | public function __construct(string $id, string $userId, OrderType $ord...
    method id (line 26) | public function id(): string
    method userId (line 31) | public function userId(): string
    method basket (line 36) | public function basket(): Basket
    method date (line 41) | public function date(): DateTimeImmutable
    method orderType (line 46) | public function orderType(): OrderType

FILE: src/Seat/Domain/Order/Entity/CommandRepository.php
  type CommandRepository (line 5) | interface CommandRepository
    method getTodayList (line 10) | public function getTodayList(): array;
    method add (line 12) | public function add(Command $command): void;

FILE: src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasket.php
  class ConfirmBasket (line 17) | class ConfirmBasket
    method __construct (line 24) | public function __construct(
    method execute (line 36) | public function execute(ConfirmBasketRequest $request, ConfirmBasketPr...
    method doExecute (line 43) | private function doExecute(ConfirmBasketRequest $request, ConfirmBaske...
    method saveBasketToCommand (line 60) | private function saveBasketToCommand(OrderType $orderType, Basket $bas...
    method checkClient (line 74) | private function checkClient(ConfirmBasketRequest $request, ConfirmBas...
    method checkBasket (line 93) | private function checkBasket(ConfirmBasketRequest $request, ConfirmBas...
    method checkOrderType (line 112) | private function checkOrderType(ConfirmBasketRequest $request, Confirm...

FILE: src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketPresenter.php
  type ConfirmBasketPresenter (line 5) | interface ConfirmBasketPresenter
    method present (line 7) | public function present(ConfirmBasketResponse $response): void;

FILE: src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketRequest.php
  class ConfirmBasketRequest (line 5) | class ConfirmBasketRequest
    method withUserId (line 12) | public function withUserId($userId)
    method withCheckSum (line 19) | public function withCheckSum($checkSum)

FILE: src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketResponse.php
  class ConfirmBasketResponse (line 7) | class ConfirmBasketResponse
    method __construct (line 11) | public function __construct()
    method addError (line 16) | public function addError(string $fieldName, string $error)
    method notification (line 21) | public function notification(): Notification

FILE: src/Seat/Infrastructure/Symfony4/Controller/AddToBasketController.php
  class AddToBasketController (line 20) | class AddToBasketController
    method __invoke (line 22) | public function __invoke(

FILE: src/Seat/Infrastructure/Symfony4/Controller/AdminController.php
  class AdminController (line 14) | class AdminController extends EasyAdminController
    method listCommandLaHulpeAction (line 16) | protected function listCommandLaHulpeAction()
    method listCommandWaterlooAction (line 23) | protected function listCommandWaterlooAction()
    method listen (line 30) | private function listen()
    method renderCommandWaterlooTemplate (line 47) | public function renderCommandWaterlooTemplate($type, $twigPath, $param...
    method renderCommandLaHulpeTemplate (line 52) | public function renderCommandLaHulpeTemplate($type, $twigPath, $parame...
    method renderCommandOfTodayTemplate (line 57) | protected function renderCommandOfTodayTemplate($type, $twigPath, $par...

FILE: src/Seat/Infrastructure/Symfony4/Controller/BusinessLunchController.php
  class BusinessLunchController (line 12) | class BusinessLunchController
    method __invoke (line 14) | public function __invoke(Environment $twig)

FILE: src/Seat/Infrastructure/Symfony4/Controller/ContactController.php
  class ContactController (line 12) | class ContactController
    method __invoke (line 14) | public function __invoke(Environment $twig)

FILE: src/Seat/Infrastructure/Symfony4/Controller/HomeController.php
  class HomeController (line 12) | class HomeController
    method __invoke (line 16) | public function __invoke(Environment $twig)

FILE: src/Seat/Infrastructure/Symfony4/Controller/LoginCheckController.php
  class LoginCheckController (line 10) | class LoginCheckController
    method __invoke (line 12) | public function __invoke()

FILE: src/Seat/Infrastructure/Symfony4/Controller/LoginController.php
  class LoginController (line 13) | class LoginController
    method __invoke (line 15) | public function __invoke(Environment $twig, AuthenticationUtils $authe...

FILE: src/Seat/Infrastructure/Symfony4/Controller/LogoutController.php
  class LogoutController (line 10) | class LogoutController
    method __invoke (line 13) | public function __invoke()

FILE: src/Seat/Infrastructure/Symfony4/Controller/MenuSalleController.php
  class MenuSalleController (line 12) | class MenuSalleController
    method __invoke (line 14) | public function __invoke(Environment $twig)

FILE: src/Seat/Infrastructure/Symfony4/Controller/RegisterCompleteController.php
  class RegisterCompleteController (line 12) | class RegisterCompleteController
    method __invoke (line 15) | public function __invoke(Environment $twig)

FILE: src/Seat/Infrastructure/Symfony4/Controller/RegisterController.php
  class RegisterController (line 17) | class RegisterController
    method __invoke (line 19) | public function __invoke(Request $request, Register $registerUseCase, ...

FILE: src/Seat/Infrastructure/Symfony4/Controller/RemoveFromBasketController.php
  class RemoveFromBasketController (line 19) | class RemoveFromBasketController
    method __invoke (line 21) | public function __invoke(

FILE: src/Seat/Infrastructure/Symfony4/Controller/ShowBasketController.php
  class ShowBasketController (line 24) | class ShowBasketController
    method __invoke (line 26) | public function __invoke(

FILE: src/Seat/Infrastructure/Symfony4/Controller/ShowOrderMenuController.php
  class ShowOrderMenuController (line 15) | class ShowOrderMenuController
    method __invoke (line 17) | public function __invoke(GetMenu $getMenu, GetMenuHtmlPresenter $prese...

FILE: src/Seat/Infrastructure/Symfony4/Controller/UpdateClientController.php
  class UpdateClientController (line 24) | class UpdateClientController
    method __invoke (line 27) | public function __invoke(

FILE: src/Seat/Infrastructure/Symfony4/DependencyInjection/Compiler/AdminFilterRolePass.php
  class AdminFilterRolePass (line 9) | class AdminFilterRolePass implements ConfigPassInterface
    method __construct (line 14) | public function __construct(AuthorizationCheckerInterface $authorizati...
    method process (line 20) | public function process(array $backendConfig)

FILE: src/Seat/Infrastructure/Symfony4/DependencyInjection/Compiler/AutowireSeatPass.php
  class AutowireSeatPass (line 9) | class AutowireSeatPass implements CompilerPassInterface
    method __construct (line 11) | public function __construct()
    method process (line 18) | public function process(ContainerBuilder $container)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/Basket.php
  class Basket (line 11) | class Basket
    method id (line 31) | public function id()
    method setId (line 36) | public function setId($id)
    method userId (line 41) | public function userId(): string
    method setUserId (line 46) | public function setUserId($userId)
    method content (line 51) | public function content(): array
    method setContent (line 56) | public function setContent(array $content)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/BasketProductJson.php
  class BasketProductJson (line 9) | class BasketProductJson
    method fromBasketProduct (line 13) | public static function fromBasketProduct(BasketProduct $basketProduct)
    method __construct (line 43) | public function __construct(array $json)
    method json (line 48) | public function json()
    method basketProduct (line 53) | public function basketProduct(string $basketId)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/Category.php
  class Category (line 13) | class Category
    method __construct (line 47) | public function __construct()
    method getId (line 56) | public function getId()
    method setId (line 64) | public function setId($id)
    method getName (line 72) | public function getName()
    method setName (line 82) | public function setName($name)
    method getDescription (line 92) | public function getDescription()
    method setDescription (line 100) | public function setDescription($description)
    method getOrder (line 108) | public function getOrder()
    method setOrder (line 116) | public function setOrder($order)
    method __toString (line 121) | public function __toString()

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/CategoryOption.php
  class CategoryOption (line 11) | class CategoryOption
    method getId (line 53) | public function getId()
    method setId (line 61) | public function setId($id)
    method getCategory (line 69) | public function getCategory()
    method setCategory (line 77) | public function setCategory($category)
    method getName (line 85) | public function getName()
    method setName (line 93) | public function setName($name)
    method getPrice (line 101) | public function getPrice()
    method setPrice (line 109) | public function setPrice($price)
    method __toString (line 118) | public function __toString()
    method getOrder (line 126) | public function getOrder()
    method setOrder (line 134) | public function setOrder($order)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/CategorySupplement.php
  class CategorySupplement (line 11) | class CategorySupplement
    method getId (line 52) | public function getId()
    method setId (line 60) | public function setId($id)
    method getCategory (line 68) | public function getCategory()
    method setCategory (line 76) | public function setCategory($category)
    method getName (line 84) | public function getName()
    method setName (line 92) | public function setName($name)
    method getPrice (line 100) | public function getPrice()
    method setPrice (line 108) | public function setPrice($price)
    method __toString (line 116) | public function __toString()
    method getOrder (line 124) | public function getOrder()
    method setOrder (line 132) | public function setOrder($order)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/Command.php
  class Command (line 12) | class Command
    method id (line 45) | public function id()
    method setId (line 50) | public function setId($id)
    method userId (line 55) | public function userId(): string
    method setUserId (line 60) | public function setUserId($userId)
    method content (line 65) | public function content(): array
    method setContent (line 70) | public function setContent($content)
    method date (line 75) | public function date()
    method setDate (line 80) | public function setDate(\DateTimeImmutable $date)
    method setOrderType (line 85) | public function setOrderType(OrderType $orderType)
    method getOrderTypeString (line 90) | public function getOrderTypeString()
    method getName (line 100) | public function getName()
    method getOption (line 105) | public function getOption()
    method getSupplements (line 114) | public function getSupplements()
    method getComment (line 127) | public function getComment()
    method getQuantity (line 132) | public function getQuantity()

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/Company.php
  class Company (line 12) | class Company
    method getId (line 132) | public function getId()
    method setId (line 140) | public function setId($id)
    method getName (line 148) | public function getName()
    method setName (line 156) | public function setName($name)
    method getVat (line 164) | public function getVat()
    method setVat (line 172) | public function setVat($vat)
    method getSlug (line 177) | public function getSlug()
    method setSlug (line 182) | public function setSlug($slug)
    method getStreet (line 191) | public function getStreet()
    method setStreet (line 199) | public function setStreet($street)
    method getStreetNumber (line 207) | public function getStreetNumber()
    method setStreetNumber (line 215) | public function setStreetNumber($streetNumber)
    method getZipCode (line 223) | public function getZipCode()
    method setZipCode (line 231) | public function setZipCode($zipCode)
    method getCity (line 239) | public function getCity()
    method setCity (line 247) | public function setCity($city)
    method getPhoneNumber (line 255) | public function getPhoneNumber()
    method setPhoneNumber (line 263) | public function setPhoneNumber($phoneNumber)
    method getOrderDeliveryDeadLine (line 271) | public function getOrderDeliveryDeadLine()
    method setOrderDeliveryDeadLine (line 279) | public function setOrderDeliveryDeadLine($orderDeliveryDeadLine)
    method canBeDelivered (line 288) | public function canBeDelivered()
    method setCanBeDelivered (line 296) | public function setCanBeDelivered($canBeDelivered)
    method getTournee (line 304) | public function getTournee()
    method setTournee (line 312) | public function setTournee($tournee)
    method __toString (line 318) | public function __toString()
    method isEnabled (line 326) | public function isEnabled()
    method setIsEnabled (line 334) | public function setIsEnabled($isEnabled)
    method getComment (line 342) | public function getComment()
    method setComment (line 350) | public function setComment($comment)
    method getContactEmail (line 358) | public function getContactEmail()
    method setContactEmail (line 366) | public function setContactEmail($contactEmail)
    method setAdminCommandBefore (line 371) | public function setAdminCommandBefore(?\DateTimeInterface $date)
    method getAdminCommandBefore (line 380) | public function getAdminCommandBefore()
    method store (line 392) | public function store(): string
    method setStore (line 397) | public function setStore($store)
    method hasInvoice (line 402) | public function hasInvoice(): bool
    method setHasInvoice (line 407) | public function setHasInvoice($hasInvoice)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineBasketRepository.php
  class DoctrineBasketRepository (line 12) | class DoctrineBasketRepository extends ServiceEntityRepository implement...
    method __construct (line 14) | public function __construct(ManagerRegistry $registry)
    method addToBasket (line 19) | public function addToBasket(string $userId, BasketProduct $basketProduct)
    method getUserBasket (line 29) | public function getUserBasket(string $userId): Basket
    method emptyBasketFor (line 43) | public function emptyBasketFor(string $userId): void
    method delete (line 53) | public function delete(string $basketId, string $userId): void

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineCategoryRepository.php
  class DoctrineCategoryRepository (line 12) | class DoctrineCategoryRepository extends ServiceEntityRepository impleme...
    method __construct (line 15) | public function __construct(ManagerRegistry $registry)
    method getCategories (line 23) | public function getCategories(): array
    method addCategory (line 35) | public function addCategory(Category $category)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineClientRepository.php
  class DoctrineClientRepository (line 12) | class DoctrineClientRepository extends ServiceEntityRepository implement...
    method __construct (line 14) | public function __construct(ManagerRegistry $registry)
    method addClient (line 19) | public function addClient(Client $client)
    method getClientByEmail (line 42) | public function getClientByEmail(string $email): ?Client
    method getClientById (line 68) | public function getClientById(string $id): ?Client
    method updateClient (line 94) | public function updateClient(Client $client): void

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineCommandRepository.php
  class DoctrineCommandRepository (line 14) | class DoctrineCommandRepository extends ServiceEntityRepository implemen...
    method __construct (line 16) | public function __construct(ManagerRegistry $registry)
    method getTodayList (line 24) | public function getTodayList(): array
    method add (line 29) | public function add(Command $command): void

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineCompanyRepository.php
  class DoctrineCompanyRepository (line 11) | class DoctrineCompanyRepository extends ServiceEntityRepository implemen...
    method __construct (line 13) | public function __construct(ManagerRegistry $registry)
    method getCompanyNamed (line 18) | public function getCompanyNamed(string $companyName): ?Company
    method addCompany (line 36) | public function addCompany(Company $company): void
    method getCompanyById (line 46) | public function getCompanyById(?string $companyId): ?Company

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineHtmlContentRepository.php
  class DoctrineHtmlContentRepository (line 12) | class DoctrineHtmlContentRepository extends ServiceEntityRepository impl...
    method __construct (line 14) | public function __construct(ManagerRegistry $registry)
    method getNamed (line 19) | public function getNamed(string $name): HtmlContent

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineProductOptionRepository.php
  class DoctrineProductOptionRepository (line 11) | class DoctrineProductOptionRepository extends ServiceEntityRepository im...
    method __construct (line 13) | public function __construct(ManagerRegistry $registry)
    method get (line 21) | public function get(string $productOptionId): ?ProductOption
    method add (line 37) | public function add(ProductOption $productOption): void
    method getByCategoryId (line 45) | public function getByCategoryId(string $categoryId): array

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineProductRepository.php
  class DoctrineProductRepository (line 12) | class DoctrineProductRepository extends ServiceEntityRepository implemen...
    method __construct (line 15) | public function __construct(ManagerRegistry $registry)
    method add (line 20) | public function add(Product $product): void
    method get (line 25) | public function get(string $id): ?Product
    method getByCategoryId (line 45) | public function getByCategoryId(string $categoryId): array

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineProductSupplementRepository.php
  class DoctrineProductSupplementRepository (line 11) | class DoctrineProductSupplementRepository extends ServiceEntityRepositor...
    method __construct (line 13) | public function __construct(ManagerRegistry $registry)
    method get (line 18) | public function get(string $supplementId): ?ProductSupplement
    method add (line 34) | public function add(ProductSupplement $supplement): void
    method getByCategoryId (line 42) | public function getByCategoryId(string $categoryId): array

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/HtmlContent.php
  class HtmlContent (line 13) | class HtmlContent
    method getName (line 33) | public function getName()
    method setName (line 41) | public function setName($name)
    method getHtml (line 49) | public function getHtml()
    method setHtml (line 57) | public function setHtml($html)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/Pdf.php
  class Pdf (line 13) | class Pdf
    method id (line 37) | public function id()
    method setId (line 42) | public function setId($id)
    method text (line 47) | public function text()
    method setText (line 52) | public function setText($text)
    method pdf (line 57) | public function pdf(): ?string
    method setPdf (line 62) | public function setPdf($pdf)
    method pdfFile (line 67) | public function pdfFile(): ?File
    method setPdfFile (line 72) | public function setPdfFile($pdfFile)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/Product.php
  class Product (line 14) | class Product
    method __toString (line 67) | public function __toString()
    method getId (line 75) | public function getId()
    method setId (line 85) | public function setId($id)
    method getCategory (line 95) | public function getCategory()
    method setCategory (line 105) | public function setCategory($category)
    method getName (line 115) | public function getName()
    method setName (line 125) | public function setName($name)
    method getDescription (line 135) | public function getDescription()
    method setDescription (line 145) | public function setDescription($description)
    method getPrice (line 155) | public function getPrice()
    method setPrice (line 165) | public function setPrice($price)
    method getOrder (line 175) | public function getOrder()
    method setOrder (line 185) | public function setOrder($order)
    method isEnabled (line 195) | public function isEnabled()
    method setIsEnabled (line 205) | public function setIsEnabled($isEnabled)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/Tournee.php
  class Tournee (line 14) | class Tournee
    method __toString (line 33) | public function __toString()
    method getId (line 41) | public function getId()
    method setId (line 49) | public function setId($id)
    method getName (line 57) | public function getName()
    method setName (line 65) | public function setName($name)

FILE: src/Seat/Infrastructure/Symfony4/Doctrine/User.php
  class User (line 12) | class User
    method id (line 80) | public function id()
    method setId (line 85) | public function setId($id)
    method getCompany (line 90) | public function getCompany()
    method setCompany (line 95) | public function setCompany($company)
    method firstName (line 100) | public function firstName(): ?string
    method setFirstName (line 105) | public function setFirstName($firstName)
    method lastName (line 110) | public function lastName(): ?string
    method setLastName (line 115) | public function setLastName($lastName)
    method phoneNumber (line 120) | public function phoneNumber(): ?string
    method setPhoneNumber (line 125) | public function setPhoneNumber($phoneNumber)
    method password (line 130) | public function password(): string
    method setPassword (line 135) | public function setPassword($password)
    method email (line 140) | public function email(): ?string
    method setEmail (line 145) | public function setEmail($email)
    method store (line 150) | public function store(): string
    method setStore (line 155) | public function setStore($store)
    method role (line 160) | public function role(): string
    method setRole (line 165) | public function setRole($role)
    method isEnabled (line 170) | public function isEnabled()
    method setIsEnabled (line 175) | public function setIsEnabled($isEnabled)

FILE: src/Seat/Infrastructure/Symfony4/Form/BasketConfirmationType.php
  class BasketConfirmationType (line 16) | class BasketConfirmationType extends AbstractType
    method __construct (line 24) | public function __construct(OrderTypeChecker $orderTypeChecker, TokenS...
    method buildForm (line 30) | public function buildForm(FormBuilderInterface $builder, array $options)
    method buildForOrderType (line 42) | private function buildForOrderType(FormBuilderInterface $builder, Poss...
    method configureOptions (line 58) | public function configureOptions(OptionsResolver $resolver)

FILE: src/Seat/Infrastructure/Symfony4/Form/BasketType.php
  class BasketType (line 13) | class BasketType extends AbstractType
    method buildForm (line 15) | public function buildForm(FormBuilderInterface $builder, array $options)
    method configureOptions (line 34) | public function configureOptions(OptionsResolver $resolver)

FILE: src/Seat/Infrastructure/Symfony4/Form/FormHelper.php
  class FormHelper (line 8) | class FormHelper
    method __construct (line 12) | public function __construct(FormFactoryInterface $formFactory)
    method getFormData (line 17) | public function getFormData(Request $request, string $typeClass, $opti...

FILE: src/Seat/Infrastructure/Symfony4/Form/RegisterType.php
  class RegisterType (line 14) | class RegisterType extends AbstractType
    method buildForm (line 16) | public function buildForm(FormBuilderInterface $builder, array $options)
    method configureOptions (line 39) | public function configureOptions(OptionsResolver $resolver)

FILE: src/Seat/Infrastructure/Symfony4/Form/UpdateClientType.php
  class UpdateClientType (line 11) | class UpdateClientType extends AbstractType
    method buildForm (line 13) | public function buildForm(FormBuilderInterface $builder, array $options)
    method configureOptions (line 23) | public function configureOptions(OptionsResolver $resolver)

FILE: src/Seat/Infrastructure/Symfony4/Kernel.php
  class Kernel (line 22) | class Kernel extends BaseKernel
    method getCacheDir (line 27) | public function getCacheDir()
    method getLogDir (line 32) | public function getLogDir()
    method registerBundles (line 37) | public function registerBundles()
    method build (line 47) | protected function build(ContainerBuilder $container)
    method configureContainer (line 53) | protected function configureContainer(ContainerBuilder $container, Loa...
    method configureRoutes (line 64) | protected function configureRoutes(RouteCollectionBuilder $routes)

FILE: src/Seat/Infrastructure/Symfony4/ParamConverter/FormToNullableRequestConverter.php
  class FormToNullableRequestConverter (line 10) | class FormToNullableRequestConverter implements ParamConverterInterface
    method __construct (line 14) | public function __construct(FormHelper $formHelper)
    method apply (line 26) | public function apply(Request $request, ParamConverter $configuration)
    method supports (line 40) | public function supports(ParamConverter $configuration)

FILE: src/Seat/Infrastructure/Symfony4/ParamConverter/FormToRequestConverter.php
  class FormToRequestConverter (line 10) | class FormToRequestConverter implements ParamConverterInterface
    method __construct (line 14) | public function __construct(FormHelper $formHelper)
    method apply (line 26) | public function apply(Request $request, ParamConverter $configuration)
    method supports (line 43) | public function supports(ParamConverter $configuration)

FILE: src/Seat/Infrastructure/Symfony4/Security/Service/ClientUserProvider.php
  class ClientUserProvider (line 12) | class ClientUserProvider implements UserProviderInterface
    method __construct (line 16) | public function __construct(ClientRepository $clientRepository)
    method loadUserByUsername (line 33) | public function loadUserByUsername($username)
    method refreshUser (line 43) | public function refreshUser(UserInterface $user)
    method supportsClass (line 60) | public function supportsClass($class)

FILE: src/Seat/Infrastructure/Symfony4/Security/Service/FormAuthenticator.php
  class FormAuthenticator (line 23) | class FormAuthenticator extends AbstractGuardAuthenticator implements Lo...
    method __construct (line 34) | public function __construct(RouterInterface $router, UserPasswordEncod...
    method getCredentials (line 44) | public function getCredentials(Request $request)
    method getUser (line 55) | public function getUser($credentials, UserProviderInterface $userProvi...
    method checkCredentials (line 70) | public function checkCredentials($credentials, UserInterface $user)
    method onAuthenticationSuccess (line 79) | public function onAuthenticationSuccess(Request $request, TokenInterfa...
    method onAuthenticationFailure (line 87) | public function onAuthenticationFailure(Request $request, Authenticati...
    method start (line 99) | public function start(Request $request, AuthenticationException $authE...
    method supportsRememberMe (line 107) | public function supportsRememberMe()
    method getEmail (line 112) | private function getEmail(Request $request): string
    method supports (line 126) | public function supports(Request $request)
    method present (line 131) | public function present(LoginResponse $response)

FILE: src/Seat/Infrastructure/Symfony4/Security/User.php
  class User (line 9) | class User implements UserInterface
    method __construct (line 14) | public function __construct(Client $client)
    method getRoles (line 34) | public function getRoles()
    method getPassword (line 56) | public function getPassword()
    method getSalt (line 68) | public function getSalt()
    method getUsername (line 78) | public function getUsername()
    method eraseCredentials (line 89) | public function eraseCredentials()
    method getId (line 93) | public function getId()
    method fullName (line 98) | public function fullName()

FILE: src/Seat/Infrastructure/Symfony4/Twig/ContentExtension.php
  class ContentExtension (line 10) | class ContentExtension extends AbstractExtension
    method __construct (line 21) | public function __construct(EntityManagerInterface $entityManager, Log...
    method getFilters (line 30) | public function getFilters()
    method getContent (line 42) | public function getContent($slug)
    method getName (line 67) | public function getName()

FILE: src/Seat/Infrastructure/Symfony4/Twig/DownloadExtension.php
  class DownloadExtension (line 11) | class DownloadExtension extends AbstractExtension
    method __construct (line 20) | public function __construct(EntityManagerInterface $entityManager, Env...
    method getFilters (line 30) | public function getFilters()
    method getDownload (line 37) | public function getDownload($slug)
    method getName (line 60) | public function getName()

FILE: src/Seat/Infrastructure/Symfony4/View/AddProductToBasketView.php
  class AddProductToBasketView (line 10) | class AddProductToBasketView
    method __construct (line 15) | public function __construct(RouterInterface $router, Session $session)
    method generateView (line 21) | public function generateView(AddProductToBasketHtmlViewModel $viewModel)

FILE: src/Seat/Infrastructure/Symfony4/View/ConfirmBasketView.php
  class ConfirmBasketView (line 12) | class ConfirmBasketView
    method __construct (line 18) | public function __construct(Environment $twig, Session $session, Route...
    method generateView (line 26) | public function generateView(ConfirmBasketHtmlViewModel $viewModel)

FILE: src/Seat/Infrastructure/Symfony4/View/GetMenuView.php
  class GetMenuView (line 14) | class GetMenuView
    method __construct (line 21) | public function __construct(
    method generateView (line 34) | public function generateView(GetMenuHtmlViewModel $viewModel, string $...

FILE: src/Seat/Infrastructure/Symfony4/View/RegisterView.php
  class RegisterView (line 14) | class RegisterView
    method __construct (line 20) | public function __construct(Environment $twig, FormFactoryInterface $f...
    method generateView (line 30) | public function generateView(RegisterRequest $registerRequest, Registe...

FILE: src/Seat/Infrastructure/Symfony4/View/RemoveFromBasketView.php
  class RemoveFromBasketView (line 9) | class RemoveFromBasketView
    method __construct (line 13) | public function __construct(RouterInterface $router)
    method generateView (line 18) | public function generateView(?string $redirect, RemoveFromBasketHtmlVi...

FILE: src/Seat/Infrastructure/Symfony4/View/ShowBasketView.php
  class ShowBasketView (line 15) | class ShowBasketView
    method __construct (line 23) | public function __construct(Environment $twig, FormFactoryInterface $f...
    method generateView (line 32) | public function generateView(ShowBasketHtmlViewModel $viewModel)

FILE: src/Seat/Infrastructure/Symfony4/View/UpdateClientView.php
  class UpdateClientView (line 18) | class UpdateClientView
    method __construct (line 25) | public function __construct(Environment $twig, FormFactoryInterface $f...
    method generateViewAfterPost (line 33) | public function generateViewAfterPost(UpdateClientRequest $request, Up...
    method generateViewBeforePost (line 48) | public function generateViewBeforePost(GetClientHtmlViewModel $viewModel)
    method generateForm (line 53) | private function generateForm(EditableClient $editableClient): FormInt...
    method generateView (line 59) | private function generateView(EditableClient $editableClient, $errors ...

FILE: src/Seat/Presentation/Basket/AddProductToBasketHtmlPresenter.php
  class AddProductToBasketHtmlPresenter (line 8) | class AddProductToBasketHtmlPresenter implements AddProductToBasketPrese...
    method present (line 12) | public function present(AddProductToBasketResponse $response): void
    method viewModel (line 20) | public function viewModel(): AddProductToBasketHtmlViewModel

FILE: src/Seat/Presentation/Basket/AddProductToBasketHtmlViewModel.php
  class AddProductToBasketHtmlViewModel (line 5) | class AddProductToBasketHtmlViewModel
    method addNotification (line 9) | public function addNotification(string $type, string $message)

FILE: src/Seat/Presentation/Basket/Model/BasketViewModel.php
  class BasketViewModel (line 9) | class BasketViewModel
    method __construct (line 15) | public function __construct($totalPrice, $checkSum, $products)
    method fromBasket (line 22) | public static function fromBasket(Basket $basket)
    method count (line 50) | public function count()
    method totalPrice (line 55) | public function totalPrice()

FILE: src/Seat/Presentation/Basket/RemoveFromBasketHtmlPresenter.php
  class RemoveFromBasketHtmlPresenter (line 8) | class RemoveFromBasketHtmlPresenter implements RemoveFromBasketPresenter
    method present (line 12) | public function present(RemoveFromBasketResponse $response): void
    method viewModel (line 17) | public function viewModel(): RemoveFromBasketHtmlViewModel

FILE: src/Seat/Presentation/Basket/RemoveFromBasketHtmlViewModel.php
  class RemoveFromBasketHtmlViewModel (line 5) | class RemoveFromBasketHtmlViewModel

FILE: src/Seat/Presentation/Basket/ShowBasketHtmlPresenter.php
  class ShowBasketHtmlPresenter (line 9) | class ShowBasketHtmlPresenter implements ShowBasketPresenter
    method present (line 14) | public function present(ShowBasketResponse $response): void
    method viewModel (line 24) | public function viewModel(): ShowBasketHtmlViewModel

FILE: src/Seat/Presentation/Basket/ShowBasketHtmlViewModel.php
  class ShowBasketHtmlViewModel (line 7) | class ShowBasketHtmlViewModel

FILE: src/Seat/Presentation/Client/EditableClient.php
  class EditableClient (line 5) | class EditableClient

FILE: src/Seat/Presentation/Client/GetClientHtmlPresenter.php
  class GetClientHtmlPresenter (line 8) | class GetClientHtmlPresenter implements GetClientPresenter
    method present (line 12) | public function present(GetClientResponse $response): void
    method viewModel (line 23) | public function viewModel()

FILE: src/Seat/Presentation/Client/GetClientHtmlViewModel.php
  class GetClientHtmlViewModel (line 5) | class GetClientHtmlViewModel
    method editableClient (line 9) | public function editableClient(): EditableClient
    method makeEditableClient (line 14) | public function makeEditableClient(string $firstName, string $lastName...

FILE: src/Seat/Presentation/Client/RegisterHtmlPresenter.php
  class RegisterHtmlPresenter (line 8) | class RegisterHtmlPresenter implements RegisterPresenter
    method __construct (line 12) | public function __construct()
    method present (line 16) | public function present(RegisterResponse $response): void
    method viewModel (line 26) | public function viewModel()

FILE: src/Seat/Presentation/Client/RegisterHtmlViewModel.php
  class RegisterHtmlViewModel (line 5) | class RegisterHtmlViewModel

FILE: src/Seat/Presentation/Client/UpdateClientHtmlPresenter.php
  class UpdateClientHtmlPresenter (line 8) | class UpdateClientHtmlPresenter implements UpdateClientPresenter
    method __construct (line 12) | public function __construct()
    method present (line 17) | public function present(UpdateClientResponse $response)
    method viewModel (line 36) | public function viewModel()

FILE: src/Seat/Presentation/Client/UpdateClientHtmlViewModel.php
  class UpdateClientHtmlViewModel (line 5) | class UpdateClientHtmlViewModel
    method displayNotification (line 14) | public function displayNotification(string $type, string $message)

FILE: src/Seat/Presentation/Menu/GetMenuHtmlPresenter.php
  class GetMenuHtmlPresenter (line 9) | class GetMenuHtmlPresenter implements GetMenuPresenter
    method present (line 13) | public function present(GetMenuResponse $response): void
    method viewModel (line 19) | public function viewModel(): GetMenuHtmlViewModel

FILE: src/Seat/Presentation/Menu/GetMenuHtmlViewModel.php
  class GetMenuHtmlViewModel (line 7) | class GetMenuHtmlViewModel

FILE: src/Seat/Presentation/Menu/Model/MenuViewModel.php
  class MenuViewModel (line 10) | class MenuViewModel
    method fromMenuLines (line 15) | public static function fromMenuLines(array $menuLines)
    method __construct (line 56) | public function __construct(array $categories)
    method categories (line 61) | public function categories(): array
    method json (line 66) | public function json()

FILE: src/Seat/Presentation/Order/ConfirmBasketHtmlPresenter.php
  class ConfirmBasketHtmlPresenter (line 8) | class ConfirmBasketHtmlPresenter implements ConfirmBasketPresenter
    method present (line 12) | public function present(ConfirmBasketResponse $response): void
    method viewModel (line 22) | public function viewModel(): ConfirmBasketHtmlViewModel

FILE: src/Seat/Presentation/Order/ConfirmBasketHtmlViewModel.php
  class ConfirmBasketHtmlViewModel (line 5) | class ConfirmBasketHtmlViewModel

FILE: src/Seat/SharedKernel/Error/Error.php
  class Error (line 5) | class Error
    method __construct (line 10) | public function __construct(string $fieldName, string $message)
    method __toString (line 16) | public function __toString()
    method fieldName (line 21) | public function fieldName(): string
    method message (line 26) | public function message(): string

FILE: src/Seat/SharedKernel/Error/Notification.php
  class Notification (line 5) | class Notification
    method addError (line 9) | public function addError(string $fieldName, string $error)
    method getErrors (line 19) | public function getErrors(): array
    method hasError (line 24) | public function hasError()

FILE: src/Seat/SharedKernel/Model/TimeRange.php
  class TimeRange (line 8) | class TimeRange
    method __construct (line 13) | public function __construct(string $from, string $to)
    method getRoundedStep (line 19) | public function getRoundedStep(int $minuteStep)
    method delayFromDate (line 35) | public function delayFromDate(DateTimeImmutable $delay, ?int $minuteSt...
    method from (line 58) | public function from(): string
    method to (line 63) | public function to(): string

FILE: src/Seat/SharedKernel/Service/Base64PasswordHasher.php
  class Base64PasswordHasher (line 5) | class Base64PasswordHasher implements PasswordHasher
    method hash (line 7) | public function hash(string $password): string
    method isPasswordValid (line 12) | public function isPasswordValid(string $hashedPassword, string $passwo...

FILE: src/Seat/SharedKernel/Service/Clock.php
  class Clock (line 5) | class Clock
    method now (line 7) | public function now()

FILE: src/Seat/SharedKernel/Service/IdGenerator.php
  class IdGenerator (line 7) | class IdGenerator
    method next (line 9) | public function next()

FILE: src/Seat/SharedKernel/Service/NativePasswordHasher.php
  class NativePasswordHasher (line 5) | class NativePasswordHasher implements PasswordHasher
    method hash (line 7) | public function hash(string $password): string
    method isPasswordValid (line 12) | public function isPasswordValid(string $hashedPassword, string $passwo...

FILE: src/Seat/SharedKernel/Service/PasswordHasher.php
  type PasswordHasher (line 6) | interface PasswordHasher
    method hash (line 8) | public function hash(string $password): string;
    method isPasswordValid (line 10) | public function isPasswordValid(string $hashedPassword, string $passwo...

FILE: tests/unit/Seat/Domain/Basket/Entity/ProductBuilder.php
  class ProductBuilder (line 7) | class ProductBuilder
    method aProduct (line 15) | public static function aProduct()
    method id (line 20) | public function id(string $id)
    method name (line 27) | public function name(string $name)
    method description (line 34) | public function description(string $description)
    method price (line 41) | public function price(float $price)
    method categoryId (line 48) | public function categoryId(string $categoryId)
    method build (line 55) | public function build()

FILE: tests/unit/Seat/Domain/Basket/Service/OrderTypeCheckerTest.php
  class OrderTypeCheckerTest (line 15) | class OrderTypeCheckerTest extends TestCase
    method setUp (line 28) | protected function setUp()
    method nowIs (line 41) | private function nowIs(string $hourMinuteSecond)
    method test_order_delivery_must_be_before_the_company_max_order_time (line 50) | public function test_order_delivery_must_be_before_the_company_max_ord...
    method test_take_away_must_be_ordered_before_11h10 (line 59) | public function test_take_away_must_be_ordered_before_11h10()
    method test_take_away_is_possible_until_14h (line 68) | public function test_take_away_is_possible_until_14h()
    method test_a_user_without_a_company_can_not_choose_delivery (line 79) | public function test_a_user_without_a_company_can_not_choose_delivery()
    method test_impossible_to_delivery_on_a_company_that_does_not_accept_delivery (line 88) | public function test_impossible_to_delivery_on_a_company_that_does_not...
    method test_take_away_can_not_be_ordered_after_11h10 (line 97) | public function test_take_away_can_not_be_ordered_after_11h10()
    method test_impossible_to_order_a_delivery_after_the_company_max_order_time (line 106) | public function test_impossible_to_order_a_delivery_after_the_company_...
    method test_impossible_to_order_a_take_away_for_14h (line 115) | public function test_impossible_to_order_a_take_away_for_14h()
    method test_a_daliverable_company_can_not_take_out (line 124) | public function test_a_daliverable_company_can_not_take_out()
    method test_an_unknown_client_has_no_delivery (line 134) | public function test_an_unknown_client_has_no_delivery()

FILE: tests/unit/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasketTest.php
  class AddProductToBasketTest (line 21) | class AddProductToBasketTest extends TestCase implements AddProductToBas...
    method setUp (line 38) | protected function setUp()
    method present (line 68) | public function present(AddProductToBasketResponse $response): void
    method test_it_adds_a_product_in_the_basket (line 73) | public function test_it_adds_a_product_in_the_basket()
    method test_it_calculate_the_total_price (line 84) | public function test_it_calculate_the_total_price()
    method test_impossible_to_add_a_non_existing_product (line 97) | public function test_impossible_to_add_a_non_existing_product()
    method test_can_add_a_product_with_an_option_to_the_basket (line 108) | public function test_can_add_a_product_with_an_option_to_the_basket()
    method test_throws_a_error_when_the_option_does_not_exist (line 118) | public function test_throws_a_error_when_the_option_does_not_exist()
    method test_throws_a_error_when_the_option_is_not_linked_to_the_category_of_the_product (line 129) | public function test_throws_a_error_when_the_option_is_not_linked_to_t...
    method test_can_add_supplements_on_product (line 139) | public function test_can_add_supplements_on_product()
    method test_throws_an_error_when_a_supplement_is_unknown (line 151) | public function test_throws_an_error_when_a_supplement_is_unknown()
    method test_throws_an_error_when_a_supplement_is_not_linked_to_the_category_of_the_product (line 162) | public function test_throws_an_error_when_a_supplement_is_not_linked_t...
    method test_it_is_possible_to_add_a_comment (line 177) | public function test_it_is_possible_to_add_a_comment()
    method test_it_is_possible_to_add_a_quantity (line 189) | public function test_it_is_possible_to_add_a_quantity()

FILE: tests/unit/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasketTest.php
  class RemoveFromBasketTest (line 13) | class RemoveFromBasketTest extends TestCase implements RemoveFromBasketP...
    method test_it_deletes_a_line_from_the_basket (line 21) | public function test_it_deletes_a_line_from_the_basket()
    method present (line 35) | public function present(RemoveFromBasketResponse $response): void

FILE: tests/unit/Seat/Domain/Client/Entity/ClientBuilder.php
  class ClientBuilder (line 9) | class ClientBuilder
    method withFirstName (line 22) | public function withFirstName($firstName)
    method withLastName (line 29) | public function withLastName($lastName)
    method withPhoneNumber (line 36) | public function withPhoneNumber($phoneNumber)
    method withId (line 43) | public function withId($id)
    method withEmail (line 50) | public function withEmail($email)
    method withPassword (line 57) | public function withPassword($password)
    method withStore (line 64) | public function withStore(string $store)
    method withCompanyId (line 71) | public function withCompanyId(string $companyId)
    method withRole (line 78) | public function withRole(string $role)
    method withDisabled (line 85) | public function withDisabled()
    method build (line 92) | public function build()
    method aClient (line 110) | public static function aClient()

FILE: tests/unit/Seat/Domain/Client/Entity/CompanyBuilder.php
  class CompanyBuilder (line 9) | class CompanyBuilder
    method name (line 19) | public function name($name)
    method invoiced (line 26) | public function invoiced()
    method store (line 33) | public function store($store)
    method deliverable (line 40) | public function deliverable($maxOrderTimeForDelivery)
    method build (line 47) | public function build()
    method aCompany (line 55) | public static function aCompany()
    method disabled (line 60) | public function disabled()

FILE: tests/unit/Seat/Domain/Client/UseCase/GetClient/GetClientTest.php
  class GetClientTest (line 13) | class GetClientTest extends TestCase implements GetClientPresenter
    method setUp (line 22) | protected function setUp()
    method present (line 30) | public function present(GetClientResponse $response): void
    method test_it_returns_a_client (line 35) | public function test_it_returns_a_client()
    method test_it_returns_no_client_when_he_does_not_exist (line 43) | public function test_it_returns_no_client_when_he_does_not_exist()

FILE: tests/unit/Seat/Domain/Client/UseCase/Login/LoginTest.php
  class LoginTest (line 17) | class LoginTest extends TestCase implements LoginPresenter
    method setUp (line 30) | protected function setUp()
    method present (line 40) | public function present(LoginResponse $response)
    method test_it_saves_the_logged_client_in_the_response (line 45) | public function test_it_saves_the_logged_client_in_the_response()
    method test_an_error_when_the_password_is_wrong (line 56) | public function test_an_error_when_the_password_is_wrong()
    method test_throws_an_error_when_user_does_not_exist (line 64) | public function test_throws_an_error_when_user_does_not_exist()
    method test_throws_an_error_when_the_user_is_disabled (line 70) | public function test_throws_an_error_when_the_user_is_disabled()
    method test_throws_an_error_when_his_company_is_disabled (line 80) | public function test_throws_an_error_when_his_company_is_disabled()

FILE: tests/unit/Seat/Domain/Client/UseCase/Register/RegisterRequestBuilder.php
  class RegisterRequestBuilder (line 7) | class RegisterRequestBuilder extends RegisterRequest
    method aRequest (line 16) | public static function aRequest()
    method build (line 30) | public function build()
    method empty (line 45) | public function empty()
    method withIsPosted (line 58) | public function withIsPosted($isPosted)
    method withFirstName (line 65) | public function withFirstName($firstName)
    method withLastName (line 72) | public function withLastName($lastName)
    method withStore (line 79) | public function withStore($store)
    method withPassword (line 86) | public function withPassword($password)
    method withPhoneNumber (line 93) | public function withPhoneNumber($phoneNumber)
    method withEmail (line 100) | public function withEmail($email)
    method withCompanyName (line 107) | public function withCompanyName($companyName)

FILE: tests/unit/Seat/Domain/Client/UseCase/Register/RegisterTest.php
  class RegisterTest (line 17) | class RegisterTest extends TestCase implements RegisterPresenter
    method present (line 27) | public function present(RegisterResponse $response): void
    method setUp (line 32) | protected function setUp()
    method test_saves_the_client_in_the_database_with_a_hashed_password (line 46) | public function test_saves_the_client_in_the_database_with_a_hashed_pa...
    method test_fails_when_email_already_exist (line 65) | public function test_fails_when_email_already_exist()
    method test_a_user_can_not_be_linked_to_an_missing_company (line 75) | public function test_a_user_can_not_be_linked_to_an_missing_company()
    method test_a_user_can_be_linked_to_an_existing_company (line 85) | public function test_a_user_can_be_linked_to_an_existing_company()
    method test_when_a_company_is_linked_the_user_inherits_from_its_store (line 111) | public function test_when_a_company_is_linked_the_user_inherits_from_i...
    method test_a_user_can_not_register_in_a_disabled_company (line 123) | public function test_a_user_can_not_register_in_a_disabled_company()
    method test_the_request_is_validated (line 135) | public function test_the_request_is_validated()
    method test_firstname_lastname_and_password_must_be_a_string (line 151) | public function test_firstname_lastname_and_password_must_be_a_string()
    method test_email_must_be_valid (line 169) | public function test_email_must_be_valid()
    method test_invalid_store_throws_an_error (line 178) | public function test_invalid_store_throws_an_error()
    method test_store_must_be_la_hulpe_or_waterloo (line 192) | public function test_store_must_be_la_hulpe_or_waterloo($store)
    method stores (line 199) | public function stores(): array

FILE: tests/unit/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientRequestBuilder.php
  class UpdateClientRequestBuilder (line 7) | class UpdateClientRequestBuilder extends UpdateClientRequest
    method aRequest (line 16) | public static function aRequest()
    method build (line 29) | public function build()
    method empty (line 42) | public function empty()
    method withClientId (line 54) | public function withClientId($clientId)
    method withPassword (line 61) | public function withPassword($password)
    method withFirstName (line 68) | public function withFirstName($firstName)
    method withLastName (line 75) | public function withLastName($lastName)
    method withEmail (line 82) | public function withEmail($email)
    method withPhoneNumber (line 89) | public function withPhoneNumber($phoneNumber)

FILE: tests/unit/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientTest.php
  class UpdateClientTest (line 16) | class UpdateClientTest extends TestCase implements UpdateClientPresenter
    method setUp (line 27) | protected function setUp()
    method present (line 36) | public function present(UpdateClientResponse $response)
    method test_it_updates_a_client (line 41) | public function test_it_updates_a_client()
    method test_it_fills_the_response (line 58) | public function test_it_fills_the_response()
    method test_it_checks_fields_validity (line 78) | public function test_it_checks_fields_validity()
    method test_it_checks_email_validity (line 96) | public function test_it_checks_email_validity()
    method test_it_may_not_update_the_password (line 110) | public function test_it_may_not_update_the_password()
    method test_it_hashes_the_password (line 126) | public function test_it_hashes_the_password()
    method test_it_fails_when_the_client_does_not_exist (line 143) | public function test_it_fails_when_the_client_does_not_exist()

FILE: tests/unit/Seat/Domain/Menu/UseCase/GetMenu/GetMenuTest.php
  class GetMenuTest (line 18) | class GetMenuTest extends TestCase implements GetMenuPresenter
    method setUp (line 31) | protected function setUp()
    method present (line 51) | public function present(GetMenuResponse $response): void
    method test_it_returns_a_list_of_category (line 56) | public function test_it_returns_a_list_of_category()
    method test_the_list_may_contains_options (line 68) | public function test_the_list_may_contains_options()
    method test_the_list_may_contains_supplements (line 88) | public function test_the_list_may_contains_supplements()
    method test_the_list_may_contains_products (line 108) | public function test_the_list_may_contains_products()

FILE: tests/unit/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketRequestBuilder.php
  class ConfirmBasketRequestBuilder (line 9) | class ConfirmBasketRequestBuilder
    method aConfirmBasket (line 16) | public static function aConfirmBasket()
    method build (line 21) | public function build()
    method withUserId (line 32) | public function withUserId($userId)
    method withCheckSum (line 39) | public function withCheckSum($checkSum)
    method withOrderTypeName (line 46) | public function withOrderTypeName($orderTypeName)
    method withTakeAwayTime (line 53) | public function withTakeAwayTime($takeAwayTime)
    method forBasket (line 60) | public function forBasket(Basket $basket)
    method takeAwayAt (line 67) | public function takeAwayAt(string $takeAwayTime)
    method forClient (line 75) | public function forClient(Client $client)

FILE: tests/unit/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketTest.php
  class ConfirmBasketTest (line 22) | class ConfirmBasketTest extends TestCase implements ConfirmBasketPresenter
    method setUp (line 42) | protected function setUp()
    method present (line 73) | public function present(ConfirmBasketResponse $response): void
    method nowIs (line 78) | private function nowIs(string $hourMinute)
    method test_it_saves_take_away_into_a_command (line 85) | public function test_it_saves_take_away_into_a_command()
    method test_it_saves_delivery_into_a_command (line 105) | public function test_it_saves_delivery_into_a_command()
    method test_a_delivery_company_can_not_take_away (line 119) | public function test_a_delivery_company_can_not_take_away()
    method test_a_take_away_client_can_not_deliver (line 137) | public function test_a_take_away_client_can_not_deliver()
    method test_it_fails_when_the_given_check_sum_is_not_correct (line 154) | public function test_it_fails_when_the_given_check_sum_is_not_correct()
    method test_an_empty_basket_can_not_be_confirmed (line 167) | public function test_an_empty_basket_can_not_be_confirmed()
    method test_it_empties_the_basket (line 180) | public function test_it_empties_the_basket()
    method test_throws_an_error_when_the_client_is_unknown (line 195) | public function test_throws_an_error_when_the_client_is_unknown()
    method test_a_deliver_must_be_done_before_company_limit_time (line 208) | public function test_a_deliver_must_be_done_before_company_limit_time()
    method test_a_take_away_done_at_11h11_is_too_late (line 225) | public function test_a_take_away_done_at_11h11_is_too_late()
    method test_a_take_away_time_14h01_is_too_late (line 243) | public function test_a_take_away_time_14h01_is_too_late()
    method test_a_take_away_time_can_be_set_to_maximum_14h00 (line 261) | public function test_a_take_away_time_can_be_set_to_maximum_14h00()
    method test_it_notifies_when_the_type_is_unknown (line 276) | public function test_it_notifies_when_the_type_is_unknown()
    method test_a_null_client_is_considered_unknown (line 292) | public function test_a_null_client_is_considered_unknown()

FILE: tests/unit/Seat/SharedKernel/Model/TimeRangeTest.php
  class TimeRangeTest (line 10) | class TimeRangeTest extends TestCase
    method test_returns_steps (line 13) | public function test_returns_steps()
    method test_from_can_be_delayed (line 20) | public function test_from_can_be_delayed()
    method test_from_can_be_delayed_and_rounded (line 29) | public function test_from_can_be_delayed_and_rounded()
    method test_can_not_delay_before_the_current_from_time (line 38) | public function test_can_not_delay_before_the_current_from_time()

FILE: tests/unit/Seat/_Mock/Domain/Basket/Entity/InMemoryBasketRepository.php
  class InMemoryBasketRepository (line 9) | class InMemoryBasketRepository implements BasketRepository
    method __construct (line 14) | public function __construct()
    method addToBasket (line 18) | public function addToBasket(string $userId, BasketProduct $basketProduct)
    method getUserBasket (line 26) | public function getUserBasket(string $userId): Basket
    method emptyBasketFor (line 35) | public function emptyBasketFor(string $userId): void
    method delete (line 40) | public function delete(string $basketId, string $userId): void

FILE: tests/unit/Seat/_Mock/Domain/Client/Entity/InMemoryClientRepository.php
  class InMemoryClientRepository (line 8) | class InMemoryClientRepository implements ClientRepository
    method addClient (line 15) | public function addClient(Client $client)
    method getRegisterClient (line 20) | public function getRegisterClient(string $email, string $password): ?C...
    method getClientByEmail (line 34) | public function getClientByEmail(string $email): ?Client
    method getClientById (line 48) | public function getClientById(string $id): ?Client
    method updateClient (line 62) | public function updateClient(Client $client): void

FILE: tests/unit/Seat/_Mock/Domain/Client/Entity/InMemoryCompanyRepository.php
  class InMemoryCompanyRepository (line 8) | class InMemoryCompanyRepository implements CompanyRepository
    method getCompanyNamed (line 14) | public function getCompanyNamed(string $companyName): ?Company
    method addCompany (line 28) | public function addCompany(Company $company): void
    method getCompanyById (line 33) | public function getCompanyById(?string $companyId): ?Company

FILE: tests/unit/Seat/_Mock/Domain/Menu/Entity/InMemoryCategoryRepository.php
  class InMemoryCategoryRepository (line 8) | class InMemoryCategoryRepository implements CategoryRepository
    method __construct (line 12) | public function __construct()
    method getCategories (line 19) | public function getCategories(): array
    method addCategory (line 24) | public function addCategory(Category $category)

FILE: tests/unit/Seat/_Mock/Domain/Menu/Entity/InMemoryProductOptionRepository.php
  class InMemoryProductOptionRepository (line 8) | class InMemoryProductOptionRepository implements ProductOptionRepository
    method get (line 12) | public function get(string $productOptionId): ?ProductOption
    method add (line 17) | public function add(ProductOption $productOption): void
    method getByCategoryId (line 25) | public function getByCategoryId(string $categoryId): array

FILE: tests/unit/Seat/_Mock/Domain/Menu/Entity/InMemoryProductRepository.php
  class InMemoryProductRepository (line 8) | class InMemoryProductRepository implements ProductRepository
    method __construct (line 14) | public function __construct()
    method add (line 18) | public function add(Product $product): void
    method get (line 23) | public function get(string $id): ?Product
    method getByCategoryId (line 31) | public function getByCategoryId(string $categoryId): array

FILE: tests/unit/Seat/_Mock/Domain/Menu/Entity/InMemoryProductSupplementRepository.php
  class InMemoryProductSupplementRepository (line 8) | class InMemoryProductSupplementRepository implements ProductSupplementRe...
    method get (line 12) | public function get(string $supplementId): ?ProductSupplement
    method add (line 17) | public function add(ProductSupplement $supplement): void
    method getByCategoryId (line 25) | public function getByCategoryId(string $categoryId): array

FILE: tests/unit/Seat/_Mock/Domain/Order/Entity/InMemoryCommandRepository.php
  class InMemoryCommandRepository (line 9) | class InMemoryCommandRepository implements CommandRepository
    method add (line 14) | public function add(Command $command): void
    method getTodayList (line 22) | public function getTodayList(): array

FILE: tests/unit/Seat/_Mock/Seat/SharedKernel/Service/IdGeneratorMock.php
  class IdGeneratorMock (line 7) | class IdGeneratorMock extends IdGenerator
    method next (line 12) | public function next()
Condensed preview — 268 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (941K chars).
[
  {
    "path": ".gitignore",
    "chars": 658,
    "preview": "/var/cache/*\n!var/log/.gitkeep\n.idea/*\n\n/public/build/fonts/glyphicons-*\n/public/build/images/glyphicons-*\n\n###> symfony"
  },
  {
    "path": "bin/console",
    "chars": 1084,
    "preview": "#!/usr/bin/env php\n<?php\nuse Symfony4\\Kernel;\nuse Symfony\\Bundle\\FrameworkBundle\\Console\\Application;\nuse Symfony\\Compon"
  },
  {
    "path": "bin/phpunit",
    "chars": 600,
    "preview": "#!/usr/bin/env php\n<?php\n\nif (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) {\n    "
  },
  {
    "path": "composer.json",
    "chars": 1548,
    "preview": "{\n  \"name\": \"vagrant/seat\",\n  \"license\": \"proprietary\",\n  \"type\": \"project\",\n  \"autoload\": {\n    \"psr-4\": {\n      \"Symfo"
  },
  {
    "path": "config/bootstrap.php",
    "chars": 918,
    "preview": "<?php\ndeclare(strict_types=1);\n\nuse Symfony\\Component\\Dotenv\\Dotenv;\n\nrequire dirname(__DIR__).'/vendor/autoload.php';\ni"
  },
  {
    "path": "config/bundles.php",
    "chars": 1390,
    "preview": "<?php\ndeclare(strict_types=1);\n\nreturn [\n    Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle::class => ['all' => true],\n "
  },
  {
    "path": "config/packages/assets.yaml",
    "chars": 101,
    "preview": "framework:\n    assets:\n        json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'\n"
  },
  {
    "path": "config/packages/dev/debug.yaml",
    "chars": 235,
    "preview": "debug:\n    # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser."
  },
  {
    "path": "config/packages/dev/monolog.yaml",
    "chars": 608,
    "preview": "monolog:\n    handlers:\n        main:\n            type: stream\n            path: '%kernel.logs_dir%/%kernel.environment%."
  },
  {
    "path": "config/packages/dev/routing.yaml",
    "chars": 57,
    "preview": "framework:\n    router:\n        strict_requirements: true\n"
  },
  {
    "path": "config/packages/dev/security_checker.yaml",
    "chars": 252,
    "preview": "#services:\n#    SensioLabs\\Security\\SecurityChecker:\n#        public: false\n#\n#    SensioLabs\\Security\\Command\\SecurityC"
  },
  {
    "path": "config/packages/dev/swiftmailer.yaml",
    "chars": 167,
    "preview": "# See https://symfony.com/doc/current/email/dev_environment.html\nswiftmailer:\n    #  send all emails to a specific addre"
  },
  {
    "path": "config/packages/dev/web_profiler.yaml",
    "chars": 116,
    "preview": "web_profiler:\n    toolbar: true\n    intercept_redirects: false\n\nframework:\n    profiler: { only_exceptions: false }\n"
  },
  {
    "path": "config/packages/doctrine.yaml",
    "chars": 719,
    "preview": "parameters:\n  # Adds a fallback DATABASE_URL if the env var is not set. This allows you\n  # to run cache:warmup even if "
  },
  {
    "path": "config/packages/doctrine_migrations.yaml",
    "chars": 233,
    "preview": "doctrine_migrations:\n    dir_name: '%kernel.project_dir%/src/Migrations'\n    # namespace is arbitrary but should be diff"
  },
  {
    "path": "config/packages/easy_admin.yaml",
    "chars": 5516,
    "preview": "easy_admin:\n  user:\n    name_property_path: 'fullName'\n  site_name: \"S'eat\"\n  entities:\n    CommandLaHulpe:\n      label:"
  },
  {
    "path": "config/packages/fos_ck_editor.yaml",
    "chars": 1691,
    "preview": "fos_ck_editor:\n  default_config: my_custom_config\n  configs:\n    my_custom_config:\n      language:                   \"fr"
  },
  {
    "path": "config/packages/framework.yaml",
    "chars": 1084,
    "preview": "framework:\n  secret: '%env(APP_SECRET)%'\n  csrf_protection: true\n  http_method_override: true\n  trusted_hosts: ~\n  sessi"
  },
  {
    "path": "config/packages/html_sanitizer.yaml",
    "chars": 618,
    "preview": "#html_sanitizer:\n#    default_sanitizer: 'default'\n#    sanitizers:\n#        default:\n#            # Read https://github"
  },
  {
    "path": "config/packages/prod/doctrine.yaml",
    "chars": 955,
    "preview": "doctrine:\n  dbal:\n    driver: 'pdo_postgresql'\n    url: '%env(resolve:DATABASE_URL)%'\n    server_version: '11'\n    chars"
  },
  {
    "path": "config/packages/prod/monolog.yaml",
    "chars": 345,
    "preview": "monolog:\n    handlers:\n        filter_for_errors:\n            type: fingers_crossed\n            action_level: error\n    "
  },
  {
    "path": "config/packages/prod/webpack_encore.yaml",
    "chars": 154,
    "preview": "#webpack_encore:\n    # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)\n    # Availabl"
  },
  {
    "path": "config/packages/routing.yaml",
    "chars": 73,
    "preview": "framework:\n    router:\n        strict_requirements: ~\n        utf8: true\n"
  },
  {
    "path": "config/packages/security.yaml",
    "chars": 2910,
    "preview": "security:\n    encoders:\n        # Our user class and the algorithm we'll use to encode passwords\n        # https://symfo"
  },
  {
    "path": "config/packages/security_checker.yaml",
    "chars": 302,
    "preview": "#services:\n#    SensioLabs\\Security\\SecurityChecker:\n#        public: false\n#\n#    SensioLabs\\Security\\Command\\SecurityC"
  },
  {
    "path": "config/packages/sensio_framework_extra.yaml",
    "chars": 63,
    "preview": "sensio_framework_extra:\n    router:\n        annotations: false\n"
  },
  {
    "path": "config/packages/sentry.yml",
    "chars": 44,
    "preview": "sentry:\n  dsn: \"https://your@sentry.io/url\"\n"
  },
  {
    "path": "config/packages/swiftmailer.yaml",
    "chars": 72,
    "preview": "swiftmailer:\n    url: '%env(MAILER_URL)%'\n    spool: { type: 'memory' }\n"
  },
  {
    "path": "config/packages/test/dama_doctrine_test_bundle.yaml",
    "chars": 131,
    "preview": "dama_doctrine_test:\n    enable_static_connection: true\n    enable_static_meta_data_cache: true\n    enable_static_query_c"
  },
  {
    "path": "config/packages/test/framework.yaml",
    "chars": 85,
    "preview": "framework:\n    test: true\n    session:\n        storage_id: session.storage.mock_file\n"
  },
  {
    "path": "config/packages/test/monolog.yaml",
    "chars": 183,
    "preview": "monolog:\n    handlers:\n        main:\n            type: stream\n            path: \"%kernel.logs_dir%/%kernel.environment%."
  },
  {
    "path": "config/packages/test/routing.yaml",
    "chars": 57,
    "preview": "framework:\n    router:\n        strict_requirements: true\n"
  },
  {
    "path": "config/packages/test/security.yaml",
    "chars": 515,
    "preview": "# this configuration simplifies testing URLs protected by the security mechanism\n# See https://symfony.com/doc/current/c"
  },
  {
    "path": "config/packages/test/swiftmailer.yaml",
    "chars": 40,
    "preview": "swiftmailer:\n    disable_delivery: true\n"
  },
  {
    "path": "config/packages/test/web_profiler.yaml",
    "chars": 109,
    "preview": "web_profiler:\n    toolbar: false\n    intercept_redirects: false\n\nframework:\n    profiler: { collect: false }\n"
  },
  {
    "path": "config/packages/translation.yaml",
    "chars": 170,
    "preview": "framework:\n    default_locale: '%locale%'\n    translator:\n        default_path: '%kernel.project_dir%/resources/translat"
  },
  {
    "path": "config/packages/twig.yaml",
    "chars": 264,
    "preview": "twig:\n    debug: '%kernel.debug%'\n    default_path: '%kernel.project_dir%/resources/templates'\n    strict_variables: '%k"
  },
  {
    "path": "config/packages/twig_extensions.yaml",
    "chars": 293,
    "preview": "services:\n    _defaults:\n        public: false\n        autowire: true\n        autoconfigure: true\n\n    #Twig\\Extensions\\"
  },
  {
    "path": "config/packages/validator.yaml",
    "chars": 64,
    "preview": "framework:\n    validation:\n        email_validation_mode: html5\n"
  },
  {
    "path": "config/packages/vich_uploader.yaml",
    "chars": 184,
    "preview": "vich_uploader:\n  db_driver: orm\n  mappings:\n    pdf:\n      uri_prefix:         '%app.path.download_pdf%'\n      upload_de"
  },
  {
    "path": "config/packages/webpack_encore.yaml",
    "chars": 190,
    "preview": "webpack_encore:\n    # The path where Encore is building the assets.\n    # This should match Encore.setOutputPath() in we"
  },
  {
    "path": "config/routes/annotations.yaml",
    "chars": 194,
    "preview": "controllers:\n    resource: '../../src/Seat/Infrastructure/Symfony4/Controller/'\n    type: annotation\n    requirements:\n "
  },
  {
    "path": "config/routes/dev/twig.yaml",
    "chars": 95,
    "preview": "_errors:\n    resource: '@TwigBundle/Resources/config/routing/errors.xml'\n    prefix:   /_error\n"
  },
  {
    "path": "config/routes/dev/web_profiler.yaml",
    "chars": 224,
    "preview": "web_profiler_wdt:\n    resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'\n    prefix: /_wdt\n\nweb_profiler_pr"
  },
  {
    "path": "config/routes/easy_admin.yaml",
    "chars": 110,
    "preview": "easy_admin_bundle:\n    resource: 'Symfony4\\Controller\\AdminController'\n    prefix: /work\n    type: annotation\n"
  },
  {
    "path": "config/services.yaml",
    "chars": 1823,
    "preview": "# Learn more about services, parameters and containers at\n# http://symfony.com/doc/current/book/service_container.html\np"
  },
  {
    "path": "package.json",
    "chars": 404,
    "preview": "{\n    \"devDependencies\": {\n        \"@symfony/webpack-encore\": \"^0.27.0\",\n        \"core-js\": \"^3.0.0\",\n        \"webpack-n"
  },
  {
    "path": "phpunit.xml.dist",
    "chars": 441,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<phpunit xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:noNa"
  },
  {
    "path": "public/.htaccess",
    "chars": 287,
    "preview": "<IfModule mod_rewrite.c>\n    Options -MultiViews\n    RewriteEngine On\n    RewriteCond %{REQUEST_FILENAME} !-f\n    Rewrit"
  },
  {
    "path": "public/build/app.css",
    "chars": 370,
    "preview": "body {\n    background-color: lightgray;\n}\n\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9u"
  },
  {
    "path": "public/build/app.js",
    "chars": 2440,
    "preview": "(window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || []).push([[\"app\"],{\n\n/***/ \"./resources/assets/css/app.css\":\n/*!****"
  },
  {
    "path": "public/build/entrypoints.json",
    "chars": 169,
    "preview": "{\n  \"entrypoints\": {\n    \"app\": {\n      \"js\": [\n        \"/build/runtime.js\",\n        \"/build/app.js\"\n      ],\n      \"css"
  },
  {
    "path": "public/build/manifest.json",
    "chars": 117,
    "preview": "{\n  \"build/app.css\": \"/build/app.css\",\n  \"build/app.js\": \"/build/app.js\",\n  \"build/runtime.js\": \"/build/runtime.js\"\n}"
  },
  {
    "path": "public/build/runtime.js",
    "chars": 14556,
    "preview": "/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tfunc"
  },
  {
    "path": "public/css/materialize.css",
    "chars": 179245,
    "preview": "/*!\r\n * Materialize v1.0.0 (http://materializecss.com)\r\n * Copyright 2014-2017 Materialize\r\n * MIT License (https://raw."
  },
  {
    "path": "public/css/seat-base.css",
    "chars": 4128,
    "preview": "a,.dropdown-content li>a {\n    color: #44A729;\n}\n\na:hover {\n    color: #55544B;\n    text-decoration: underline;\n}\n\n/* be"
  },
  {
    "path": "public/css/seat.css",
    "chars": 215,
    "preview": "html {\n    background: url('/images/background1.jpg') no-repeat center center fixed;\n    -webkit-background-size: cover;"
  },
  {
    "path": "public/ico/browserconfig.xml",
    "chars": 281,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig><msapplication><tile><square70x70logo src=\"/ms-icon-70x70.png\"/><s"
  },
  {
    "path": "public/ico/manifest.json",
    "chars": 720,
    "preview": "{\n \"name\": \"App\",\n \"icons\": [\n  {\n   \"src\": \"\\/android-icon-36x36.png\",\n   \"sizes\": \"36x36\",\n   \"type\": \"image\\/png\",\n  "
  },
  {
    "path": "public/index.php",
    "chars": 803,
    "preview": "<?php\n\nuse Symfony4\\Kernel;\nuse Symfony\\Component\\Debug\\Debug;\nuse Symfony\\Component\\HttpFoundation\\Request;\n\nrequire di"
  },
  {
    "path": "public/js/materialize.js",
    "chars": 371022,
    "preview": "/*!\r\n * Materialize v1.0.0 (http://materializecss.com)\r\n * Copyright 2014-2017 Materialize\r\n * MIT License (https://raw."
  },
  {
    "path": "resources/assets/css/app.css",
    "chars": 42,
    "preview": "body {\n    background-color: lightgray;\n}\n"
  },
  {
    "path": "resources/assets/js/app.js",
    "chars": 475,
    "preview": "/*\n * Welcome to your app's main JavaScript file!\n *\n * We recommend including the built version of this JavaScript file"
  },
  {
    "path": "resources/templates/admin/command/list.twig",
    "chars": 1829,
    "preview": "{# templates/admin/list.html.twig #}\n{% extends '@EasyAdmin/default/list.html.twig' %}\n{% block table_body %}\n    <style"
  },
  {
    "path": "resources/templates/base_resto.html.twig",
    "chars": 5716,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\">"
  },
  {
    "path": "resources/templates/bundles/EasyAdminBundle/default/layout.html.twig",
    "chars": 134,
    "preview": "{# DO THIS: the '!' symbol tells Symfony to extend from the original template #}\n{% extends '@!EasyAdmin/default/layout."
  },
  {
    "path": "resources/templates/component/download.html.twig",
    "chars": 119,
    "preview": "<p class=\"center-align\">\n    <a href=\"{{ pdf_path }}/{{ pdf.pdf|url_encode }}\" target=\"_blank\">{{ pdf.text }}</a>\n</p>\n"
  },
  {
    "path": "resources/templates/default/registration_complete.html.twig",
    "chars": 161,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"row seat-border\">\n        {{ 'registration-comple"
  },
  {
    "path": "resources/templates/form/field-new.html.twig",
    "chars": 259,
    "preview": "{{ form_widget(form[fieldName],{attr:{class:errors[fieldName] is defined ? 'invalid':''}}) }}\n{{ form_label(form[fieldNa"
  },
  {
    "path": "resources/templates/form/field.html.twig",
    "chars": 278,
    "preview": "{{ form_widget(form[fieldName],{value: attribute(formValues, fieldName) ,attr:{class:errors[fieldName] ? 'invalid':''}})"
  },
  {
    "path": "resources/templates/order/confirm-basket.html.twig",
    "chars": 475,
    "preview": "{#{% if orderType != null %}#}\n{#    {% if orderType.error() == null %}#}\n        {% if basket.count() > 0 %}\n\n         "
  },
  {
    "path": "resources/templates/order/go-to-confirm-basket.html.twig",
    "chars": 346,
    "preview": "{% if orderType != null %}\n    {% if orderType.error() == null %}\n        {% if basket.products|length > 0 %}\n          "
  },
  {
    "path": "resources/templates/order/summary.html.twig",
    "chars": 1941,
    "preview": "<ul class=\"panier\">\n    {% for product in basket.products %}\n        <li class=\"panier-item\">\n            <div class=\"pr"
  },
  {
    "path": "resources/templates/order/the-menu.html.twig",
    "chars": 3345,
    "preview": "<div id=\"vue-app\">\n    {% verbatim %}\n    <div id=\"product-modal\" class=\"modal modal-fixed-footer\">\n        <form :actio"
  },
  {
    "path": "resources/templates/page/basket.html.twig",
    "chars": 1325,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"row\">\n        <div class=\"col m6 s12\">\n          "
  },
  {
    "path": "resources/templates/page/business-lunch.html.twig",
    "chars": 296,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n\n    <div class=\"card\">\n        <div class=\"card-content\">\n      "
  },
  {
    "path": "resources/templates/page/contact.html.twig",
    "chars": 171,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n\n    <div class=\"card\">\n        <div class=\"card-content\">{{ 'con"
  },
  {
    "path": "resources/templates/page/home.html.twig",
    "chars": 1318,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"card hide-on-small-only\">\n        <div class=\"car"
  },
  {
    "path": "resources/templates/page/login.html.twig",
    "chars": 1685,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"card\">\n        <div class=\"card-content\">\n       "
  },
  {
    "path": "resources/templates/page/menu-salle.html.twig",
    "chars": 290,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"card\">\n        <div class=\"card-content\">\n       "
  },
  {
    "path": "resources/templates/page/order-done.html.twig",
    "chars": 197,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"card\">\n        <div class=\"card-content\">\n       "
  },
  {
    "path": "resources/templates/page/register-complete.html.twig",
    "chars": 204,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"card\">\n        <div class=\"card-content\">\n       "
  },
  {
    "path": "resources/templates/page/register.html.twig",
    "chars": 4321,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body %}\n    <div class=\"card\">\n        <div class=\"card-content\">\n       "
  },
  {
    "path": "resources/templates/page/take-away.html.twig",
    "chars": 2315,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block javascripts %}\n    <script src=\"https://cdn.jsdelivr.net/npm/vue/dist/vue"
  },
  {
    "path": "resources/templates/page/update-client.html.twig",
    "chars": 1857,
    "preview": "{% extends 'base_resto.html.twig' %}\n\n{% block body -%}\n    <div class=\"card\">\n        <div class=\"card-content\">\n      "
  },
  {
    "path": "resources/translations/EasyAdminBundle.fr.xlf",
    "chars": 488,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<xliff xmlns=\"urn:oasis:names:tc:xliff:document:1.2\" version=\"1.2\">\n  <file sourc"
  },
  {
    "path": "resources/translations/messages.fr.yaml",
    "chars": 1565,
    "preview": "\"delivery\": Livraison\n\"take-away\": À emporter\n\"error-notEmpty\": Ce champs est obligatoire\n\"error-string\": Ce champs doit"
  },
  {
    "path": "src/Seat/Domain/Basket/Entity/Basket.php",
    "chars": 1174,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Entity;\n\nuse Seat\\Domain\\Basket\\Model\\BasketProduct;\n\nclass"
  },
  {
    "path": "src/Seat/Domain/Basket/Entity/BasketRepository.php",
    "chars": 413,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Entity;\n\nuse Seat\\Domain\\Basket\\Model\\BasketProduct;\n\ninter"
  },
  {
    "path": "src/Seat/Domain/Basket/Model/BasketProduct.php",
    "chars": 1719,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Model;\n\nclass BasketProduct\n{\n    private $name;\n    privat"
  },
  {
    "path": "src/Seat/Domain/Basket/Model/BasketProductOption.php",
    "chars": 424,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Model;\n\nclass BasketProductOption\n{\n    private $name;\n    "
  },
  {
    "path": "src/Seat/Domain/Basket/Model/BasketProductSupplement.php",
    "chars": 428,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Model;\n\nclass BasketProductSupplement\n{\n    private $name;\n"
  },
  {
    "path": "src/Seat/Domain/Basket/Model/OrderType.php",
    "chars": 1273,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Model;\n\n\nclass OrderType\n{\n//type: take-away | delivery\n//i"
  },
  {
    "path": "src/Seat/Domain/Basket/Model/OrderTypeName.php",
    "chars": 265,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Model;\n\nclass OrderTypeName\n{\n    static $takeAway = 'take-"
  },
  {
    "path": "src/Seat/Domain/Basket/Model/PossibleOrderType.php",
    "chars": 626,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Model;\n\nuse Seat\\SharedKernel\\Model\\TimeRange;\n\nclass Possi"
  },
  {
    "path": "src/Seat/Domain/Basket/Service/Error/DeliveryNotAvailable.php",
    "chars": 178,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Service\\Error;\n\nclass DeliveryNotAvailable extends \\Excepti"
  },
  {
    "path": "src/Seat/Domain/Basket/Service/Error/OrderTooLate.php",
    "chars": 162,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Service\\Error;\n\nclass OrderTooLate extends \\Exception\n{\n   "
  },
  {
    "path": "src/Seat/Domain/Basket/Service/Error/TakeAwayNotAvailable.php",
    "chars": 179,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Service\\Error;\n\nclass TakeAwayNotAvailable extends \\Excepti"
  },
  {
    "path": "src/Seat/Domain/Basket/Service/Error/TakeAwayTooLate.php",
    "chars": 169,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Service\\Error;\n\nclass TakeAwayTooLate extends \\Exception\n{\n"
  },
  {
    "path": "src/Seat/Domain/Basket/Service/OrderTypeChecker.php",
    "chars": 3715,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\Service;\n\nuse DateInterval;\nuse DateTimeZone;\nuse Seat\\Doma"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasket.php",
    "chars": 5272,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\AddProductToBasket;\n\nuse Assert\\Assert;\nuse Assert\\"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasketPresenter.php",
    "chars": 205,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\AddProductToBasket;\n\ninterface AddProductToBasketPr"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasketRequest.php",
    "chars": 957,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\AddProductToBasket;\n\nclass AddProductToBasketReques"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/AddProductToBasket/AddProductToBasketResponse.php",
    "chars": 863,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\AddProductToBasket;\n\nuse Seat\\Domain\\Basket\\Model\\B"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasket.php",
    "chars": 650,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\RemoveFromBasket;\n\nuse Seat\\Domain\\Basket\\Entity\\Ba"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasketPresenter.php",
    "chars": 199,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\RemoveFromBasket;\n\ninterface RemoveFromBasketPresen"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasketRequest.php",
    "chars": 299,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\RemoveFromBasket;\n\nclass RemoveFromBasketRequest\n{\n"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/RemoveFromBasket/RemoveFromBasketResponse.php",
    "chars": 338,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\RemoveFromBasket;\n\nclass RemoveFromBasketResponse\n{"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasket.php",
    "chars": 622,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\ShowBasket;\n\nuse Seat\\Domain\\Basket\\Entity\\BasketRe"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasketPresenter.php",
    "chars": 181,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\ShowBasket;\n\ninterface ShowBasketPresenter\n{\n    pu"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasketRequest.php",
    "chars": 217,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\ShowBasket;\n\nclass ShowBasketRequest\n{\n    public $"
  },
  {
    "path": "src/Seat/Domain/Basket/UseCase/ShowBasket/ShowBasketResponse.php",
    "chars": 396,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Basket\\UseCase\\ShowBasket;\n\nuse Seat\\Domain\\Basket\\Entity\\Basket;\n"
  },
  {
    "path": "src/Seat/Domain/Client/Entity/Client.php",
    "chars": 1860,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\Entity;\n\nclass Client\n{\n    private $firstName;\n    private"
  },
  {
    "path": "src/Seat/Domain/Client/Entity/ClientRepository.php",
    "chars": 325,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\Entity;\n\ninterface ClientRepository\n{\n    public function a"
  },
  {
    "path": "src/Seat/Domain/Client/Entity/Company.php",
    "chars": 1241,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\Entity;\n\nclass Company\n{\n    private $id;\n    private $name"
  },
  {
    "path": "src/Seat/Domain/Client/Entity/CompanyRepository.php",
    "chars": 294,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\Entity;\n\ninterface CompanyRepository\n{\n    public function "
  },
  {
    "path": "src/Seat/Domain/Client/Entity/Role.php",
    "chars": 265,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\Entity;\n\nclass Role\n{\n    static $client = 'client';\n    st"
  },
  {
    "path": "src/Seat/Domain/Client/Entity/Store.php",
    "chars": 230,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\Entity;\n\nclass Store\n{\n    static $laHulpe = 'la-hulpe';\n  "
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/GetClient/GetClient.php",
    "chars": 664,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\GetClient;\n\nuse Seat\\Domain\\Client\\Entity\\ClientRep"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/GetClient/GetClientPresenter.php",
    "chars": 178,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\GetClient;\n\ninterface GetClientPresenter\n{\n    publ"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/GetClient/GetClientRequest.php",
    "chars": 230,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\GetClient;\n\nclass GetClientRequest\n{\n    public $cl"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/GetClient/GetClientResponse.php",
    "chars": 365,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\GetClient;\n\nuse Seat\\Domain\\Client\\Entity\\Client;\n\n"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Login/Login.php",
    "chars": 2683,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Login;\n\nuse Seat\\Domain\\Client\\Entity\\Client;\nuse S"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Login/LoginPresenter.php",
    "chars": 160,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Login;\n\ninterface LoginPresenter\n{\n    public funct"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Login/LoginRequest.php",
    "chars": 287,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Login;\n\nclass LoginRequest\n{\n    public $email;\n   "
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Login/LoginResponse.php",
    "chars": 758,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Login;\n\nuse Seat\\Domain\\Client\\Entity\\Client;\nuse S"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Register/Register.php",
    "chars": 4579,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Register;\n\nuse Assert\\Assert;\nuse Assert\\LazyAssert"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Register/RegisterPresenter.php",
    "chars": 175,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Register;\n\ninterface RegisterPresenter\n{\n    public"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Register/RegisterRequest.php",
    "chars": 291,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Register;\n\nclass RegisterRequest\n{\n    public $isPo"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/Register/RegisterResponse.php",
    "chars": 740,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\Register;\n\nuse Seat\\Domain\\Client\\Entity\\Client;\nus"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClient.php",
    "chars": 3129,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\UpdateClient;\n\nuse Assert\\Assert;\nuse Assert\\LazyAs"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientPresenter.php",
    "chars": 181,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\UpdateClient;\n\ninterface UpdateClientPresenter\n{\n  "
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientRequest.php",
    "chars": 806,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\UpdateClient;\n\nuse Seat\\Presentation\\Client\\Editabl"
  },
  {
    "path": "src/Seat/Domain/Client/UseCase/UpdateClient/UpdateClientResponse.php",
    "chars": 1558,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Client\\UseCase\\UpdateClient;\n\nuse Seat\\Domain\\Client\\Entity\\Client"
  },
  {
    "path": "src/Seat/Domain/Cms/Entity/HtmlContent.php",
    "chars": 394,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Cms\\Entity;\n\nclass HtmlContent\n{\n    private $name;\n    private $h"
  },
  {
    "path": "src/Seat/Domain/Cms/Entity/HtmlContentRepository.php",
    "chars": 160,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Cms\\Entity;\n\ninterface HtmlContentRepository\n{\n    public function"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/Category.php",
    "chars": 578,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\nclass Category\n{\n    private $id;\n    private $name;"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/CategoryRepository.php",
    "chars": 242,
    "preview": "<?php declare(strict_types=1);\n\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\ninterface CategoryRepository\n{\n    /**\n     * @retu"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/Product.php",
    "chars": 893,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\nclass Product\n{\n    private $id;\n    private $name;\n"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/ProductOption.php",
    "chars": 717,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\nclass ProductOption\n{\n    private $id;\n    private $"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/ProductOptionRepository.php",
    "chars": 391,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\ninterface ProductOptionRepository\n{\n    /**\n     * @"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/ProductRepository.php",
    "chars": 304,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\n\ninterface ProductRepository\n{\n    public function a"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/ProductSupplement.php",
    "chars": 721,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\nclass ProductSupplement\n{\n    private $id;\n    priva"
  },
  {
    "path": "src/Seat/Domain/Menu/Entity/ProductSupplementRepository.php",
    "chars": 356,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Entity;\n\ninterface ProductSupplementRepository\n{\n    public f"
  },
  {
    "path": "src/Seat/Domain/Menu/Model/MenuLine.php",
    "chars": 1250,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Model;\n\nclass MenuLine\n{\n    private $name;\n    private $desc"
  },
  {
    "path": "src/Seat/Domain/Menu/Model/MenuOption.php",
    "chars": 540,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Model;\n\nclass MenuOption\n{\n    private $id;\n    private $name"
  },
  {
    "path": "src/Seat/Domain/Menu/Model/MenuProduct.php",
    "chars": 723,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Model;\n\nclass MenuProduct\n{\n    private $id;\n    private $nam"
  },
  {
    "path": "src/Seat/Domain/Menu/Model/MenuSupplement.php",
    "chars": 544,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\Model;\n\nclass MenuSupplement\n{\n    private $id;\n    private $"
  },
  {
    "path": "src/Seat/Domain/Menu/UseCase/GetMenu/GetMenu.php",
    "chars": 2952,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\UseCase\\GetMenu;\n\nuse Seat\\Domain\\Menu\\Entity\\Category;\nuse S"
  },
  {
    "path": "src/Seat/Domain/Menu/UseCase/GetMenu/GetMenuPresenter.php",
    "chars": 170,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\UseCase\\GetMenu;\n\ninterface GetMenuPresenter\n{\n    public fun"
  },
  {
    "path": "src/Seat/Domain/Menu/UseCase/GetMenu/GetMenuResponse.php",
    "chars": 306,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Menu\\UseCase\\GetMenu;\n\nuse Seat\\Domain\\Menu\\Model\\MenuLine;\n\nclass"
  },
  {
    "path": "src/Seat/Domain/Order/Entity/Command.php",
    "chars": 994,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Order\\Entity;\n\nuse DateTimeImmutable;\nuse Seat\\Domain\\Basket\\Entit"
  },
  {
    "path": "src/Seat/Domain/Order/Entity/CommandRepository.php",
    "chars": 235,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Order\\Entity;\n\ninterface CommandRepository\n{\n    /**\n     * @retur"
  },
  {
    "path": "src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasket.php",
    "chars": 3949,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Order\\UseCase\\ConfirmBasket;\n\nuse DateTimeImmutable;\nuse Exception"
  },
  {
    "path": "src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketPresenter.php",
    "chars": 189,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Order\\UseCase\\ConfirmBasket;\n\ninterface ConfirmBasketPresenter\n{\n "
  },
  {
    "path": "src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketRequest.php",
    "chars": 436,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Order\\UseCase\\ConfirmBasket;\n\nclass ConfirmBasketRequest\n{\n    pub"
  },
  {
    "path": "src/Seat/Domain/Order/UseCase/ConfirmBasket/ConfirmBasketResponse.php",
    "chars": 516,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Seat\\Domain\\Order\\UseCase\\ConfirmBasket;\n\nuse Seat\\SharedKernel\\Error\\Notifica"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/AddToBasketController.php",
    "chars": 1280,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony4\\Security\\User;\nuse Symfony4\\View\\AddProduct"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/AdminController.php",
    "chars": 4792,
    "preview": "<?php\ndeclare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Infrastructure\\Persistence\\Command;\nuse Doctrine\\ORM"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/BusinessLunchController.php",
    "chars": 413,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/ContactController.php",
    "chars": 386,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/HomeController.php",
    "chars": 588,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/LoginCheckController.php",
    "chars": 342,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\n/**\n * "
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/LoginController.php",
    "chars": 888,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/LogoutController.php",
    "chars": 311,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\n/**\n * "
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/MenuSalleController.php",
    "chars": 397,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/RegisterCompleteController.php",
    "chars": 444,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/RegisterController.php",
    "chars": 1084,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony\\Component\\HttpFoundation\\Request;\nuse Symfon"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/RemoveFromBasketController.php",
    "chars": 1213,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony4\\Security\\User;\nuse Symfony4\\View\\RemoveFrom"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/ShowBasketController.php",
    "chars": 1770,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Seat\\Domain\\Basket\\UseCase\\ShowBasket\\ShowBasket;\nus"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/ShowOrderMenuController.php",
    "chars": 715,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Seat\\Domain\\Menu\\UseCase\\GetMenu\\GetMenu;\nuse Seat\\P"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Controller/UpdateClientController.php",
    "chars": 1823,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Controller;\n\nuse Symfony4\\Security\\User;\nuse Symfony4\\View\\UpdateClie"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/DependencyInjection/Compiler/AdminFilterRolePass.php",
    "chars": 1162,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\DependencyInjection\\Compiler;\n\nuse EasyCorp\\Bundle\\EasyAdminBundle\\Co"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/DependencyInjection/Compiler/AutowireSeatPass.php",
    "chars": 918,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\DependencyInjection\\Compiler;\n\nuse ReflectionClass;\nuse Symfony\\Compo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/Basket.php",
    "chars": 897,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\ORM\\Mapping as ORM;\n\n/**\n * Class BusinessLun"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/BasketProductJson.php",
    "chars": 2116,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Seat\\Domain\\Basket\\Model\\BasketProduct;\nuse Seat\\Domai"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/Category.php",
    "chars": 2053,
    "preview": "<?php\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\Common\\Collections\\ArrayCollection;\nuse Doctrine\\ORM\\Mapping as ORM;\nu"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/CategoryOption.php",
    "chars": 2284,
    "preview": "<?php\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Validator\\Constraints as Asse"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/CategorySupplement.php",
    "chars": 2229,
    "preview": "<?php\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Validator\\Constraints as Asse"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/Command.php",
    "chars": 2618,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Seat\\Domain\\Basket\\Mo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/Company.php",
    "chars": 7252,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Val"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineBasketRepository.php",
    "chars": 2141,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Symfony4\\Doctrine\\Basket as BasketEntity;\nuse Doctrine"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineCategoryRepository.php",
    "chars": 1096,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Error;\nuse Symfony4\\Doctrine\\Category as CategoryEntit"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineClientRepository.php",
    "chars": 3291,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Symfony4\\Doctrine\\Company;\nuse Symfony4\\Doctrine\\User;"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineCommandRepository.php",
    "chars": 1463,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Symfony4\\Doctrine\\Command as CommandEntity;\nuse Doctri"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineCompanyRepository.php",
    "chars": 1898,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Symfony4\\Doctrine\\Company as CompanyEntity;\nuse Doctri"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineHtmlContentRepository.php",
    "chars": 1113,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Symfony4\\Doctrine\\HtmlContent as HtmlContentEntity;\nus"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineProductOptionRepository.php",
    "chars": 1758,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\Bundle\\DoctrineBundle\\Repository\\ServiceEntit"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineProductRepository.php",
    "chars": 1807,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Symfony4\\Doctrine\\Product as ProductEntity;\nuse Doctri"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/DoctrineProductSupplementRepository.php",
    "chars": 1812,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\Bundle\\DoctrineBundle\\Repository\\ServiceEntit"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/HtmlContent.php",
    "chars": 920,
    "preview": "<?php\n\nnamespace Symfony4\\Doctrine;\n\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Validator\\Constraints as As"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/Pdf.php",
    "chars": 1322,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Htt"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/Product.php",
    "chars": 3270,
    "preview": "<?php\n\n\nnamespace Symfony4\\Doctrine;\n\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Validator\\Constraints as A"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/Tournee.php",
    "chars": 956,
    "preview": "<?php\n\n\nnamespace Symfony4\\Doctrine;\n\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Validator\\Constraints as A"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Doctrine/User.php",
    "chars": 3175,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Doctrine;\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Component\\Val"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Form/BasketConfirmationType.php",
    "chars": 2484,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Form;\n\nuse Seat\\Domain\\Basket\\Model\\OrderTypeName;\nuse Seat\\Domain\\Ba"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Form/BasketType.php",
    "chars": 1345,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Form;\n\nuse Seat\\Domain\\Basket\\UseCase\\AddProductToBasket\\AddProductTo"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Form/FormHelper.php",
    "chars": 622,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Form;\n\nuse Symfony\\Component\\Form\\FormFactoryInterface;\nuse Symfony\\C"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Form/RegisterType.php",
    "chars": 1554,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Form;\n\nuse Seat\\Domain\\Client\\Entity\\Store;\nuse Seat\\Domain\\Client\\Us"
  },
  {
    "path": "src/Seat/Infrastructure/Symfony4/Form/UpdateClientType.php",
    "chars": 810,
    "preview": "<?php declare(strict_types=1);\n\nnamespace Symfony4\\Form;\n\nuse Seat\\Presentation\\Client\\EditableClient;\nuse Symfony\\Compo"
  }
]

// ... and 68 more files (download for full content)

About this extraction

This page contains the full source code of the Nikoms/clean-architecture-example GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 268 files (859.4 KB), approximately 237.7k tokens, and a symbol index with 1002 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!