<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ResolveMulti(self, subject, attributes, timestamp=None, limit=None):
 """Resolves multiple attributes at once for one subject."""

    for attribute in attributes:
      query, args = self._BuildQuery(subject, attribute, timestamp, limit)
      result, _ = self.ExecuteQuery(query, args)

      for row in result:
        value = self._Decode(attribute, row["value"])

        yield (attribute, value, row["timestamp"])

      if limit:
        limit -= len(result)

      if limit is not None and limit <= 0:
        break