class_docstr: An Overlay consists of multiple Elements (potentially of
  heterogeneous type) presented one on top each other with a
  particular z-ordering.
  
  Overlays along with elements constitute the only valid leaf types of
  a Layout and in fact extend the Layout structure. Overlays are
  constructed using the * operator (building an identical structure
  to the + operator).
code: def clone(
      self,
      data=None,
      shared_data=True,
      new_type=None,
      link=True,
      **overrides,
  ):
      if data is None and link:
          overrides["plot_id"] = self._plot_id
      return super().clone(
          data,
          shared_data=shared_data,
          new_type=new_type,
          link=link,
          **overrides,
      )
  
imports: from functools import reduce
  import numpy
  import param
  from .dimension import Dimension, Dimensioned, ViewableElement, ViewableTree
  from .layout import AdjointLayout, Composable, Layout, Layoutable
  from .ndmapping import UniformNdMapping
  from .util import dimensioned_streams, sanitize_identifier, unique_array
label_desc: Use image node_id 12 for calling the Overlay obj's underlying member method code with example usage: obj.clone(data, shared_data, new_type, link) and returns: super