code: def dedupe_all_lists(obj, exclude_keys=()):
      
      squared_dedupe_len = 10
      if isinstance(obj, dict):
          new_obj = {}
          for key, value in obj.items():
              if key in exclude_keys:
                  new_obj[key] = value
              else:
                  new_obj[key] = dedupe_all_lists(value)
          return new_obj
      elif isinstance(obj, (list, tuple, set)):
          new_elements = [dedupe_all_lists(v) for v in obj]
          if len(new_elements) < squared_dedupe_len:
              new_obj = dedupe_list(new_elements)
          else:
              new_obj = dedupe_list_of_dicts(new_elements)
          return type(obj)(new_obj)
      else:
          return obj
docs: Recursively remove duplucates from all lists.
  
      Args:
          obj: collection to deduplicate
          exclude_keys (Container[str]): key names to ignore for deduplication