text: """The Bond integration."""
  import asyncio
  
  from bond import Bond
  
  from homeassistant.config_entries import ConfigEntry
  from homeassistant.const import CONF_ACCESS_TOKEN, CONF_HOST
  from homeassistant.core import HomeAssistant
  
  from .const import DOMAIN
  
  PLATFORMS = ["cover", "fan"]
  
  
  async def async_setup(hass: HomeAssistant, config: dict):
      """Set up the Bond component."""
      hass.data.setdefault(DOMAIN, {})
      return True
  
  
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
      """Set up Bond from a config entry."""
      host = entry.data[CONF_HOST]
      token = entry.data[CONF_ACCESS_TOKEN]
  
      hass.data[DOMAIN][entry.entry_id] = Bond(bondIp=host, bondToken=token)
  
      for component in PLATFORMS:
          hass.async_create_task(
              hass.config_entries.async_forward_entry_setup(entry, component)
          )
  
      return True
  
  
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
      """Unload a config entry."""
      unload_ok = all(
          await asyncio.gather(
              *[
                  hass.config_entries.async_forward_entry_unload(entry, component)
                  for component in PLATFORMS
              ]
          )
      )
  
      if unload_ok:
          hass.data[DOMAIN].pop(entry.entry_id)
  
      return unload_ok
  