code: def match_ci_width(
      mean: np.ndarray,
      variance: np.ndarray,
      transform: Callable[[np.ndarray], np.ndarray],
      level: float = 0.95,
  ) -> np.ndarray:
      fac = norm.ppf(1 - (1 - level) / 2)
      d = fac * np.sqrt(variance)
      width_asym = transform(mean + d) - transform(mean - d)
      new_mean = transform(mean)
      new_variance = (width_asym / 2 / fac) ** 2
      # pyre-fixme[7]: Expected `ndarray` but got `Tuple[ndarray, float]`.
      return new_mean, new_variance
  
imports: from __future__ import annotations
  from logging import Logger
  from typing import Callable, List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from ax.core.observation import Observation, ObservationData, ObservationFeatures
  from ax.core.optimization_config import OptimizationConfig
  from ax.core.outcome_constraint import OutcomeConstraint
  from ax.core.search_space import SearchSpace
  from ax.modelbridge.transforms.base import Transform
  from ax.models.types import TConfig
  from ax.utils.common.logger import get_logger
  from scipy.stats import norm
label_desc: Use image node_id 1 for calling a global function with example usage: match_ci_width(mean, variance, transform, level) and returns: new_mean,  new_variance