code: def transitive_dependents_of_addresses(self, addresses):
      
      closure = set()
      result = []
      to_visit = deque(addresses)
  
      while to_visit:
        address = to_visit.popleft()
        if address in closure:
          continue
  
        closure.add(address)
        result.append(address)
        to_visit.extend(self._dependent_address_map[address])
        to_visit.extend(self._implicit_dependent_address_map[address])
  
      return result
docs: Given an iterable of addresses, yield all of those addresses dependents, transitively.