code: def msm_alignment_path(
      x: np.ndarray,
      y: np.ndarray,
      return_cost_matrix: bool = False,
      c: float = 1.0,
      window: float = None,
      itakura_max_slope: float = None,
      bounding_matrix: np.ndarray = None,
      **kwargs: dict,
  ) -> AlignmentPathReturn:
      """Compute the move-split-merge alignment path.
  
      This metric uses as building blocks three fundamental operations: Move, Split,
      and Merge. A Move operation changes the value of a single element, a Split
      operation converts a single element into two consecutive elements, and a Merge
      operation merges two consecutive elements into one. Each operation has an
      associated cost, and the MSM distance between two time series is defined to be
      the cost of the cheapest sequence of operations that transforms the first time
      series into the second one.
  
      Parameters
      ----------
      x: np.ndarray (1d or 2d array)
          First time series.
      y: np.ndarray (1d or 2d array)
          Second time series.
      return_cost_matrix: bool, defaults = False
          Boolean that when true will also return the cost matrix.
      c: float, default = 1.0
          Cost for split or merge operation.
      window: float, defaults = None
          Float that is the radius of the sakoe chiba window (if using Sakoe-Chiba
          lower bounding). Must be between 0 and 1.
      itakura_max_slope: float, defaults = None
          Gradient of the slope for itakura parallelogram (if using Itakura
          Parallelogram lower bounding). Must be between 0 and 1.
      bounding_matrix: np.ndarray (2d array of shape (m1,m2)), defaults = None
          Custom bounding matrix to use. If defined then other lower_bounding params
          are ignored. The matrix should be structure so that indexes considered in
          bound should be the value 0. and indexes outside the bounding matrix should
          be infinity.
      kwargs: any
          extra kwargs.
  
      Returns
      -------
      list[tuple]
          List of tuples containing the msm alignment path.
      float
          Msm distance between x and y.
      np.ndarray (of shape (len(x), len(y)).
          Optional return only given if return_cost_matrix = True.
          Cost matrix used to compute the distance.
  
      Raises
      ------
      ValueError
          If the value of x or y provided is not a numpy array.
          If the value of x or y has more than 2 dimensions.
          If a metric string provided, and is not a defined valid string.
          If a metric object (instance of class) is provided and doesn't inherit from
          NumbaDistance.
          If a resolved metric is not no_python compiled.
          If the metric type cannot be determined
      References
      ----------
      .. [1]A.  Stefan,  V.  Athitsos,  and  G.  Das.   The  Move-Split-Merge  metric
      for time  series. IEEE  Transactions  on  Knowledge  and  Data  Engineering,
      25(6):1425–1438, 2013.
      """
      format_kwargs = {
          "c": c,
          "window": window,
          "itakura_max_slope": itakura_max_slope,
          "bounding_matrix": bounding_matrix,
      }
      format_kwargs = {**format_kwargs, **kwargs}
  
      return distance_alignment_path(
          x,
          y,
          metric="msm",
          return_cost_matrix=return_cost_matrix,
          **format_kwargs,
      )
  
imports: from typing import Any, Callable, Union
  import numpy
  from sktime.distances._ddtw import _DdtwDistance
  from sktime.distances._dtw import _DtwDistance
  from sktime.distances._edr import _EdrDistance
  from sktime.distances._erp import _ErpDistance
  from sktime.distances._euclidean import _EuclideanDistance
  from sktime.distances._lcss import _LcssDistance
  from sktime.distances._msm import _MsmDistance
  from sktime.distances._resolve_metric import _resolve_dist_instance, _resolve_metric_to_factory
  from sktime.distances._squared import _SquaredDistance
  from sktime.distances._twe import _TweDistance
  from sktime.distances._wddtw import _WddtwDistance
  from sktime.distances._wdtw import _WdtwDistance
  from sktime.distances.base import AlignmentPathReturn, DistanceAlignmentPathCallable, DistanceCallable, MetricInfo, NumbaDistance
label_desc: Use image node_id 19 for calling a global function with example usage: msm_alignment_path(x, y, return_cost_matrix, c, window, itakura_max_slope, bounding_matrix) and returns: distance_alignment_path