parameters:
  session.storage.options:
    gc_probability: 1
    gc_divisor: 100
    gc_maxlifetime: 200000
    cookie_lifetime: 2000000
  twig.config:
    debug: false
    auto_reload: null
    cache: true
  renderer.config:
    required_cache_contexts: ['languages:language_interface', 'theme', 'user.permissions']
    auto_placeholder_conditions:
      max-age: 0
      contexts: ['session', 'user']
      tags: []
  factory.keyvalue:
    default: keyvalue.database
  http.response.debug_cacheability_headers: false
  factory.keyvalue.expirable:
    default: keyvalue.expirable.database
  filter_protocols:
    - http
    - https
    - ftp
    - news
    - nntp
    - tel
    - telnet
    - mailto
    - irc
    - ssh
    - sftp
    - webcal
    - rtsp
  cors.config:
    enabled: false
    allowedHeaders: []
    allowedMethods: []
    allowedOrigins: ['*']
    exposedHeaders: false
    maxAge: false
    supportsCredentials: false
services:
  # Simple cache contexts, directly derived from the request context.
  cache_context.ip:
    class: Drupal\Core\Cache\Context\IpCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.headers:
    class: Drupal\Core\Cache\Context\HeadersCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.cookies:
    class: Drupal\Core\Cache\Context\CookiesCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.session:
    class: Drupal\Core\Cache\Context\SessionCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context}
  cache_context.session.exists:
    class: Drupal\Core\Cache\Context\SessionExistsCacheContext
    arguments: ['@session_configuration', '@request_stack']
    tags:
      - { name: cache.context}
  cache_context.request_format:
    class: Drupal\Core\Cache\Context\RequestFormatCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.url:
    class: Drupal\Core\Cache\Context\UrlCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.url.site:
    class: Drupal\Core\Cache\Context\SiteCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.url.path:
    class: Drupal\Core\Cache\Context\PathCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.url.path.parent:
    class: Drupal\Core\Cache\Context\PathParentCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.url.query_args:
    class: Drupal\Core\Cache\Context\QueryArgsCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }
  cache_context.url.query_args.pagers:
    class: Drupal\Core\Cache\Context\PagersCacheContext
    arguments: ['@request_stack']
    tags:
      - { name: cache.context }

  # Complex cache contexts, that depend on the routing system.
  cache_context.route:
    class: Drupal\Core\Cache\Context\RouteCacheContext
    arguments: ['@current_route_match']
    tags:
      - { name: cache.context }
  cache_context.route.name:
    class: Drupal\Core\Cache\Context\RouteNameCacheContext
    arguments: ['@current_route_match']
    tags:
      - { name: cache.context }
  cache_context.route.menu_active_trails:
    class: Drupal\Core\Cache\Context\MenuActiveTrailsCacheContext
    calls:
      - [setContainer, ['@service_container']]
    tags:
      - { name: cache.context }

  # Complex cache contexts, that may be calculated from a combination of
  # multiple aspects of the request context plus additional logic. Hence they
  # are their own roots.
  cache_context.user:
    class: Drupal\Core\Cache\Context\UserCacheContext
    arguments: ['@current_user']
    tags:
      - { name: cache.context}
  cache_context.user.permissions:
    class: Drupal\Core\Cache\Context\AccountPermissionsCacheContext
    arguments: ['@current_user', '@user_permissions_hash_generator']
    tags:
      - { name: cache.context}
  cache_context.user.roles:
    class: Drupal\Core\Cache\Context\UserRolesCacheContext
    arguments: ['@current_user']
    tags:
      - { name: cache.context}
  cache_context.user.is_super_user:
    class: Drupal\Core\Cache\Context\IsSuperUserCacheContext
    arguments: ['@current_user']
    tags:
      - { name: cache.context}
  cache_context.languages:
    class: Drupal\Core\Cache\Context\LanguagesCacheContext
    arguments: ['@language_manager']
    tags:
      - { name: cache.context}
  cache_context.theme:
    class: Drupal\Core\Cache\Context\ThemeCacheContext
    arguments: ['@theme.manager']
    tags:
      - { name: cache.context}
  cache_context.timezone:
    class: Drupal\Core\Cache\Context\TimeZoneCacheContext
    tags:
      - { name: cache.context}

  cache_factory:
    class: Drupal\Core\Cache\CacheFactory
    arguments: ['@settings', '%cache_default_bin_backends%']
    calls:
      - [setContainer, ['@service_container']]
  cache_contexts_manager:
    class: Drupal\Core\Cache\Context\CacheContextsManager
    arguments: ['@service_container', '%cache_contexts%' ]
  cache_tags.invalidator:
    parent: container.trait
    class: Drupal\Core\Cache\CacheTagsInvalidator
    calls:
      - [setContainer, ['@service_container']]
    tags:
      - { name: service_collector, call: addInvalidator, tag: cache_tags_invalidator }
  cache_tags.invalidator.checksum:
    class: Drupal\Core\Cache\DatabaseCacheTagsChecksum
    arguments: ['@database']
    tags:
      - { name: cache_tags_invalidator}
  cache.backend.chainedfast:
    class: Drupal\Core\Cache\ChainedFastBackendFactory
    arguments: ['@settings']
    calls:
      - [setContainer, ['@service_container']]
  cache.backend.database:
    class: Drupal\Core\Cache\DatabaseBackendFactory
    arguments: ['@database', '@cache_tags.invalidator.checksum']
  cache.backend.apcu:
    class: Drupal\Core\Cache\ApcuBackendFactory
    arguments: ['@app.root', '@site.path', '@cache_tags.invalidator.checksum']
  cache.backend.php:
    class: Drupal\Core\Cache\PhpBackendFactory
    arguments: ['@cache_tags.invalidator.checksum']
  cache.backend.memory:
    class: Drupal\Core\Cache\MemoryBackendFactory
  # A special cache bin that does not persist beyond the length of the request.
  cache.static:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin, default_backend: cache.backend.memory }
    factory: cache_factory:get
    arguments: [static]
  cache.bootstrap:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin, default_backend: cache.backend.chainedfast }
    factory: cache_factory:get
    arguments: [bootstrap]
  cache.config:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin, default_backend: cache.backend.chainedfast }
    factory: cache_factory:get
    arguments: [config]
  cache.default:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory: cache_factory:get
    arguments: [default]
  cache.entity:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory: cache_factory:get
    arguments: [entity]
  cache.menu:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory: cache_factory:get
    arguments: [menu]
  cache.render:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory: cache_factory:get
    arguments: [render]
  cache.data:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory: cache_factory:get
    arguments: [data]
  cache.discovery:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin, default_backend: cache.backend.chainedfast }
    factory: cache_factory:get
    arguments: [discovery]
  cache_router_rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\CacheRouterRebuildSubscriber
    tags:
      - { name: event_subscriber }
  page_cache_request_policy:
    class: Drupal\Core\PageCache\DefaultRequestPolicy
    arguments: ['@session_configuration']
    tags:
      - { name: service_collector, tag: page_cache_request_policy, call: addPolicy}
  page_cache_response_policy:
    class: Drupal\Core\PageCache\ChainResponsePolicy
    tags:
      - { name: service_collector, tag: page_cache_response_policy, call: addPolicy}
    lazy: true
  page_cache_kill_switch:
    class: Drupal\Core\PageCache\ResponsePolicy\KillSwitch
    tags:
      - { name: page_cache_response_policy }
      - { name: dynamic_page_cache_response_policy }
  page_cache_no_cache_routes:
    class: Drupal\Core\PageCache\ResponsePolicy\DenyNoCacheRoutes
    arguments: ['@current_route_match']
    public: false
    tags:
      - { name: page_cache_response_policy }
      - { name: dynamic_page_cache_response_policy }
  page_cache_no_server_error:
    class: Drupal\Core\PageCache\ResponsePolicy\NoServerError
    public: false
    tags:
      - { name: page_cache_response_policy }
      - { name: dynamic_page_cache_response_policy }
  config.manager:
    class: Drupal\Core\Config\ConfigManager
    arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher']
  config.factory:
    class: Drupal\Core\Config\ConfigFactory
    tags:
      - { name: event_subscriber }
      - { name: service_collector, tag: 'config.factory.override', call: addOverride }
    arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
  config.importer_subscriber:
    class: Drupal\Core\Config\Importer\FinalMissingContentSubscriber
    tags:
      - { name: event_subscriber }
  config.installer:
    class: Drupal\Core\Config\ConfigInstaller
    arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
    lazy: true
  config.storage:
    class: Drupal\Core\Config\CachedStorage
    arguments: ['@config.storage.active', '@cache.config']
  config.storage.active:
    class: Drupal\Core\Config\DatabaseStorage
    arguments: ['@database', 'config']
    public: false
    tags:
      - { name: backend_overridable }
  # @deprecated in Drupal 8.0.x and will be removed before 9.0.0. Use
  #   config.storage.sync instead.
  config.storage.staging:
    class: Drupal\Core\Config\FileStorage
    factory: Drupal\Core\Config\FileStorageFactory::getSync
  config.storage.sync:
    alias: config.storage.staging
  config.storage.snapshot:
    class: Drupal\Core\Config\DatabaseStorage
    arguments: ['@database', config_snapshot]
    tags:
      - { name: backend_overridable }
  config.storage.schema:
    class: Drupal\Core\Config\ExtensionInstallStorage
    arguments: ['@config.storage', 'config/schema']
  config.typed:
    class: Drupal\Core\Config\TypedConfigManager
    arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery', '@module_handler']
    tags:
      - { name: plugin_manager_cache_clear }
  context.handler:
    class: Drupal\Core\Plugin\Context\ContextHandler
    arguments: ['@typed_data_manager']
  context.repository:
    class: Drupal\Core\Plugin\Context\LazyContextRepository
    arguments: ['@service_container']
  cron:
    class: Drupal\Core\Cron
    arguments: ['@module_handler', '@lock', '@queue', '@state', '@account_switcher', '@logger.channel.cron', '@plugin.manager.queue_worker']
    lazy: true
  diff.formatter:
    class: Drupal\Core\Diff\DiffFormatter
    arguments: ['@config.factory']
  database:
    class: Drupal\Core\Database\Connection
    factory: Drupal\Core\Database\Database::getConnection
    arguments: [default]
  file_system:
    class: Drupal\Core\File\FileSystem
    arguments: ['@stream_wrapper_manager', '@settings', '@logger.channel.file']
  form_builder:
    class: Drupal\Core\Form\FormBuilder
    arguments: ['@form_validator', '@form_submitter', '@form_cache', '@module_handler', '@event_dispatcher', '@request_stack', '@class_resolver', '@element_info', '@theme.manager', '@?csrf_token']
  form_validator:
    class: Drupal\Core\Form\FormValidator
    arguments: ['@request_stack', '@string_translation', '@csrf_token', '@logger.channel.form', '@form_error_handler']
  form_submitter:
    class: Drupal\Core\Form\FormSubmitter
    arguments: ['@request_stack', '@url_generator']
  form_error_handler:
    class: Drupal\Core\Form\FormErrorHandler
  form_cache:
    class: Drupal\Core\Form\FormCache
    arguments: ['@app.root', '@keyvalue.expirable', '@module_handler', '@current_user', '@csrf_token', '@logger.channel.form', '@request_stack', '@page_cache_request_policy']
    public: false  # Private to form_builder
  keyvalue:
    class: Drupal\Core\KeyValueStore\KeyValueFactory
    arguments: ['@service_container', '%factory.keyvalue%']
  keyvalue.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
    arguments: ['@serialization.phpserialize', '@database']
  keyvalue.expirable:
    class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
    arguments: ['@service_container', '%factory.keyvalue.expirable%']
  keyvalue.expirable.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
    arguments: ['@serialization.phpserialize', '@database']
  logger.factory:
    class: Drupal\Core\Logger\LoggerChannelFactory
    parent: container.trait
    tags:
      - { name: service_collector, tag: logger, call: addLogger }
  logger.channel_base:
    abstract: true
    class: Drupal\Core\Logger\LoggerChannel
    factory: logger.factory:get
  logger.channel.default:
    parent: logger.channel_base
    arguments: ['system']
  logger.channel.php:
    parent: logger.channel_base
    arguments: ['php']
  logger.channel.image:
    parent: logger.channel_base
    arguments: ['image']
  logger.channel.cron:
    parent: logger.channel_base
    arguments: ['cron']
  logger.channel.file:
    class: Drupal\Core\Logger\LoggerChannel
    factory: logger.factory:get
    arguments: ['file']
  logger.channel.form:
    parent: logger.channel_base
    arguments: ['form']
  logger.log_message_parser:
    class: Drupal\Core\Logger\LogMessageParser

  serialization.json:
    class: Drupal\Component\Serialization\Json
  serialization.phpserialize:
    class: Drupal\Component\Serialization\PhpSerialize
  serialization.yaml:
    class: Drupal\Component\Serialization\Yaml

  settings:
    class: Drupal\Core\Site\Settings
    factory: Drupal\Core\Site\Settings::getInstance
  state:
    class: Drupal\Core\State\State
    arguments: ['@keyvalue']
  queue:
    class: Drupal\Core\Queue\QueueFactory
    arguments: ['@settings']
    calls:
      - [setContainer, ['@service_container']]
  queue.database:
    class: Drupal\Core\Queue\QueueDatabaseFactory
    arguments: ['@database']
  path.alias_whitelist:
    class: Drupal\Core\Path\AliasWhitelist
    tags:
      - { name: needs_destruction }
    arguments: [path_alias_whitelist, '@cache.bootstrap', '@lock', '@state', '@path.alias_storage']
  path.alias_manager:
    class: Drupal\Core\Path\AliasManager
    arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
  path.current:
    class: Drupal\Core\Path\CurrentPathStack
    arguments: ['@request_stack']
  http_handler_stack:
    class: GuzzleHttp\HandlerStack
    public: false
    factory: GuzzleHttp\HandlerStack::create
    configurator: ['@http_handler_stack_configurator', configure]
  http_handler_stack_configurator:
    class: Drupal\Core\Http\HandlerStackConfigurator
    public: false
    arguments: ['@service_container']
  http_client:
    class: GuzzleHttp\Client
    factory: http_client_factory:fromOptions
  http_client_factory:
    class: Drupal\Core\Http\ClientFactory
    arguments: ['@http_handler_stack']
  theme.negotiator:
    class: Drupal\Core\Theme\ThemeNegotiator
    arguments: ['@access_check.theme']
    tags:
      - { name: service_collector, tag: theme_negotiator, call: addNegotiator }
  theme.negotiator.default:
    class: Drupal\Core\Theme\DefaultNegotiator
    arguments: ['@config.factory']
    tags:
      - { name: theme_negotiator, priority: -100 }
  theme.negotiator.ajax_base_page:
    class: Drupal\Core\Theme\AjaxBasePageNegotiator
    arguments: ['@csrf_token', '@config.factory', '@request_stack']
    tags:
      - { name: theme_negotiator, priority: 1000 }
  container.namespaces:
    class: ArrayObject
    arguments: [ '%container.namespaces%' ]
  container.trait:
    abstract: true
    calls:
      - [setContainer, ['@service_container']]
  default_plugin_manager:
    abstract: true
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
  module_handler:
    class: Drupal\Core\Extension\ModuleHandler
    arguments: ['@app.root', '%container.modules%', '@cache.bootstrap']
  module_installer:
    class: Drupal\Core\Extension\ModuleInstaller
    tags:
      - { name: service_collector, tag: 'module_install.uninstall_validator', call: addUninstallValidator }
    arguments: ['@app.root', '@module_handler', '@kernel', '@router.builder']
    lazy: true
  content_uninstall_validator:
    class: Drupal\Core\Entity\ContentUninstallValidator
    tags:
      - { name: module_install.uninstall_validator }
    arguments: ['@entity.manager', '@string_translation']
    lazy: true
  field_uninstall_validator:
    class: Drupal\Core\Field\FieldModuleUninstallValidator
    tags:
      - { name: module_install.uninstall_validator }
    arguments: ['@entity.manager', '@string_translation']
    lazy: true
  required_module_uninstall_validator:
    class: Drupal\Core\Extension\RequiredModuleUninstallValidator
    tags:
      - { name: module_install.uninstall_validator }
    arguments: ['@string_translation']
    lazy: true
  theme_handler:
    class: Drupal\Core\Extension\ThemeHandler
    arguments: ['@app.root', '@config.factory', '@module_handler', '@state', '@info_parser']
  theme_installer:
    class: Drupal\Core\Extension\ThemeInstaller
    arguments: ['@theme_handler', '@config.factory', '@config.installer', '@module_handler', '@config.manager', '@asset.css.collection_optimizer', '@router.builder', '@logger.channel.default', '@state']
  # @deprecated in Drupal 8.0.x and will be removed before 9.0.0. Use the other
  #   entity* services instead.
  entity.manager:
    # We cannot set the deprecated property here because many test cases still
    # rely on this service and they would fail with deprecation warnings.
    class: Drupal\Core\Entity\EntityManager
    parent: container.trait
    # @todo Remove this tag in https://www.drupal.org/node/2549143.
    tags:
      - { name: plugin_manager_cache_clear }
  entity_type.manager:
    class: Drupal\Core\Entity\EntityTypeManager
    arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@string_translation', '@class_resolver']
    parent: container.trait
    tags:
      - { name: plugin_manager_cache_clear }
  entity_type.repository:
    class: Drupal\Core\Entity\EntityTypeRepository
    arguments: ['@entity_type.manager']
  entity_type.bundle.info:
    class: Drupal\Core\Entity\EntityTypeBundleInfo
    arguments: ['@entity_type.manager', '@language_manager', '@module_handler', '@typed_data_manager', '@cache.discovery']
  entity.repository:
    class: Drupal\Core\Entity\EntityRepository
    arguments: ['@entity_type.manager', '@language_manager']
  entity_display.repository:
    class: Drupal\Core\Entity\EntityDisplayRepository
    arguments: ['@entity_type.manager', '@module_handler', '@cache.discovery', '@language_manager']
  entity_field.manager:
    class: Drupal\Core\Entity\EntityFieldManager
    arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_display.repository', '@typed_data_manager', '@language_manager', '@keyvalue', '@module_handler', '@cache.discovery']
  entity_type.listener:
    class: Drupal\Core\Entity\EntityTypeListener
    arguments: ['@entity_type.manager', '@entity_field.manager', '@event_dispatcher', '@entity.last_installed_schema.repository']
  entity_bundle.listener:
    class: Drupal\Core\Entity\EntityBundleListener
    arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@module_handler']
  entity_route_subscriber:
    class: Drupal\Core\EventSubscriber\EntityRouteProviderSubscriber
    arguments: ['@entity.manager']
    tags:
      - { name: event_subscriber }
  entity.definition_update_manager:
    class: Drupal\Core\Entity\EntityDefinitionUpdateManager
    arguments: ['@entity.manager']
  entity.last_installed_schema.repository:
    class: Drupal\Core\Entity\EntityLastInstalledSchemaRepository
    arguments: ['@keyvalue']
  field_storage_definition.listener:
    class: Drupal\Core\Field\FieldStorageDefinitionListener
    arguments: ['@entity_type.manager', '@event_dispatcher', '@entity.last_installed_schema.repository', '@entity_field.manager']
  field_definition.listener:
    class: Drupal\Core\Field\FieldDefinitionListener
    arguments: ['@entity_type.manager', '@entity_field.manager', '@keyvalue', '@cache.discovery']
  entity.form_builder:
    class: Drupal\Core\Entity\EntityFormBuilder
    arguments: ['@entity.manager', '@form_builder']
  entity.bundle_config_import_validator:
    class: Drupal\Core\Entity\Event\BundleConfigImportValidate
    arguments: ['@config.manager', '@entity.manager']
    tags:
      - { name: event_subscriber }
  entity.autocomplete_matcher:
    class: Drupal\Core\Entity\EntityAutocompleteMatcher
    arguments: ['@plugin.manager.entity_reference_selection']
  plugin_form.factory:
    class: Drupal\Core\Plugin\PluginFormFactory
    arguments: ['@class_resolver']
  plugin.manager.entity_reference_selection:
    class: Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManager
    parent: default_plugin_manager
  plugin.manager.block:
    class: Drupal\Core\Block\BlockManager
    parent: default_plugin_manager
  plugin.manager.field.field_type:
    class: Drupal\Core\Field\FieldTypePluginManager
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@typed_data_manager']
  plugin.manager.field.widget:
    class: Drupal\Core\Field\WidgetPluginManager
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
  plugin.manager.field.formatter:
    class: Drupal\Core\Field\FormatterPluginManager
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
  plugin.manager.archiver:
    class: Drupal\Core\Archiver\ArchiverManager
    parent: default_plugin_manager
  plugin.manager.action:
    class: Drupal\Core\Action\ActionManager
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
  plugin.manager.menu.link:
    class: Drupal\Core\Menu\MenuLinkManager
    arguments: ['@menu.tree_storage', '@menu_link.static.overrides', '@module_handler']
  menu.link_tree:
    class: Drupal\Core\Menu\MenuLinkTree
    arguments: ['@menu.tree_storage', '@plugin.manager.menu.link', '@router.route_provider', '@menu.active_trail', '@controller_resolver']
  menu.default_tree_manipulators:
    class: Drupal\Core\Menu\DefaultMenuLinkTreeManipulators
    arguments: ['@access_manager', '@current_user', '@entity.query']
  menu.active_trail:
    class: Drupal\Core\Menu\MenuActiveTrail
    arguments: ['@plugin.manager.menu.link', '@current_route_match', '@cache.menu', '@lock']
    tags:
      - { name: needs_destruction }
  menu.parent_form_selector:
    class: Drupal\Core\Menu\MenuParentFormSelector
    arguments: ['@menu.link_tree', '@entity.manager', '@string_translation']
  plugin.manager.menu.local_action:
    class: Drupal\Core\Menu\LocalActionManager
    arguments: ['@controller_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
  plugin.manager.menu.local_task:
    class: Drupal\Core\Menu\LocalTaskManager
    arguments: ['@controller_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
  plugin.manager.menu.contextual_link:
    class: Drupal\Core\Menu\ContextualLinkManager
    arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
  plugin.manager.display_variant:
    class: Drupal\Core\Display\VariantManager
    parent: default_plugin_manager
  plugin.manager.queue_worker:
    class: Drupal\Core\Queue\QueueWorkerManager
    parent: default_plugin_manager
  plugin.cache_clearer:
    class: Drupal\Core\Plugin\CachedDiscoveryClearer
    lazy: true
  paramconverter.menu_link:
    class: Drupal\Core\ParamConverter\MenuLinkPluginConverter
    tags:
      - { name: paramconverter }
    arguments: ['@plugin.manager.menu.link']
    lazy: true
  menu.tree_storage:
    class: Drupal\Core\Menu\MenuTreeStorage
    arguments: ['@database', '@cache.menu', '@cache_tags.invalidator', 'menu_tree']
    public: false  # Private to plugin.manager.menu.link and menu.link_tree
    tags:
      - { name: backend_overridable }
  menu_link.static.overrides:
    class: Drupal\Core\Menu\StaticMenuLinkOverrides
    arguments: ['@config.factory']
  request_stack:
    class: Symfony\Component\HttpFoundation\RequestStack
    tags:
      - { name: persist }
  current_route_match:
     class: Drupal\Core\Routing\CurrentRouteMatch
     arguments: ['@request_stack']
  event_dispatcher:
    class: Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher
    arguments: ['@service_container']
  app.root:
    class: SplString
    factory: app.root.factory:get
    tags:
      - { name: parameter_service }
  app.root.factory:
    class: Drupal\Core\AppRootFactory
    arguments: ['@kernel']
    public: false
  site.path:
    class: SplString
    factory: site.path.factory:get
    tags:
      - { name: parameter_service }
  site.path.factory:
    class: Drupal\Core\SitePathFactory
    arguments: ['@kernel']
    public: false
  controller_resolver:
    class: Drupal\Core\Controller\ControllerResolver
    arguments: ['@psr7.http_message_factory', '@class_resolver']
  class_resolver:
    class: Drupal\Core\DependencyInjection\ClassResolver
    calls:
      - [setContainer, ['@service_container']]
  title_resolver:
    class: Drupal\Core\Controller\TitleResolver
    arguments: ['@controller_resolver', '@string_translation']
  http_kernel:
    class: Stack\StackedHttpKernel
  http_kernel.basic:
    class: Symfony\Component\HttpKernel\HttpKernel
    arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
  http_middleware.negotiation:
    class: Drupal\Core\StackMiddleware\NegotiationMiddleware
    tags:
      - { name: http_middleware, priority: 400 }
  http_middleware.reverse_proxy:
    class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
    arguments: ['@settings']
    tags:
      - { name: http_middleware, priority: 300 }
  http_middleware.kernel_pre_handle:
    class: Drupal\Core\StackMiddleware\KernelPreHandle
    arguments: ['@kernel']
    tags:
      - { name: http_middleware, priority: 100 }
  http_middleware.session:
    class: Drupal\Core\StackMiddleware\Session
    tags:
      - { name: http_middleware, priority: 50 }
    calls:
      - [setContainer, ['@service_container']]
  http_middleware.cors:
     class: Asm89\Stack\Cors
     arguments: ['%cors.config%']
     tags:
       - { name: http_middleware }
  psr7.http_foundation_factory:
    class: Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory
  psr7.http_message_factory:
    class: Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory
  language_manager:
    class: Drupal\Core\Language\LanguageManager
    arguments: ['@language.default']
  language.current_language_context:
    class: Drupal\Core\Language\ContextProvider\CurrentLanguageContext
    arguments: ['@language_manager']
    tags:
      - { name: 'context_provider' }
  language.default:
    class: Drupal\Core\Language\LanguageDefault
    arguments: ['%language.default_values%']
  string_translator.custom_strings:
    class: Drupal\Core\StringTranslation\Translator\CustomStrings
    arguments: ['@settings']
    tags:
      - { name: string_translator, priority: 30 }
  string_translation:
    class: Drupal\Core\StringTranslation\TranslationManager
    arguments: ['@language.default']
    tags:
      - { name: service_collector, tag: string_translator, call: addTranslator }
  database.replica:
    class: Drupal\Core\Database\Connection
    factory: Drupal\Core\Database\Database::getConnection
    arguments: [replica]
  typed_data_manager:
    class: Drupal\Core\TypedData\TypedDataManager
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@class_resolver']
    calls:
      - [setValidationConstraintManager, ['@validation.constraint']]
    tags:
      - { name: plugin_manager_cache_clear }
  validation.constraint:
    class: Drupal\Core\Validation\ConstraintManager
    parent: default_plugin_manager
    tags:
      - { name: plugin_manager_cache_clear }
  lock:
    class: Drupal\Core\Lock\DatabaseLockBackend
    arguments: ['@database']
    tags:
      - { name: backend_overridable }
    lazy: true
  lock.persistent:
    class: Drupal\Core\Lock\PersistentDatabaseLockBackend
    arguments: ['@database']
    tags:
      - { name: backend_overridable }
    lazy: true
  router.request_context:
    class: Drupal\Core\Routing\RequestContext
    tags:
      - { name: persist }
    calls:
      - [fromRequestStack, ['@request_stack']]
  router.admin_context:
    class: Drupal\Core\Routing\AdminContext
    arguments: ['@current_route_match']
  router.route_provider:
    class: Drupal\Core\Routing\RouteProvider
    arguments: ['@database', '@state', '@path.current', '@cache.data', '@path_processor_manager', '@cache_tags.invalidator']
    tags:
      - { name: event_subscriber }
      - { name: backend_overridable }
  router.route_provider.lazy_builder:
    class: Drupal\Core\Routing\RouteProviderLazyBuilder
    arguments: ['@router.route_provider', '@router.builder']
  router.route_preloader:
    class: Drupal\Core\Routing\RoutePreloader
    arguments: ['@router.route_provider', '@state', '@cache.bootstrap']
    tags:
      - { name: 'event_subscriber' }
  router.matcher.final_matcher:
    class: Drupal\Core\Routing\UrlMatcher
    arguments: ['@path.current']
  router.matcher:
    class: Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher
    arguments: ['@router.route_provider']
    calls:
      - [setFinalMatcher, ['@router.matcher.final_matcher']]
    tags:
      - { name: service_collector, tag: non_lazy_route_filter, call: addRouteFilter }
  route_filter.lazy_collector:
    class: Drupal\Core\Routing\LazyRouteFilter
    tags:
      - { name: non_lazy_route_filter }
    parent: container.trait
  route_filter_subscriber:
    class: Drupal\Core\EventSubscriber\RouteFilterSubscriber
    arguments: ['@route_filter.lazy_collector']
    tags:
      - { name: event_subscriber }
  url_generator.non_bubbling:
    class: Drupal\Core\Routing\UrlGenerator
    arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@request_stack', '%filter_protocols%']
    public: false
    calls:
      - [setContext, ['@?router.request_context']]
  url_generator:
    class: Drupal\Core\Render\MetadataBubblingUrlGenerator
    arguments: ['@url_generator.non_bubbling', '@renderer']
    calls:
      - [setContext, ['@?router.request_context']]
  redirect.destination:
    class: Drupal\Core\Routing\RedirectDestination
    arguments: ['@request_stack', '@url_generator']
  unrouted_url_assembler:
    class: Drupal\Core\Utility\UnroutedUrlAssembler
    arguments: ['@request_stack', '@path_processor_manager', '%filter_protocols%']
  link_generator:
    class: Drupal\Core\Utility\LinkGenerator
    arguments: ['@url_generator', '@module_handler', '@renderer']
  router:
    class: Drupal\Core\Routing\AccessAwareRouter
    arguments: ['@router.no_access_checks', '@access_manager', '@current_user']
  router.dynamic:
    class: Symfony\Cmf\Component\Routing\DynamicRouter
    arguments: ['@router.request_context', '@router.matcher', '@url_generator']
    tags:
      - { name: service_collector, tag: non_lazy_route_enhancer, call: addRouteEnhancer }
  router.no_access_checks:
    class: Symfony\Cmf\Component\Routing\ChainRouter
    calls:
      - [setContext, ['@router.request_context']]
      - [add, ['@router.dynamic']]
  router.path_roots_subscriber:
    class: Drupal\Core\EventSubscriber\PathRootsSubscriber
    arguments: ['@state']
    tags:
      - { name: event_subscriber }
  entity.query:
    class: Drupal\Core\Entity\Query\QueryFactory
    arguments: ['@entity.manager']
    calls:
      - [setContainer, ['@service_container']]
  entity.query.config:
    class: Drupal\Core\Config\Entity\Query\QueryFactory
    arguments: ['@config.factory', '@keyvalue', '@config.manager']
    tags:
      - { name: event_subscriber }
  entity.query.sql:
    class: Drupal\Core\Entity\Query\Sql\QueryFactory
    arguments: ['@database']
    tags:
      - { name: backend_overridable }
  pgsql.entity.query.sql:
    class: Drupal\Core\Entity\Query\Sql\pgsql\QueryFactory
    arguments: ['@database']
  entity.query.null:
    class: Drupal\Core\Entity\Query\Null\QueryFactory
  entity.query.keyvalue:
    class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
    arguments: ['@keyvalue']
  router.dumper:
    class: Drupal\Core\Routing\MatcherDumper
    arguments: ['@database', '@state']
    tags:
      - { name: backend_overridable }
    lazy: true
  router.builder:
    class: Drupal\Core\Routing\RouteBuilder
    arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@access_manager.check_provider']
    lazy: true
    tags:
      - { name: needs_destruction }
  menu.rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\MenuRouterRebuildSubscriber
    arguments: ['@lock', '@plugin.manager.menu.link']
    tags:
      - { name: event_subscriber }
  path.alias_storage:
    class: Drupal\Core\Path\AliasStorage
    arguments: ['@database', '@module_handler']
    tags:
      - { name: backend_overridable }
  path.matcher:
    class: Drupal\Core\Path\PathMatcher
    arguments: ['@config.factory', '@current_route_match']
  path.validator:
    class: Drupal\Core\Path\PathValidator
    arguments: ['@router', '@router.no_access_checks', '@current_user', '@path_processor_manager']

# The argument to the hashing service defined in services.yml, to the
# constructor of PhpassHashedPassword is the log2 number of iterations for
# password stretching.
# @todo increase by 1 every Drupal version in order to counteract increases in
# the speed and power of computers available to crack the hashes. The current
# password hashing method was introduced in Drupal 7 with a log2 count of 15.
  password:
    class: Drupal\Core\Password\PhpassHashedPassword
    arguments: [16]
  request_format_route_filter:
    class: Drupal\Core\Routing\RequestFormatRouteFilter
    tags:
      - { name: route_filter }
  method_filter:
    class: Drupal\Core\Routing\MethodFilter
    tags:
      - { name: route_filter, priority: 1 }
  content_type_header_matcher:
    class: Drupal\Core\Routing\ContentTypeHeaderMatcher
    tags:
      - { name: route_filter }
  paramconverter_manager:
    class: Drupal\Core\ParamConverter\ParamConverterManager
    tags:
      - { name: service_collector, tag: paramconverter, call: addConverter }
  paramconverter_subscriber:
    class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@paramconverter_manager']
  paramconverter.entity:
    class: Drupal\Core\ParamConverter\EntityConverter
    tags:
      - { name: paramconverter }
    arguments: ['@entity.manager']
  paramconverter.entity_revision:
    class: Drupal\Core\ParamConverter\EntityRevisionParamConverter
    tags:
      - { name: paramconverter }
    arguments: ['@entity_type.manager', '@entity.repository']
  paramconverter.configentity_admin:
    class: Drupal\Core\ParamConverter\AdminPathConfigEntityConverter
    tags:
      # Use a higher priority than EntityConverter, see the class for details.
      - { name: paramconverter, priority: 5 }
    arguments: ['@entity.manager', '@config.factory', '@router.admin_context']
    lazy: true
  route_subscriber.module:
    class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
  resolver_manager.entity:
    class: Drupal\Core\Entity\EntityResolverManager
    arguments: ['@entity.manager', '@class_resolver']
  route_subscriber.entity:
    class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@resolver_manager.entity']
  ajax_response.subscriber:
    class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
    arguments: ['@ajax_response.attachments_processor']
    tags:
      - { name: event_subscriber }
  form_ajax_subscriber:
    class: Drupal\Core\Form\EventSubscriber\FormAjaxSubscriber
    arguments: ['@form_ajax_response_builder', '@string_translation']
    tags:
      - { name: event_subscriber }
  route_enhancer.lazy_collector:
    class: Drupal\Core\Routing\LazyRouteEnhancer
    tags:
      - { name: non_lazy_route_enhancer, priority: 5000 }
    parent: container.trait
  route_enhancer_subscriber:
    class: Drupal\Core\EventSubscriber\RouteEnhancerSubscriber
    arguments: ['@route_enhancer.lazy_collector']
    tags:
      - { name: event_subscriber }
  route_enhancer.param_conversion:
    class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
    arguments: ['@paramconverter_manager']
    tags:
      - { name: route_enhancer }
      - { name: event_subscriber }
  route_enhancer.form:
    class: Drupal\Core\Routing\Enhancer\FormRouteEnhancer
    tags:
      - { name: route_enhancer }
  route_enhancer.entity:
    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
    tags:
      - { name: route_enhancer, priority: 20 }
  route_enhancer.entity_revision:
    class: Drupal\Core\Routing\Enhancer\EntityRevisionRouteEnhancer
    tags:
      - { name: route_enhancer }
  route_special_attributes_subscriber:
    class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
    tags:
      - { name: event_subscriber }
  route_http_method_subscriber:
    class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
    tags:
      - { name: event_subscriber }
  psr_response_view_subscriber:
    class: Drupal\Core\EventSubscriber\PsrResponseSubscriber
    arguments: ['@psr7.http_foundation_factory']
    tags:
      - { name: event_subscriber }

  # Main content view subscriber plus the renderers it uses.
  main_content_view_subscriber:
    class: Drupal\Core\EventSubscriber\MainContentViewSubscriber
    arguments: ['@class_resolver', '@current_route_match', '%main_content_renderers%']
    tags:
      - { name: event_subscriber }
  accept_negotiation_406:
    class: Drupal\Core\EventSubscriber\AcceptNegotiation406
    tags:
      - { name: event_subscriber }
  main_content_renderer.html:
    class: Drupal\Core\Render\MainContent\HtmlRenderer
    arguments: ['@title_resolver', '@plugin.manager.display_variant', '@event_dispatcher', '@module_handler', '@renderer', '@render_cache', '%renderer.config%']
    tags:
      - { name: render.main_content_renderer, format: html }
  main_content_renderer.ajax:
    class: Drupal\Core\Render\MainContent\AjaxRenderer
    arguments: ['@element_info']
    tags:
      - { name: render.main_content_renderer, format: drupal_ajax }
      - { name: render.main_content_renderer, format: iframeupload }
  main_content_renderer.dialog:
    class: Drupal\Core\Render\MainContent\DialogRenderer
    arguments: ['@title_resolver']
    tags:
      - { name: render.main_content_renderer, format: drupal_dialog }
  main_content_renderer.modal:
    class: Drupal\Core\Render\MainContent\ModalRenderer
    arguments: ['@title_resolver']
    tags:
      - { name: render.main_content_renderer, format: drupal_modal }
  controller.form:
    class: Drupal\Core\Controller\HtmlFormController
    arguments: ['@controller_resolver', '@form_builder', '@class_resolver']
  controller.entity_form:
    class: Drupal\Core\Entity\HtmlEntityFormController
    arguments: ['@controller_resolver', '@form_builder', '@entity.manager']
  form_ajax_response_builder:
    class: Drupal\Core\Form\FormAjaxResponseBuilder
    arguments: ['@main_content_renderer.ajax', '@current_route_match']
  router_listener:
    class: Symfony\Component\HttpKernel\EventListener\RouterListener
    tags:
      - { name: event_subscriber }
    arguments: ['@router', '@request_stack', '@router.request_context', NULL]
  options_request_listener:
    class: Drupal\Core\EventSubscriber\OptionsRequestSubscriber
    arguments: ['@router.route_provider']
    tags:
      - { name: event_subscriber }
  bare_html_page_renderer:
    class: Drupal\Core\Render\BareHtmlPageRenderer
    arguments: ['@renderer', '@html_response.attachments_processor']
    lazy: true
  private_key:
    class: Drupal\Core\PrivateKey
    arguments: ['@state']
  csrf_token:
    class: Drupal\Core\Access\CsrfTokenGenerator
    arguments: ['@private_key', '@session_manager.metadata_bag']
  access_arguments_resolver_factory:
    class: Drupal\Core\Access\AccessArgumentsResolverFactory
  access_manager:
    class: Drupal\Core\Access\AccessManager
    arguments: ['@router.route_provider', '@paramconverter_manager', '@access_arguments_resolver_factory', '@current_user', '@access_manager.check_provider']
  access_manager.check_provider:
    class: Drupal\Core\Access\CheckProvider
    calls:
      - [setContainer, ['@service_container']]
    public: false
  access_check.default:
    class: Drupal\Core\Access\DefaultAccessCheck
    tags:
      - { name: access_check, applies_to: _access }
  access_check.entity:
    class: Drupal\Core\Entity\EntityAccessCheck
    tags:
      - { name: access_check, applies_to: _entity_access }
  access_check.entity_create:
    class: Drupal\Core\Entity\EntityCreateAccessCheck
    arguments: ['@entity.manager']
    tags:
      - { name: access_check, applies_to: _entity_create_access }
  access_check.entity_create_any:
    class: Drupal\Core\Entity\EntityCreateAnyAccessCheck
    arguments: ['@entity_type.manager', '@entity_type.bundle.info']
    tags:
      - { name: access_check, applies_to: _entity_create_any_access }
  access_check.theme:
    class: Drupal\Core\Theme\ThemeAccessCheck
    arguments: ['@theme_handler']
    tags:
      - { name: access_check, applies_to: _access_theme }
  access_check.custom:
    class: Drupal\Core\Access\CustomAccessCheck
    arguments: ['@controller_resolver', '@access_arguments_resolver_factory']
    tags:
      - { name: access_check, applies_to: _custom_access }
  access_check.csrf:
    class: Drupal\Core\Access\CsrfAccessCheck
    tags:
      - { name: access_check, applies_to: _csrf_token, needs_incoming_request: TRUE }
    arguments: ['@csrf_token']
  access_check.header.csrf:
    class: Drupal\Core\Access\CsrfRequestHeaderAccessCheck
    arguments: ['@session_configuration', '@csrf_token']
    tags:
      - { name: access_check }
  maintenance_mode:
    class: Drupal\Core\Site\MaintenanceMode
    arguments: ['@state', '@current_user']
  maintenance_mode_subscriber:
    class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
    arguments: ['@maintenance_mode', '@config.factory', '@string_translation', '@url_generator', '@current_user', '@bare_html_page_renderer']
    tags:
      - { name: event_subscriber }
  path_subscriber:
    class: Drupal\Core\EventSubscriber\PathSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@path.alias_manager', '@path.current']
  route_access_response_subscriber:
    class: Drupal\Core\EventSubscriber\RouteAccessResponseSubscriber
    tags:
      - { name: event_subscriber }
  client_error_response_subscriber:
    class: Drupal\Core\EventSubscriber\ClientErrorResponseSubscriber
    tags:
      - { name: event_subscriber }
  anonymous_user_response_subscriber:
    class: Drupal\Core\EventSubscriber\AnonymousUserResponseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@current_user']
  ajax_response.attachments_processor:
    class: Drupal\Core\Ajax\AjaxResponseAttachmentsProcessor
    tags:
    arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler']
  html_response.attachments_processor:
    class: Drupal\Core\Render\HtmlResponseAttachmentsProcessor
    tags:
    arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler']
  html_response.subscriber:
    class: Drupal\Core\EventSubscriber\HtmlResponseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@html_response.attachments_processor']
  finish_response_subscriber:
    class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@language_manager', '@config.factory', '@page_cache_request_policy', '@page_cache_response_policy', '@cache_contexts_manager', '%http.response.debug_cacheability_headers%']
  response_generator_subscriber:
    class: Drupal\Core\EventSubscriber\ResponseGeneratorSubscriber
    tags:
      - { name: event_subscriber }
  redirect_response_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
    arguments: ['@unrouted_url_assembler', '@router.request_context']
    tags:
      - { name: event_subscriber }
  redirect_leading_slashes_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectLeadingSlashesSubscriber
    tags:
      - { name: event_subscriber }
  request_close_subscriber:
    class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
  config_import_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@theme_handler']
  config_snapshot_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
  exception.default_json:
    class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
    tags:
      - { name: event_subscriber }
  exception.default_html:
    class: Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks']
  exception.default:
    class: Drupal\Core\EventSubscriber\DefaultExceptionSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory']
  exception.logger:
    class: Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@logger.factory']
  exception.custom_page_json:
    class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@path.alias_manager', '@http_kernel']
  exception.custom_page_html:
    class: Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks', '@access_manager']
  exception.fast_404_html:
    class: Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@http_kernel']
  exception.test_site:
    class: Drupal\Core\EventSubscriber\ExceptionTestSiteSubscriber
    tags:
      - { name: event_subscriber }
  exception.enforced_form_response:
    class: Drupal\Core\EventSubscriber\EnforcedFormResponseSubscriber
    tags:
      - { name: event_subscriber }
  route_processor_manager:
    class: Drupal\Core\RouteProcessor\RouteProcessorManager
    tags:
      - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
  path_processor_manager:
    class: Drupal\Core\PathProcessor\PathProcessorManager
    tags:
      - { name: service_collector, tag: path_processor_inbound, call: addInbound }
      - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
  path_processor_decode:
    class: Drupal\Core\PathProcessor\PathProcessorDecode
    tags:
      - { name: path_processor_inbound, priority: 1000 }
  path_processor_front:
    class: Drupal\Core\PathProcessor\PathProcessorFront
    tags:
      - { name: path_processor_inbound, priority: 200 }
      - { name: path_processor_outbound, priority: 200 }
    arguments: ['@config.factory']
  route_processor_current:
    class: Drupal\Core\RouteProcessor\RouteProcessorCurrent
    arguments: ['@current_route_match']
    tags:
      - { name: route_processor_outbound, priority: 200 }
  path_processor_alias:
    class: Drupal\Core\PathProcessor\PathProcessorAlias
    tags:
      - { name: path_processor_inbound, priority: 100 }
      - { name: path_processor_outbound, priority: 300 }
    arguments: ['@path.alias_manager']
  route_processor_csrf:
    class: Drupal\Core\Access\RouteProcessorCsrf
    tags:
      - { name: route_processor_outbound }
    arguments: ['@csrf_token']
  transliteration:
    class: Drupal\Core\Transliteration\PhpTransliteration
    arguments: [null, '@module_handler']
  flood:
    class: Drupal\Core\Flood\DatabaseBackend
    arguments: ['@database', '@request_stack']
    tags:
      - { name: backend_overridable }
  plugin.manager.mail:
    class: Drupal\Core\Mail\MailManager
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation', '@renderer']
  plugin.manager.condition:
    class: Drupal\Core\Condition\ConditionManager
    parent: default_plugin_manager
  plugin.manager.element_info:
    class: Drupal\Core\Render\ElementInfoManager
    arguments: ['@container.namespaces', '@cache.discovery', '@cache_tags.invalidator', '@module_handler', '@theme.manager']
  stream_wrapper_manager:
    class: Drupal\Core\StreamWrapper\StreamWrapperManager
    calls:
      - [setContainer, ['@service_container']]
  stream_wrapper.public:
    class: Drupal\Core\StreamWrapper\PublicStream
    tags:
      - { name: stream_wrapper, scheme: public }
  stream_wrapper.temporary:
    class: Drupal\Core\StreamWrapper\TemporaryStream
    tags:
      - { name: stream_wrapper, scheme: temporary }
  kernel_destruct_subscriber:
    class: Drupal\Core\EventSubscriber\KernelDestructionSubscriber
    tags:
      - { name: event_subscriber }
    calls:
      - [setContainer, ['@service_container']]
  image.toolkit.manager:
    class: Drupal\Core\ImageToolkit\ImageToolkitManager
    arguments: ['@config.factory']
    parent: default_plugin_manager
    tags:
      - { name: plugin_manager_cache_clear }
  image.toolkit.operation.manager:
    class: Drupal\Core\ImageToolkit\ImageToolkitOperationManager
    arguments: ['@logger.channel.image', '@image.toolkit.manager']
    parent: default_plugin_manager
    tags:
      - { name: plugin_manager_cache_clear }
  image.factory:
    class: Drupal\Core\Image\ImageFactory
    arguments: ['@image.toolkit.manager']
  breadcrumb:
    class: Drupal\Core\Breadcrumb\BreadcrumbManager
    arguments: ['@module_handler']
    tags:
      - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
  token:
    class: Drupal\Core\Utility\Token
    arguments: ['@module_handler', '@cache.discovery', '@language_manager', '@cache_tags.invalidator', '@renderer']
  batch.storage:
    class: Drupal\Core\Batch\BatchStorage
    arguments: ['@database', '@session', '@csrf_token']
    tags:
      - { name: backend_overridable }
    lazy: true
  replica_database_ignore__subscriber:
    class: Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber
    tags:
      - {name: event_subscriber}
  country_manager:
    class: Drupal\Core\Locale\CountryManager
    arguments: ['@module_handler']
  date.formatter:
    class: Drupal\Core\Datetime\DateFormatter
    arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory', '@request_stack']
  feed.bridge.reader:
    class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
    calls:
      - [setContainer, ['@service_container']]
    arguments: ['feed.reader.']
  feed.bridge.writer:
    class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
    calls:
      - [setContainer, ['@service_container']]
    arguments: ['feed.writer.']
# Zend Feed reader plugins. Plugin instances should not be shared.
  feed.reader.dublincoreentry:
    class: Zend\Feed\Reader\Extension\DublinCore\Entry
    shared: false
  feed.reader.dublincorefeed:
    class: Zend\Feed\Reader\Extension\DublinCore\Feed
    shared: false
  feed.reader.contententry:
    class: Zend\Feed\Reader\Extension\Content\Entry
    shared: false
  feed.reader.atomentry:
    class: Zend\Feed\Reader\Extension\Atom\Entry
    shared: false
  feed.reader.atomfeed:
    class: Zend\Feed\Reader\Extension\Atom\Feed
    shared: false
  feed.reader.slashentry:
    class: Zend\Feed\Reader\Extension\Slash\Entry
    shared: false
  feed.reader.wellformedwebentry:
    class: Zend\Feed\Reader\Extension\WellFormedWeb\Entry
    shared: false
  feed.reader.threadentry:
    class: Zend\Feed\Reader\Extension\Thread\Entry
    shared: false
  feed.reader.podcastentry:
    class: Zend\Feed\Reader\Extension\Podcast\Entry
    shared: false
  feed.reader.podcastfeed:
    class: Zend\Feed\Reader\Extension\Podcast\Feed
    shared: false
# Zend Feed writer plugins. Plugins should be set as prototype scope.
  feed.writer.atomrendererfeed:
    class: Zend\Feed\Writer\Extension\Atom\Renderer\Feed
    shared: false
  feed.writer.contentrendererentry:
    class: Zend\Feed\Writer\Extension\Content\Renderer\Entry
    shared: false
  feed.writer.dublincorerendererentry:
    class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Entry
    shared: false
  feed.writer.dublincorerendererfeed:
    class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed
    shared: false
  feed.writer.itunesentry:
    class: Zend\Feed\Writer\Extension\ITunes\Entry
    shared: false
  feed.writer.itunesfeed:
    class: Zend\Feed\Writer\Extension\ITunes\Feed
    shared: false
  feed.writer.itunesrendererentry:
    class: Zend\Feed\Writer\Extension\ITunes\Renderer\Entry
    shared: false
  feed.writer.itunesrendererfeed:
    class: Zend\Feed\Writer\Extension\ITunes\Renderer\Feed
    shared: false
  feed.writer.slashrendererentry:
    class: Zend\Feed\Writer\Extension\Slash\Renderer\Entry
    shared: false
  feed.writer.threadingrendererentry:
    class: Zend\Feed\Writer\Extension\Threading\Renderer\Entry
    shared: false
  feed.writer.wellformedwebrendererentry:
    class: Zend\Feed\Writer\Extension\WellFormedWeb\Renderer\Entry
    shared: false
  theme.manager:
    class: Drupal\Core\Theme\ThemeManager
    arguments: ['@app.root', '@theme.negotiator', '@theme.initialization', '@module_handler']
    calls:
      - [setThemeRegistry, ['@theme.registry']]
  theme.initialization:
    class: Drupal\Core\Theme\ThemeInitialization
    arguments: ['@app.root', '@theme_handler', '@cache.bootstrap', '@module_handler']
  theme.registry:
    class: Drupal\Core\Theme\Registry
    arguments: ['@app.root', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization']
    tags:
      - { name: needs_destruction }
    calls:
      - [setThemeManager, ['@theme.manager']]
  authentication:
    class: Drupal\Core\Authentication\AuthenticationManager
    arguments: ['@authentication_collector']
  authentication_collector:
    class: Drupal\Core\Authentication\AuthenticationCollector
    tags:
      - { name: service_collector, tag: authentication_provider, call: addProvider }
  authentication_subscriber:
    class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
    arguments: ['@authentication', '@current_user']
    tags:
      - { name: event_subscriber }
  account_switcher:
    class: Drupal\Core\Session\AccountSwitcher
    arguments: ['@current_user', '@session_handler.write_safe']
  user_permissions_hash_generator:
    class: Drupal\Core\Session\PermissionsHashGenerator
    arguments: ['@private_key', '@cache.bootstrap', '@cache.static']
  current_user:
    class: Drupal\Core\Session\AccountProxy
  session_configuration:
    class: Drupal\Core\Session\SessionConfiguration
    arguments: ['%session.storage.options%']
  session:
    class: Symfony\Component\HttpFoundation\Session\Session
    arguments: ['@session_manager', '@session.attribute_bag', '@session.flash_bag']
  session.flash_bag:
    class: Symfony\Component\HttpFoundation\Session\Flash\FlashBag
    public: false
  session.attribute_bag:
    class: Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag
    public: false
  session_handler:
    alias: session_handler.storage
  session_handler.storage:
    class: Drupal\Core\Session\SessionHandler
    arguments: ['@request_stack', '@database']
    tags:
      - { name: backend_overridable }
  session_handler.write_check:
    class: Symfony\Component\HttpFoundation\Session\Storage\Handler\WriteCheckSessionHandler
    tags:
      - { name: session_handler_proxy, priority: 100 }
  session_handler.write_safe:
    class: Drupal\Core\Session\WriteSafeSessionHandler
    tags:
      - { name: session_handler_proxy, priority: 150 }
  session_manager:
    class: Drupal\Core\Session\SessionManager
    arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@session_configuration', '@session_handler']
    tags:
      - { name: backend_overridable }
    calls:
      - [setWriteSafeHandler, ['@session_handler.write_safe']]
  session_manager.metadata_bag:
    class: Drupal\Core\Session\MetadataBag
    arguments: ['@settings']
  asset.css.collection_renderer:
    class: Drupal\Core\Asset\CssCollectionRenderer
    arguments: [ '@state' ]
  asset.css.collection_optimizer:
    class: Drupal\Core\Asset\CssCollectionOptimizer
    arguments: [ '@asset.css.collection_grouper', '@asset.css.optimizer', '@asset.css.dumper', '@state' ]
  asset.css.optimizer:
    class: Drupal\Core\Asset\CssOptimizer
  asset.css.collection_grouper:
    class: Drupal\Core\Asset\CssCollectionGrouper
  asset.css.dumper:
    class: Drupal\Core\Asset\AssetDumper
  asset.js.collection_renderer:
    class: Drupal\Core\Asset\JsCollectionRenderer
    arguments: [ '@state' ]
  asset.js.collection_optimizer:
    class: Drupal\Core\Asset\JsCollectionOptimizer
    arguments: [ '@asset.js.collection_grouper', '@asset.js.optimizer', '@asset.js.dumper', '@state' ]
  asset.js.optimizer:
    class: Drupal\Core\Asset\JsOptimizer
  asset.js.collection_grouper:
    class: Drupal\Core\Asset\JsCollectionGrouper
  asset.js.dumper:
    class: Drupal\Core\Asset\AssetDumper
  library.discovery:
    class: Drupal\Core\Asset\LibraryDiscovery
    arguments: ['@library.discovery.collector']
  library.discovery.collector:
    class: Drupal\Core\Asset\LibraryDiscoveryCollector
    arguments: ['@cache.discovery', '@lock', '@library.discovery.parser', '@theme.manager']
    tags:
      - { name: needs_destruction }
  library.discovery.parser:
    class: Drupal\Core\Asset\LibraryDiscoveryParser
    arguments: ['@app.root', '@module_handler', '@theme.manager']
  library.dependency_resolver:
    class: Drupal\Core\Asset\LibraryDependencyResolver
    arguments: ['@library.discovery']
  asset.resolver:
    class: Drupal\Core\Asset\AssetResolver
    arguments: ['@library.discovery', '@library.dependency_resolver', '@module_handler', '@theme.manager', '@language_manager', '@cache.data']
  info_parser:
    class: Drupal\Core\Extension\InfoParser
  twig:
    class: Drupal\Core\Template\TwigEnvironment
    arguments: ['@app.root', '@cache.default', '%twig_extension_hash%', '@twig.loader', '%twig.config%']
    tags:
      - { name: service_collector, tag: 'twig.extension', call: addExtension }
  twig.extension:
    class: Drupal\Core\Template\TwigExtension
    arguments: ['@renderer']
    tags:
      - { name: twig.extension, priority: 100 }
    calls:
      - [setUrlGenerator, ['@url_generator']]
      - [setThemeManager, ['@theme.manager']]
      - [setDateFormatter, ['@date.formatter']]
  # @todo Figure out what to do about debugging functions.
  # @see https://www.drupal.org/node/1804998
  twig.extension.debug:
    class: Twig_Extension_Debug
    tags:
      - { name: twig.extension }
  twig.loader:
    class: Twig_Loader_Chain
    public: false
    tags:
      - { name: service_collector, tag: twig.loader, call: addLoader, required: TRUE }
  twig.loader.filesystem:
    class: Drupal\Core\Template\Loader\FilesystemLoader
    arguments: ['@app.root', '@module_handler', '@theme_handler']
    tags:
      - { name: twig.loader, priority: 100 }
  twig.loader.theme_registry:
    class: Drupal\Core\Template\Loader\ThemeRegistryLoader
    arguments: ['@theme.registry']
    tags:
      - { name: twig.loader, priority: 0 }
  twig.loader.string:
    class: Drupal\Core\Template\Loader\StringLoader
    tags:
      - { name: twig.loader, priority: -100 }
  element_info:
    alias: plugin.manager.element_info
  file.mime_type.guesser:
    class: Drupal\Core\File\MimeType\MimeTypeGuesser
    arguments: ['@stream_wrapper_manager']
    tags:
      - { name: service_collector, tag: mime_type_guesser, call: addGuesser }
    lazy: true
  file.mime_type.guesser.extension:
    class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
    arguments: ['@module_handler']
    tags:
      - { name: mime_type_guesser }
    lazy: true
  # Currently needs to be public as it is called by
  # \Drupal\Core\Render\Element\StatusMessages.
  # @todo Consider making this service private again after
  #   https://www.drupal.org/node/2367555 lands.
  render_placeholder_generator:
    class: Drupal\Core\Render\PlaceholderGenerator
    arguments: ['%renderer.config%']
  render_cache:
    class: Drupal\Core\Render\PlaceholderingRenderCache
    arguments: ['@request_stack', '@cache_factory', '@cache_contexts_manager', '@render_placeholder_generator']
  renderer:
    class: Drupal\Core\Render\Renderer
    arguments: ['@controller_resolver', '@theme.manager', '@plugin.manager.element_info', '@render_placeholder_generator', '@render_cache', '@request_stack', '%renderer.config%']
  early_rendering_controller_wrapper_subscriber:
    class: Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber
    arguments: ['@controller_resolver', '@renderer']
    tags:
      - { name: event_subscriber }
  # Placeholder strategies for rendering placeholders.
  html_response.placeholder_strategy_subscriber:
    class: Drupal\Core\EventSubscriber\HtmlResponsePlaceholderStrategySubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@placeholder_strategy']
  placeholder_strategy:
    class: Drupal\Core\Render\Placeholder\ChainedPlaceholderStrategy
    tags:
      - { name: service_collector, tag: placeholder_strategy, call: addPlaceholderStrategy }
  placeholder_strategy.single_flush:
    class: Drupal\Core\Render\Placeholder\SingleFlushStrategy
    tags:
      - { name: placeholder_strategy, priority: -1000 }
  email.validator:
    class: Egulias\EmailValidator\EmailValidator
  update.post_update_registry:
    class: Drupal\Core\Update\UpdateRegistry
    factory: ['@update.post_update_registry_factory', create]
  update.post_update_registry_factory:
    class: Drupal\Core\Update\UpdateRegistryFactory
    parent: container.trait
  uuid:
    class: Drupal\Component\Uuid\Php
  response_filter.active_link:
    class: Drupal\Core\EventSubscriber\ActiveLinkResponseFilter
    arguments: ['@current_user', '@path.current', '@path.matcher', '@language_manager']
    tags:
      - { name: event_subscriber }
  response_filter.rss.relative_url:
    class: Drupal\Core\EventSubscriber\RssResponseRelativeUrlFilter
    tags:
      - { name: event_subscriber }