code: def merge_dicts(dict1: dict, dict2: dict) -> dict:
      """
      Merge two dicts recursively, returning new dict (input dict is not mutated).
  
      Lists are not concatenated. Items in dict2 overwrite those also found in dict1.
      """
      merged = dict1.copy()
      for k, v in dict2.items():
          if k in merged and isinstance(v, dict):
              merged[k] = merge_dicts(merged.get(k, {}), v)
          else:
              merged[k] = v
      return merged
  
imports: from __future__ import annotations
  import copy
  import itertools
  import re
  import signal
  import warnings
  from datetime import datetime
  from functools import reduce
  from typing import TYPE_CHECKING, Any, Callable, Generator, Iterable, Mapping, MutableMapping, TypeVar, cast
  from lazy_object_proxy import Proxy
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException, RemovedInAirflow3Warning
  from airflow.utils.module_loading import import_string
  from airflow.utils.types import NOTSET
label_desc: Use image node_id 14 for calling a global function with example usage: merge_dicts(dict1, dict2) and returns: merged