docs: def OpenClient(client_id=None, token=None):
    """Opens the client, getting potential approval tokens.
  
    Args:
      client_id: The client id that should be opened.
      token: Token to use to open the client
  
    Returns:
      tuple containing (client, token) objects or (None, None) on if
      no appropriate aproval tokens were found.
    """
    if not token:
      try:
        token = ApprovalFind(client_id, token=token)
      except access_control.UnauthorizedAccess as e:
        logging.debug("No authorization found for access to client: %s", e)
  
    try:
      # Try and open with the token we managed to retrieve or the default.
      client = aff4.FACTORY.Open(
          rdfvalue.RDFURN(client_id), mode="r", token=token)
      return client, token
    except access_control.UnauthorizedAccess:
      logging.warning(
          "Unable to find a valid reason for client %s. You may need "
          "to request approval.", client_id)
      return None, None