def dict_updater(source: dict, dest: dict) -> dict:
    """
    Updates source dict with target dict values creating
    new dict and returning it
    """
    target = dest.copy()

    for k, v in source.items():
        if isinstance(v, dict) and k in dest:
            target[k] = dict_updater(v, dest[k])
        else:
            target[k] = v
    return target