def METHOD_NAME(
    curve_type: common_pb2.EllipticCurveType,
    ec_point_format: common_pb2.EcPointFormat, hash_type: common_pb2.HashType,
    dem_key_template: tink_pb2.KeyTemplate) -> tink_pb2.KeyTemplate:
  """Creates an ECIES-AEAD-HKDF KeyTemplate, and fills in its values."""
  key_format = ecies_aead_hkdf_pb2.EciesAeadHkdfKeyFormat()
  key_format.params.kem_params.curve_type = curve_type
  key_format.params.kem_params.hkdf_hash_type = hash_type
  key_format.params.dem_params.aead_dem.CopyFrom(dem_key_template)
  key_format.params.ec_point_format = ec_point_format
  key_template = tink_pb2.KeyTemplate()
  key_template.type_url = (
      'type.googleapis.com/google.crypto.tink.EciesAeadHkdfPrivateKey')
  key_template.value = key_format.SerializeToString()
  key_template.output_prefix_type = tink_pb2.TINK
  return key_template