code: def subclasses(cls):
          
          seen = set()
          queue = set([cls])
  
          while queue:
              c = queue.pop()
              seen.add(c)
  
              sc = c.__subclasses__()
              for c in sc:
                  if c not in seen:
                      queue.add(c)
  
          seen.remove(cls)
          return seen
docs: Return a set of all Ent subclasses, recursively.