code: def _first_owner(self, name):
          
          owner = None
          unowned = []
          pieces = normalize_name(name).split('.')
          while pieces and is_none_or_zero_address(owner):
              name = '.'.join(pieces)
              owner = self.owner(name)
              if is_none_or_zero_address(owner):
                  unowned.append(pieces.pop(0))
          return (owner, unowned, name)
docs: Takes a name, and returns the owner of the deepest subdomain that has an owner
  
          :returns: (owner or None, list(unowned_subdomain_labels), first_owned_domain)