code: def get_zones(input_list):
    
    if not input_list:
      return []
  
    output_list = []
  
    for zone in input_list:
      if zone.endswith('*'):
        prefix = zone[:-1]
        output_list.extend([z for z in _ZONES if z.startswith(prefix)])
      else:
        output_list.append(zone)
  
    return output_list
docs: Returns a list of zones based on any wildcard input.
  
    This function is intended to provide an easy method for producing a list
    of desired zones for a pipeline to run in.
  
    The Pipelines API default zone list is "any zone". The problem with
    "any zone" is that it can lead to incurring Cloud Storage egress charges
    if the GCE zone selected is in a different region than the GCS bucket.
    See https://cloud.google.com/storage/pricing#network-egress.
  
    A user with a multi-region US bucket would want to pipelines to run in
    a "us-*" zone.
    A user with a regional bucket in US would want to restrict pipelines to
    run in a zone in that region.
  
    Rarely does the specific zone matter for a pipeline.
  
    This function allows for a simple short-hand such as:
       [ "us-*" ]
       [ "us-central1-*" ]
    These examples will expand out to the full list of US and us-central1 zones
    respectively.
  
    Args:
      input_list: list of zone names/patterns
  
    Returns:
      A list of zones, with any wildcard zone specifications expanded.