code: def insert_after_indices(origin_list, indices, new_items):
      r"""
      Insert items to origin_list after given indices.
  
      :param list origin_list:
      :param list indices:
      :param list new_items:
      :return list:
      """
  
      assert isinstance(
          indices, list
      ), f"Indices should be `list`, not `{type(indices)}`."
      assert isinstance(
          new_items, list
      ), f"New_items should be `list`, not `{type(new_items)}`."
      assert len(indices) == len(new_items), (
          f"Indices length `{len(indices)}` and items length `{len(new_items)}'"
          f" should be the same."
      )
      new_items = copy.deepcopy(new_items)
  
      if len(origin_list) == 0:
          return handle_empty_insertion(new_items)
  
      insert_items = []
      for index, new_item in enumerate(new_items):
          if not isinstance(new_item, list):
              new_item = [new_item]
          items = [origin_list[indices[index]]]
          items.extend(new_item)
          insert_items.append(items)
  
      return _replace_at_scopes(origin_list, indices, insert_items)
  
imports: import copy
  import random
  from .logger import logger
label_desc: Use image node_id 11 for calling a global function with example usage: insert_after_indices(origin_list, indices, new_items) and returns: _replace_at_scopes, handle_empty_insertion