All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ets.phenopacket-schema.1.0.0-RC3.source-code.base.pb.cc Maven / Gradle / Ivy

There is a newer version: 2.0.2
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: base.proto

#include "base.pb.h"

#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
// @@protoc_insertion_point(includes)
#include 
extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2ftimestamp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Age_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AgeRange_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Evidence_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalReference_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_HgvsAllele_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_HtsFile_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IscnAllele_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OntologyClass_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Pedigree_Person_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_PhenotypicFeature_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Procedure_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Resource_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpdiAllele_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Update_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<5> scc_info_Variant_base_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_base_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_VcfAllele_base_2eproto;
namespace org {
namespace phenopackets {
namespace schema {
namespace v1 {
namespace core {
class MetaDataDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _MetaData_default_instance_;
class UpdateDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Update_default_instance_;
class ResourceDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Resource_default_instance_;
class OntologyClassDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _OntologyClass_default_instance_;
class PhenotypicFeatureDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
  const ::org::phenopackets::schema::v1::core::Age* age_of_onset_;
  const ::org::phenopackets::schema::v1::core::AgeRange* age_range_of_onset_;
  const ::org::phenopackets::schema::v1::core::OntologyClass* class_of_onset_;
} _PhenotypicFeature_default_instance_;
class EvidenceDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Evidence_default_instance_;
class ExternalReferenceDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _ExternalReference_default_instance_;
class IndividualDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
  const ::org::phenopackets::schema::v1::core::Age* age_at_collection_;
  const ::org::phenopackets::schema::v1::core::AgeRange* age_range_at_collection_;
} _Individual_default_instance_;
class BiosampleDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
  const ::org::phenopackets::schema::v1::core::Age* age_of_individual_at_collection_;
  const ::org::phenopackets::schema::v1::core::AgeRange* age_range_of_individual_at_collection_;
} _Biosample_default_instance_;
class ProcedureDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Procedure_default_instance_;
class AgeDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Age_default_instance_;
class AgeRangeDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _AgeRange_default_instance_;
class DiseaseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
  const ::org::phenopackets::schema::v1::core::Age* age_of_onset_;
  const ::org::phenopackets::schema::v1::core::AgeRange* age_range_of_onset_;
  const ::org::phenopackets::schema::v1::core::OntologyClass* class_of_onset_;
} _Disease_default_instance_;
class Pedigree_PersonDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Pedigree_Person_default_instance_;
class PedigreeDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Pedigree_default_instance_;
class HtsFile_IndividualToSampleIdentifiersEntry_DoNotUseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_default_instance_;
class HtsFileDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _HtsFile_default_instance_;
class GeneDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _Gene_default_instance_;
class VariantDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
  const ::org::phenopackets::schema::v1::core::HgvsAllele* hgvs_allele_;
  const ::org::phenopackets::schema::v1::core::VcfAllele* vcf_allele_;
  const ::org::phenopackets::schema::v1::core::SpdiAllele* spdi_allele_;
  const ::org::phenopackets::schema::v1::core::IscnAllele* iscn_allele_;
} _Variant_default_instance_;
class HgvsAlleleDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _HgvsAllele_default_instance_;
class VcfAlleleDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _VcfAllele_default_instance_;
class SpdiAlleleDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _SpdiAllele_default_instance_;
class IscnAlleleDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance;
} _IscnAllele_default_instance_;
}  // namespace core
}  // namespace v1
}  // namespace schema
}  // namespace phenopackets
}  // namespace org
static void InitDefaultsscc_info_Age_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Age_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Age();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Age::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Age_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Age_base_2eproto}, {}};

static void InitDefaultsscc_info_AgeRange_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_AgeRange_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::AgeRange();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::AgeRange::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AgeRange_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_AgeRange_base_2eproto}, {
      &scc_info_Age_base_2eproto.base,}};

static void InitDefaultsscc_info_Biosample_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Biosample_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Biosample();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Biosample::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<7> scc_info_Biosample_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 7, InitDefaultsscc_info_Biosample_base_2eproto}, {
      &scc_info_OntologyClass_base_2eproto.base,
      &scc_info_PhenotypicFeature_base_2eproto.base,
      &scc_info_Age_base_2eproto.base,
      &scc_info_AgeRange_base_2eproto.base,
      &scc_info_Procedure_base_2eproto.base,
      &scc_info_HtsFile_base_2eproto.base,
      &scc_info_Variant_base_2eproto.base,}};

static void InitDefaultsscc_info_Disease_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Disease_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Disease();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Disease::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Disease_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsscc_info_Disease_base_2eproto}, {
      &scc_info_OntologyClass_base_2eproto.base,
      &scc_info_Age_base_2eproto.base,
      &scc_info_AgeRange_base_2eproto.base,}};

static void InitDefaultsscc_info_Evidence_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Evidence_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Evidence();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Evidence::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Evidence_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsscc_info_Evidence_base_2eproto}, {
      &scc_info_OntologyClass_base_2eproto.base,
      &scc_info_ExternalReference_base_2eproto.base,}};

static void InitDefaultsscc_info_ExternalReference_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_ExternalReference_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::ExternalReference();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::ExternalReference::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalReference_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_ExternalReference_base_2eproto}, {}};

static void InitDefaultsscc_info_Gene_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Gene_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Gene();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Gene::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Gene_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Gene_base_2eproto}, {}};

static void InitDefaultsscc_info_HgvsAllele_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_HgvsAllele_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::HgvsAllele();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::HgvsAllele::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_HgvsAllele_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_HgvsAllele_base_2eproto}, {}};

static void InitDefaultsscc_info_HtsFile_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_HtsFile_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::HtsFile();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::HtsFile::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_HtsFile_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_HtsFile_base_2eproto}, {
      &scc_info_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_base_2eproto.base,}};

static void InitDefaultsscc_info_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse();
  }
  ::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_base_2eproto}, {}};

static void InitDefaultsscc_info_Individual_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Individual_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Individual();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Individual::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Individual_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, InitDefaultsscc_info_Individual_base_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
      &scc_info_Age_base_2eproto.base,
      &scc_info_AgeRange_base_2eproto.base,
      &scc_info_OntologyClass_base_2eproto.base,}};

static void InitDefaultsscc_info_IscnAllele_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_IscnAllele_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::IscnAllele();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::IscnAllele::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IscnAllele_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_IscnAllele_base_2eproto}, {}};

static void InitDefaultsscc_info_MetaData_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_MetaData_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::MetaData();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::MetaData::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_MetaData_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, InitDefaultsscc_info_MetaData_base_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
      &scc_info_Resource_base_2eproto.base,
      &scc_info_Update_base_2eproto.base,
      &scc_info_ExternalReference_base_2eproto.base,}};

static void InitDefaultsscc_info_OntologyClass_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_OntologyClass_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::OntologyClass();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::OntologyClass::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OntologyClass_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_OntologyClass_base_2eproto}, {}};

static void InitDefaultsscc_info_Pedigree_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Pedigree_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Pedigree();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Pedigree::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Pedigree_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_Pedigree_base_2eproto}, {
      &scc_info_Pedigree_Person_base_2eproto.base,}};

static void InitDefaultsscc_info_Pedigree_Person_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Pedigree_Person_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Pedigree_Person();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Pedigree_Person::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Pedigree_Person_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Pedigree_Person_base_2eproto}, {}};

static void InitDefaultsscc_info_PhenotypicFeature_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_PhenotypicFeature_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::PhenotypicFeature();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::PhenotypicFeature::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_PhenotypicFeature_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, InitDefaultsscc_info_PhenotypicFeature_base_2eproto}, {
      &scc_info_OntologyClass_base_2eproto.base,
      &scc_info_Age_base_2eproto.base,
      &scc_info_AgeRange_base_2eproto.base,
      &scc_info_Evidence_base_2eproto.base,}};

static void InitDefaultsscc_info_Procedure_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Procedure_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Procedure();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Procedure::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Procedure_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_Procedure_base_2eproto}, {
      &scc_info_OntologyClass_base_2eproto.base,}};

static void InitDefaultsscc_info_Resource_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Resource_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Resource();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Resource::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Resource_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Resource_base_2eproto}, {}};

static void InitDefaultsscc_info_SpdiAllele_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_SpdiAllele_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::SpdiAllele();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::SpdiAllele::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpdiAllele_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_SpdiAllele_base_2eproto}, {}};

static void InitDefaultsscc_info_Update_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Update_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Update();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Update::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Update_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_Update_base_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}};

static void InitDefaultsscc_info_Variant_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_Variant_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::Variant();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::Variant::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<5> scc_info_Variant_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 5, InitDefaultsscc_info_Variant_base_2eproto}, {
      &scc_info_HgvsAllele_base_2eproto.base,
      &scc_info_VcfAllele_base_2eproto.base,
      &scc_info_SpdiAllele_base_2eproto.base,
      &scc_info_IscnAllele_base_2eproto.base,
      &scc_info_OntologyClass_base_2eproto.base,}};

static void InitDefaultsscc_info_VcfAllele_base_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::org::phenopackets::schema::v1::core::_VcfAllele_default_instance_;
    new (ptr) ::org::phenopackets::schema::v1::core::VcfAllele();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::org::phenopackets::schema::v1::core::VcfAllele::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_VcfAllele_base_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_VcfAllele_base_2eproto}, {}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_base_2eproto[23];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_base_2eproto[4];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_base_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_base_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, created_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, created_by_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, submitted_by_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, resources_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, updates_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, phenopacket_schema_version_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::MetaData, external_references_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Update, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Update, timestamp_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Update, updated_by_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Update, comment_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Resource, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Resource, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Resource, name_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Resource, url_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Resource, version_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Resource, namespace_prefix_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Resource, iri_prefix_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::OntologyClass, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::OntologyClass, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::OntologyClass, label_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, description_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, type_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, negated_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, severity_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, modifiers_),
  offsetof(::org::phenopackets::schema::v1::core::PhenotypicFeatureDefaultTypeInternal, age_of_onset_),
  offsetof(::org::phenopackets::schema::v1::core::PhenotypicFeatureDefaultTypeInternal, age_range_of_onset_),
  offsetof(::org::phenopackets::schema::v1::core::PhenotypicFeatureDefaultTypeInternal, class_of_onset_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, evidence_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::PhenotypicFeature, onset_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Evidence, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Evidence, evidence_code_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Evidence, reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::ExternalReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::ExternalReference, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::ExternalReference, description_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, alternate_ids_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, date_of_birth_),
  offsetof(::org::phenopackets::schema::v1::core::IndividualDefaultTypeInternal, age_at_collection_),
  offsetof(::org::phenopackets::schema::v1::core::IndividualDefaultTypeInternal, age_range_at_collection_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, sex_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, karyotypic_sex_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, taxonomy_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Individual, age_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, individual_id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, description_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, sampled_tissue_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, phenotypic_features_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, taxonomy_),
  offsetof(::org::phenopackets::schema::v1::core::BiosampleDefaultTypeInternal, age_of_individual_at_collection_),
  offsetof(::org::phenopackets::schema::v1::core::BiosampleDefaultTypeInternal, age_range_of_individual_at_collection_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, histological_diagnosis_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, tumor_progression_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, tumor_grade_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, diagnostic_markers_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, procedure_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, hts_files_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, variants_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, is_control_sample_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Biosample, individual_age_at_collection_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Procedure, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Procedure, code_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Procedure, body_site_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Age, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Age, age_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::AgeRange, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::AgeRange, start_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::AgeRange, end_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Disease, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Disease, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Disease, term_),
  offsetof(::org::phenopackets::schema::v1::core::DiseaseDefaultTypeInternal, age_of_onset_),
  offsetof(::org::phenopackets::schema::v1::core::DiseaseDefaultTypeInternal, age_range_of_onset_),
  offsetof(::org::phenopackets::schema::v1::core::DiseaseDefaultTypeInternal, class_of_onset_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Disease, tumor_stage_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Disease, onset_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree_Person, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree_Person, family_id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree_Person, individual_id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree_Person, paternal_id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree_Person, maternal_id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree_Person, sex_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree_Person, affected_status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Pedigree, persons_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile, uri_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile, description_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile, hts_format_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile, genome_assembly_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HtsFile, individual_to_sample_identifiers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Gene, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Gene, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Gene, alternate_ids_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Gene, symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Variant, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Variant, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::org::phenopackets::schema::v1::core::VariantDefaultTypeInternal, hgvs_allele_),
  offsetof(::org::phenopackets::schema::v1::core::VariantDefaultTypeInternal, vcf_allele_),
  offsetof(::org::phenopackets::schema::v1::core::VariantDefaultTypeInternal, spdi_allele_),
  offsetof(::org::phenopackets::schema::v1::core::VariantDefaultTypeInternal, iscn_allele_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Variant, zygosity_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::Variant, allele_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HgvsAllele, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HgvsAllele, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::HgvsAllele, hgvs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, vcf_version_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, genome_assembly_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, chr_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, pos_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, ref_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, alt_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::VcfAllele, info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::SpdiAllele, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::SpdiAllele, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::SpdiAllele, seq_id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::SpdiAllele, position_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::SpdiAllele, deleted_sequence_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::SpdiAllele, inserted_sequence_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::IscnAllele, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::IscnAllele, id_),
  PROTOBUF_FIELD_OFFSET(::org::phenopackets::schema::v1::core::IscnAllele, iscn_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::org::phenopackets::schema::v1::core::MetaData)},
  { 12, -1, sizeof(::org::phenopackets::schema::v1::core::Update)},
  { 20, -1, sizeof(::org::phenopackets::schema::v1::core::Resource)},
  { 31, -1, sizeof(::org::phenopackets::schema::v1::core::OntologyClass)},
  { 38, -1, sizeof(::org::phenopackets::schema::v1::core::PhenotypicFeature)},
  { 53, -1, sizeof(::org::phenopackets::schema::v1::core::Evidence)},
  { 60, -1, sizeof(::org::phenopackets::schema::v1::core::ExternalReference)},
  { 67, -1, sizeof(::org::phenopackets::schema::v1::core::Individual)},
  { 81, -1, sizeof(::org::phenopackets::schema::v1::core::Biosample)},
  { 103, -1, sizeof(::org::phenopackets::schema::v1::core::Procedure)},
  { 110, -1, sizeof(::org::phenopackets::schema::v1::core::Age)},
  { 116, -1, sizeof(::org::phenopackets::schema::v1::core::AgeRange)},
  { 123, -1, sizeof(::org::phenopackets::schema::v1::core::Disease)},
  { 134, -1, sizeof(::org::phenopackets::schema::v1::core::Pedigree_Person)},
  { 145, -1, sizeof(::org::phenopackets::schema::v1::core::Pedigree)},
  { 151, 158, sizeof(::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse)},
  { 160, -1, sizeof(::org::phenopackets::schema::v1::core::HtsFile)},
  { 170, -1, sizeof(::org::phenopackets::schema::v1::core::Gene)},
  { 178, -1, sizeof(::org::phenopackets::schema::v1::core::Variant)},
  { 189, -1, sizeof(::org::phenopackets::schema::v1::core::HgvsAllele)},
  { 196, -1, sizeof(::org::phenopackets::schema::v1::core::VcfAllele)},
  { 209, -1, sizeof(::org::phenopackets::schema::v1::core::SpdiAllele)},
  { 219, -1, sizeof(::org::phenopackets::schema::v1::core::IscnAllele)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_MetaData_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Update_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Resource_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_OntologyClass_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_PhenotypicFeature_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Evidence_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_ExternalReference_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Individual_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Biosample_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Procedure_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Age_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_AgeRange_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Disease_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Pedigree_Person_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Pedigree_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_HtsFile_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Gene_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_Variant_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_HgvsAllele_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_VcfAllele_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_SpdiAllele_default_instance_),
  reinterpret_cast(&::org::phenopackets::schema::v1::core::_IscnAllele_default_instance_),
};

const char descriptor_table_protodef_base_2eproto[] =
  "\n\nbase.proto\022\037org.phenopackets.schema.v1"
  ".core\032\037google/protobuf/timestamp.proto\032\027"
  "validate/validate.proto\"\316\002\n\010MetaData\022+\n\007"
  "created\030\001 \001(\0132\032.google.protobuf.Timestam"
  "p\022\022\n\ncreated_by\030\002 \001(\t\022\024\n\014submitted_by\030\003 "
  "\001(\t\022<\n\tresources\030\004 \003(\0132).org.phenopacket"
  "s.schema.v1.core.Resource\0228\n\007updates\030\005 \003"
  "(\0132\'.org.phenopackets.schema.v1.core.Upd"
  "ate\022\"\n\032phenopacket_schema_version\030\006 \001(\t\022"
  "O\n\023external_references\030\007 \003(\01322.org.pheno"
  "packets.schema.v1.core.ExternalReference"
  "\"f\n\006Update\0227\n\ttimestamp\030\001 \001(\0132\032.google.p"
  "rotobuf.TimestampB\010\372B\005\262\001\002\010\001\022\022\n\nupdated_b"
  "y\030\002 \001(\t\022\017\n\007comment\030\003 \001(\t\"p\n\010Resource\022\n\n\002"
  "id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\013\n\003url\030\003 \001(\t\022\017\n\007v"
  "ersion\030\004 \001(\t\022\030\n\020namespace_prefix\030\005 \001(\t\022\022"
  "\n\niri_prefix\030\006 \001(\t\"*\n\rOntologyClass\022\n\n\002i"
  "d\030\001 \001(\t\022\r\n\005label\030\002 \001(\t\"\223\004\n\021PhenotypicFea"
  "ture\022\023\n\013description\030\001 \001(\t\022<\n\004type\030\002 \001(\0132"
  "..org.phenopackets.schema.v1.core.Ontolo"
  "gyClass\022\017\n\007negated\030\003 \001(\010\022@\n\010severity\030\004 \001"
  "(\0132..org.phenopackets.schema.v1.core.Ont"
  "ologyClass\022A\n\tmodifiers\030\005 \003(\0132..org.phen"
  "opackets.schema.v1.core.OntologyClass\022<\n"
  "\014age_of_onset\030\006 \001(\0132$.org.phenopackets.s"
  "chema.v1.core.AgeH\000\022G\n\022age_range_of_onse"
  "t\030\007 \001(\0132).org.phenopackets.schema.v1.cor"
  "e.AgeRangeH\000\022H\n\016class_of_onset\030\t \001(\0132..o"
  "rg.phenopackets.schema.v1.core.OntologyC"
  "lassH\000\022;\n\010evidence\030\n \003(\0132).org.phenopack"
  "ets.schema.v1.core.EvidenceB\007\n\005onset\"\230\001\n"
  "\010Evidence\022E\n\revidence_code\030\001 \001(\0132..org.p"
  "henopackets.schema.v1.core.OntologyClass"
  "\022E\n\treference\030\002 \001(\01322.org.phenopackets.s"
  "chema.v1.core.ExternalReference\"4\n\021Exter"
  "nalReference\022\n\n\002id\030\001 \001(\t\022\023\n\013description\030"
  "\002 \001(\t\"\267\003\n\nIndividual\022\n\n\002id\030\001 \001(\t\022\025\n\ralte"
  "rnate_ids\030\002 \003(\t\0221\n\rdate_of_birth\030\003 \001(\0132\032"
  ".google.protobuf.Timestamp\022A\n\021age_at_col"
  "lection\030\004 \001(\0132$.org.phenopackets.schema."
  "v1.core.AgeH\000\022L\n\027age_range_at_collection"
  "\030\005 \001(\0132).org.phenopackets.schema.v1.core"
  ".AgeRangeH\000\0221\n\003sex\030\006 \001(\0162$.org.phenopack"
  "ets.schema.v1.core.Sex\022F\n\016karyotypic_sex"
  "\030\007 \001(\0162..org.phenopackets.schema.v1.core"
  ".KaryotypicSex\022@\n\010taxonomy\030\010 \001(\0132..org.p"
  "henopackets.schema.v1.core.OntologyClass"
  "B\005\n\003age\"\352\007\n\tBiosample\022\n\n\002id\030\001 \001(\t\022\025\n\rind"
  "ividual_id\030\002 \001(\t\022\023\n\013description\030\003 \001(\t\022F\n"
  "\016sampled_tissue\030\004 \001(\0132..org.phenopackets"
  ".schema.v1.core.OntologyClass\022O\n\023phenoty"
  "pic_features\030\005 \003(\01322.org.phenopackets.sc"
  "hema.v1.core.PhenotypicFeature\022@\n\010taxono"
  "my\030\006 \001(\0132..org.phenopackets.schema.v1.co"
  "re.OntologyClass\022O\n\037age_of_individual_at"
  "_collection\030\007 \001(\0132$.org.phenopackets.sch"
  "ema.v1.core.AgeH\000\022Z\n%age_range_of_indivi"
  "dual_at_collection\030\010 \001(\0132).org.phenopack"
  "ets.schema.v1.core.AgeRangeH\000\022N\n\026histolo"
  "gical_diagnosis\030\t \001(\0132..org.phenopackets"
  ".schema.v1.core.OntologyClass\022I\n\021tumor_p"
  "rogression\030\n \001(\0132..org.phenopackets.sche"
  "ma.v1.core.OntologyClass\022C\n\013tumor_grade\030"
  "\013 \001(\0132..org.phenopackets.schema.v1.core."
  "OntologyClass\022J\n\022diagnostic_markers\030\014 \003("
  "\0132..org.phenopackets.schema.v1.core.Onto"
  "logyClass\022=\n\tprocedure\030\r \001(\0132*.org.pheno"
  "packets.schema.v1.core.Procedure\022;\n\thts_"
  "files\030\016 \003(\0132(.org.phenopackets.schema.v1"
  ".core.HtsFile\022:\n\010variants\030\017 \003(\0132(.org.ph"
  "enopackets.schema.v1.core.Variant\022\031\n\021is_"
  "control_sample\030\020 \001(\010B\036\n\034individual_age_a"
  "t_collection\"\214\001\n\tProcedure\022<\n\004code\030\001 \001(\013"
  "2..org.phenopackets.schema.v1.core.Ontol"
  "ogyClass\022A\n\tbody_site\030\002 \001(\0132..org.phenop"
  "ackets.schema.v1.core.OntologyClass\"\022\n\003A"
  "ge\022\013\n\003age\030\001 \001(\t\"r\n\010AgeRange\0223\n\005start\030\001 \001"
  "(\0132$.org.phenopackets.schema.v1.core.Age"
  "\0221\n\003end\030\002 \001(\0132$.org.phenopackets.schema."
  "v1.core.Age\"\346\002\n\007Disease\022<\n\004term\030\001 \001(\0132.."
  "org.phenopackets.schema.v1.core.Ontology"
  "Class\022<\n\014age_of_onset\030\002 \001(\0132$.org.phenop"
  "ackets.schema.v1.core.AgeH\000\022G\n\022age_range"
  "_of_onset\030\003 \001(\0132).org.phenopackets.schem"
  "a.v1.core.AgeRangeH\000\022H\n\016class_of_onset\030\004"
  " \001(\0132..org.phenopackets.schema.v1.core.O"
  "ntologyClassH\000\022C\n\013tumor_stage\030\005 \003(\0132..or"
  "g.phenopackets.schema.v1.core.OntologyCl"
  "assB\007\n\005onset\"\366\002\n\010Pedigree\022A\n\007persons\030\001 \003"
  "(\01320.org.phenopackets.schema.v1.core.Ped"
  "igree.Person\032\246\002\n\006Person\022\021\n\tfamily_id\030\001 \001"
  "(\t\022\025\n\rindividual_id\030\002 \001(\t\022\023\n\013paternal_id"
  "\030\003 \001(\t\022\023\n\013maternal_id\030\004 \001(\t\0221\n\003sex\030\005 \001(\016"
  "2$.org.phenopackets.schema.v1.core.Sex\022X"
  "\n\017affected_status\030\006 \001(\0162\?.org.phenopacke"
  "ts.schema.v1.core.Pedigree.Person.Affect"
  "edStatus\";\n\016AffectedStatus\022\013\n\007MISSING\020\000\022"
  "\016\n\nUNAFFECTED\020\001\022\014\n\010AFFECTED\020\002\"\233\003\n\007HtsFil"
  "e\022\013\n\003uri\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022F\n\nh"
  "ts_format\030\003 \001(\01622.org.phenopackets.schem"
  "a.v1.core.HtsFile.HtsFormat\022\027\n\017genome_as"
  "sembly\030\004 \001(\t\022u\n individual_to_sample_ide"
  "ntifiers\030\005 \003(\0132K.org.phenopackets.schema"
  ".v1.core.HtsFile.IndividualToSampleIdent"
  "ifiersEntry\032D\n\"IndividualToSampleIdentif"
  "iersEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028"
  "\001\"P\n\tHtsFormat\022\013\n\007UNKNOWN\020\000\022\007\n\003SAM\020\001\022\007\n\003"
  "BAM\020\002\022\010\n\004CRAM\020\003\022\007\n\003VCF\020\004\022\007\n\003BCF\020\005\022\010\n\004GVC"
  "F\020\006\"9\n\004Gene\022\n\n\002id\030\001 \001(\t\022\025\n\ralternate_ids"
  "\030\002 \003(\t\022\016\n\006symbol\030\003 \001(\t\"\343\002\n\007Variant\022B\n\013hg"
  "vs_allele\030\002 \001(\0132+.org.phenopackets.schem"
  "a.v1.core.HgvsAlleleH\000\022@\n\nvcf_allele\030\003 \001"
  "(\0132*.org.phenopackets.schema.v1.core.Vcf"
  "AlleleH\000\022B\n\013spdi_allele\030\004 \001(\0132+.org.phen"
  "opackets.schema.v1.core.SpdiAlleleH\000\022B\n\013"
  "iscn_allele\030\005 \001(\0132+.org.phenopackets.sch"
  "ema.v1.core.IscnAlleleH\000\022@\n\010zygosity\030\006 \001"
  "(\0132..org.phenopackets.schema.v1.core.Ont"
  "ologyClassB\010\n\006allele\"&\n\nHgvsAllele\022\n\n\002id"
  "\030\001 \001(\t\022\014\n\004hgvs\030\002 \001(\t\"\207\001\n\tVcfAllele\022\023\n\013vc"
  "f_version\030\001 \001(\t\022\027\n\017genome_assembly\030\002 \001(\t"
  "\022\n\n\002id\030\003 \001(\t\022\013\n\003chr\030\004 \001(\t\022\013\n\003pos\030\005 \001(\005\022\013"
  "\n\003ref\030\006 \001(\t\022\013\n\003alt\030\007 \001(\t\022\014\n\004info\030\010 \001(\t\"o"
  "\n\nSpdiAllele\022\n\n\002id\030\001 \001(\t\022\016\n\006seq_id\030\002 \001(\t"
  "\022\020\n\010position\030\003 \001(\005\022\030\n\020deleted_sequence\030\004"
  " \001(\t\022\031\n\021inserted_sequence\030\005 \001(\t\"&\n\nIscnA"
  "llele\022\n\n\002id\030\001 \001(\t\022\014\n\004iscn\030\002 \001(\t*;\n\003Sex\022\017"
  "\n\013UNKNOWN_SEX\020\000\022\n\n\006FEMALE\020\001\022\010\n\004MALE\020\002\022\r\n"
  "\tOTHER_SEX\020\003*\214\001\n\rKaryotypicSex\022\025\n\021UNKNOW"
  "N_KARYOTYPE\020\000\022\006\n\002XX\020\001\022\006\n\002XY\020\002\022\006\n\002XO\020\003\022\007\n"
  "\003XXY\020\004\022\007\n\003XXX\020\005\022\010\n\004XXYY\020\006\022\010\n\004XXXY\020\007\022\010\n\004X"
  "XXX\020\010\022\007\n\003XYY\020\t\022\023\n\017OTHER_KARYOTYPE\020\nB#\n\037o"
  "rg.phenopackets.schema.v1.coreP\001b\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_base_2eproto_deps[2] = {
  &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto,
  &::descriptor_table_validate_2fvalidate_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_base_2eproto_sccs[23] = {
  &scc_info_Age_base_2eproto.base,
  &scc_info_AgeRange_base_2eproto.base,
  &scc_info_Biosample_base_2eproto.base,
  &scc_info_Disease_base_2eproto.base,
  &scc_info_Evidence_base_2eproto.base,
  &scc_info_ExternalReference_base_2eproto.base,
  &scc_info_Gene_base_2eproto.base,
  &scc_info_HgvsAllele_base_2eproto.base,
  &scc_info_HtsFile_base_2eproto.base,
  &scc_info_HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse_base_2eproto.base,
  &scc_info_Individual_base_2eproto.base,
  &scc_info_IscnAllele_base_2eproto.base,
  &scc_info_MetaData_base_2eproto.base,
  &scc_info_OntologyClass_base_2eproto.base,
  &scc_info_Pedigree_base_2eproto.base,
  &scc_info_Pedigree_Person_base_2eproto.base,
  &scc_info_PhenotypicFeature_base_2eproto.base,
  &scc_info_Procedure_base_2eproto.base,
  &scc_info_Resource_base_2eproto.base,
  &scc_info_SpdiAllele_base_2eproto.base,
  &scc_info_Update_base_2eproto.base,
  &scc_info_Variant_base_2eproto.base,
  &scc_info_VcfAllele_base_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_base_2eproto_once;
static bool descriptor_table_base_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_base_2eproto = {
  &descriptor_table_base_2eproto_initialized, descriptor_table_protodef_base_2eproto, "base.proto", 5320,
  &descriptor_table_base_2eproto_once, descriptor_table_base_2eproto_sccs, descriptor_table_base_2eproto_deps, 23, 2,
  schemas, file_default_instances, TableStruct_base_2eproto::offsets,
  file_level_metadata_base_2eproto, 23, file_level_enum_descriptors_base_2eproto, file_level_service_descriptors_base_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_base_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_base_2eproto), true);
namespace org {
namespace phenopackets {
namespace schema {
namespace v1 {
namespace core {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Pedigree_Person_AffectedStatus_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_base_2eproto);
  return file_level_enum_descriptors_base_2eproto[0];
}
bool Pedigree_Person_AffectedStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr Pedigree_Person_AffectedStatus Pedigree_Person::MISSING;
constexpr Pedigree_Person_AffectedStatus Pedigree_Person::UNAFFECTED;
constexpr Pedigree_Person_AffectedStatus Pedigree_Person::AFFECTED;
constexpr Pedigree_Person_AffectedStatus Pedigree_Person::AffectedStatus_MIN;
constexpr Pedigree_Person_AffectedStatus Pedigree_Person::AffectedStatus_MAX;
constexpr int Pedigree_Person::AffectedStatus_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* HtsFile_HtsFormat_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_base_2eproto);
  return file_level_enum_descriptors_base_2eproto[1];
}
bool HtsFile_HtsFormat_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr HtsFile_HtsFormat HtsFile::UNKNOWN;
constexpr HtsFile_HtsFormat HtsFile::SAM;
constexpr HtsFile_HtsFormat HtsFile::BAM;
constexpr HtsFile_HtsFormat HtsFile::CRAM;
constexpr HtsFile_HtsFormat HtsFile::VCF;
constexpr HtsFile_HtsFormat HtsFile::BCF;
constexpr HtsFile_HtsFormat HtsFile::GVCF;
constexpr HtsFile_HtsFormat HtsFile::HtsFormat_MIN;
constexpr HtsFile_HtsFormat HtsFile::HtsFormat_MAX;
constexpr int HtsFile::HtsFormat_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Sex_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_base_2eproto);
  return file_level_enum_descriptors_base_2eproto[2];
}
bool Sex_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* KaryotypicSex_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_base_2eproto);
  return file_level_enum_descriptors_base_2eproto[3];
}
bool KaryotypicSex_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return true;
    default:
      return false;
  }
}


// ===================================================================

void MetaData::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_MetaData_default_instance_._instance.get_mutable()->created_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
      PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
}
class MetaData::HasBitSetters {
 public:
  static const PROTOBUF_NAMESPACE_ID::Timestamp& created(const MetaData* msg);
};

const PROTOBUF_NAMESPACE_ID::Timestamp&
MetaData::HasBitSetters::created(const MetaData* msg) {
  return *msg->created_;
}
void MetaData::clear_created() {
  if (GetArenaNoVirtual() == nullptr && created_ != nullptr) {
    delete created_;
  }
  created_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MetaData::kCreatedFieldNumber;
const int MetaData::kCreatedByFieldNumber;
const int MetaData::kSubmittedByFieldNumber;
const int MetaData::kResourcesFieldNumber;
const int MetaData::kUpdatesFieldNumber;
const int MetaData::kPhenopacketSchemaVersionFieldNumber;
const int MetaData::kExternalReferencesFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MetaData::MetaData()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.MetaData)
}
MetaData::MetaData(const MetaData& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      resources_(from.resources_),
      updates_(from.updates_),
      external_references_(from.external_references_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  created_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.created_by().size() > 0) {
    created_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.created_by_);
  }
  submitted_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.submitted_by().size() > 0) {
    submitted_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.submitted_by_);
  }
  phenopacket_schema_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.phenopacket_schema_version().size() > 0) {
    phenopacket_schema_version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.phenopacket_schema_version_);
  }
  if (from.has_created()) {
    created_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.created_);
  } else {
    created_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.MetaData)
}

void MetaData::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MetaData_base_2eproto.base);
  created_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  submitted_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  phenopacket_schema_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  created_ = nullptr;
}

MetaData::~MetaData() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.MetaData)
  SharedDtor();
}

void MetaData::SharedDtor() {
  created_by_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  submitted_by_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  phenopacket_schema_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete created_;
}

void MetaData::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const MetaData& MetaData::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MetaData_base_2eproto.base);
  return *internal_default_instance();
}


void MetaData::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.MetaData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  resources_.Clear();
  updates_.Clear();
  external_references_.Clear();
  created_by_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  submitted_by_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  phenopacket_schema_version_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && created_ != nullptr) {
    delete created_;
  }
  created_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* MetaData::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .google.protobuf.Timestamp created = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(mutable_created(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string created_by = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_created_by(), ptr, ctx, "org.phenopackets.schema.v1.core.MetaData.created_by");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string submitted_by = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_submitted_by(), ptr, ctx, "org.phenopackets.schema.v1.core.MetaData.submitted_by");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.Resource resources = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_resources(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 34);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.Update updates = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_updates(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 42);
        } else goto handle_unusual;
        continue;
      // string phenopacket_schema_version = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_phenopacket_schema_version(), ptr, ctx, "org.phenopackets.schema.v1.core.MetaData.phenopacket_schema_version");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.ExternalReference external_references = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_external_references(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 58);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool MetaData::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.MetaData)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Timestamp created = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_created()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string created_by = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_created_by()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->created_by().data(), static_cast(this->created_by().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.MetaData.created_by"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string submitted_by = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_submitted_by()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->submitted_by().data(), static_cast(this->submitted_by().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.MetaData.submitted_by"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.Resource resources = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_resources()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.Update updates = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_updates()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string phenopacket_schema_version = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_phenopacket_schema_version()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->phenopacket_schema_version().data(), static_cast(this->phenopacket_schema_version().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.MetaData.phenopacket_schema_version"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.ExternalReference external_references = 7;
      case 7: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (58 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_external_references()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.MetaData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.MetaData)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void MetaData::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.MetaData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Timestamp created = 1;
  if (this->has_created()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::created(this), output);
  }

  // string created_by = 2;
  if (this->created_by().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->created_by().data(), static_cast(this->created_by().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.MetaData.created_by");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->created_by(), output);
  }

  // string submitted_by = 3;
  if (this->submitted_by().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->submitted_by().data(), static_cast(this->submitted_by().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.MetaData.submitted_by");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->submitted_by(), output);
  }

  // repeated .org.phenopackets.schema.v1.core.Resource resources = 4;
  for (unsigned int i = 0,
      n = static_cast(this->resources_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      4,
      this->resources(static_cast(i)),
      output);
  }

  // repeated .org.phenopackets.schema.v1.core.Update updates = 5;
  for (unsigned int i = 0,
      n = static_cast(this->updates_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      5,
      this->updates(static_cast(i)),
      output);
  }

  // string phenopacket_schema_version = 6;
  if (this->phenopacket_schema_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->phenopacket_schema_version().data(), static_cast(this->phenopacket_schema_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.MetaData.phenopacket_schema_version");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->phenopacket_schema_version(), output);
  }

  // repeated .org.phenopackets.schema.v1.core.ExternalReference external_references = 7;
  for (unsigned int i = 0,
      n = static_cast(this->external_references_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      7,
      this->external_references(static_cast(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.MetaData)
}

::PROTOBUF_NAMESPACE_ID::uint8* MetaData::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.MetaData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Timestamp created = 1;
  if (this->has_created()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::created(this), target);
  }

  // string created_by = 2;
  if (this->created_by().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->created_by().data(), static_cast(this->created_by().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.MetaData.created_by");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->created_by(), target);
  }

  // string submitted_by = 3;
  if (this->submitted_by().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->submitted_by().data(), static_cast(this->submitted_by().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.MetaData.submitted_by");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->submitted_by(), target);
  }

  // repeated .org.phenopackets.schema.v1.core.Resource resources = 4;
  for (unsigned int i = 0,
      n = static_cast(this->resources_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->resources(static_cast(i)), target);
  }

  // repeated .org.phenopackets.schema.v1.core.Update updates = 5;
  for (unsigned int i = 0,
      n = static_cast(this->updates_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->updates(static_cast(i)), target);
  }

  // string phenopacket_schema_version = 6;
  if (this->phenopacket_schema_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->phenopacket_schema_version().data(), static_cast(this->phenopacket_schema_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.MetaData.phenopacket_schema_version");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        6, this->phenopacket_schema_version(), target);
  }

  // repeated .org.phenopackets.schema.v1.core.ExternalReference external_references = 7;
  for (unsigned int i = 0,
      n = static_cast(this->external_references_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, this->external_references(static_cast(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.MetaData)
  return target;
}

size_t MetaData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.MetaData)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .org.phenopackets.schema.v1.core.Resource resources = 4;
  {
    unsigned int count = static_cast(this->resources_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->resources(static_cast(i)));
    }
  }

  // repeated .org.phenopackets.schema.v1.core.Update updates = 5;
  {
    unsigned int count = static_cast(this->updates_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->updates(static_cast(i)));
    }
  }

  // repeated .org.phenopackets.schema.v1.core.ExternalReference external_references = 7;
  {
    unsigned int count = static_cast(this->external_references_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->external_references(static_cast(i)));
    }
  }

  // string created_by = 2;
  if (this->created_by().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->created_by());
  }

  // string submitted_by = 3;
  if (this->submitted_by().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->submitted_by());
  }

  // string phenopacket_schema_version = 6;
  if (this->phenopacket_schema_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->phenopacket_schema_version());
  }

  // .google.protobuf.Timestamp created = 1;
  if (this->has_created()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *created_);
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void MetaData::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.MetaData)
  GOOGLE_DCHECK_NE(&from, this);
  const MetaData* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.MetaData)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.MetaData)
    MergeFrom(*source);
  }
}

void MetaData::MergeFrom(const MetaData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.MetaData)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  resources_.MergeFrom(from.resources_);
  updates_.MergeFrom(from.updates_);
  external_references_.MergeFrom(from.external_references_);
  if (from.created_by().size() > 0) {

    created_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.created_by_);
  }
  if (from.submitted_by().size() > 0) {

    submitted_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.submitted_by_);
  }
  if (from.phenopacket_schema_version().size() > 0) {

    phenopacket_schema_version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.phenopacket_schema_version_);
  }
  if (from.has_created()) {
    mutable_created()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from.created());
  }
}

void MetaData::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.MetaData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MetaData::CopyFrom(const MetaData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.MetaData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MetaData::IsInitialized() const {
  return true;
}

void MetaData::Swap(MetaData* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MetaData::InternalSwap(MetaData* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&resources_)->InternalSwap(CastToBase(&other->resources_));
  CastToBase(&updates_)->InternalSwap(CastToBase(&other->updates_));
  CastToBase(&external_references_)->InternalSwap(CastToBase(&other->external_references_));
  created_by_.Swap(&other->created_by_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  submitted_by_.Swap(&other->submitted_by_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  phenopacket_schema_version_.Swap(&other->phenopacket_schema_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(created_, other->created_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MetaData::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Update::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_Update_default_instance_._instance.get_mutable()->timestamp_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
      PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
}
class Update::HasBitSetters {
 public:
  static const PROTOBUF_NAMESPACE_ID::Timestamp& timestamp(const Update* msg);
};

const PROTOBUF_NAMESPACE_ID::Timestamp&
Update::HasBitSetters::timestamp(const Update* msg) {
  return *msg->timestamp_;
}
void Update::clear_timestamp() {
  if (GetArenaNoVirtual() == nullptr && timestamp_ != nullptr) {
    delete timestamp_;
  }
  timestamp_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Update::kTimestampFieldNumber;
const int Update::kUpdatedByFieldNumber;
const int Update::kCommentFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Update::Update()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Update)
}
Update::Update(const Update& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  updated_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.updated_by().size() > 0) {
    updated_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.updated_by_);
  }
  comment_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.comment().size() > 0) {
    comment_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.comment_);
  }
  if (from.has_timestamp()) {
    timestamp_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.timestamp_);
  } else {
    timestamp_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Update)
}

void Update::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Update_base_2eproto.base);
  updated_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  comment_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  timestamp_ = nullptr;
}

Update::~Update() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Update)
  SharedDtor();
}

void Update::SharedDtor() {
  updated_by_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  comment_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete timestamp_;
}

void Update::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Update& Update::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Update_base_2eproto.base);
  return *internal_default_instance();
}


void Update::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Update)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  updated_by_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  comment_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && timestamp_ != nullptr) {
    delete timestamp_;
  }
  timestamp_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Update::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .google.protobuf.Timestamp timestamp = 1 [(.validate.rules) = {
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(mutable_timestamp(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string updated_by = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_updated_by(), ptr, ctx, "org.phenopackets.schema.v1.core.Update.updated_by");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string comment = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_comment(), ptr, ctx, "org.phenopackets.schema.v1.core.Update.comment");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Update::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Update)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Timestamp timestamp = 1 [(.validate.rules) = {
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_timestamp()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string updated_by = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_updated_by()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->updated_by().data(), static_cast(this->updated_by().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Update.updated_by"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string comment = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_comment()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->comment().data(), static_cast(this->comment().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Update.comment"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Update)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Update)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Update::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Update)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Timestamp timestamp = 1 [(.validate.rules) = {
  if (this->has_timestamp()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::timestamp(this), output);
  }

  // string updated_by = 2;
  if (this->updated_by().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->updated_by().data(), static_cast(this->updated_by().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Update.updated_by");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->updated_by(), output);
  }

  // string comment = 3;
  if (this->comment().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->comment().data(), static_cast(this->comment().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Update.comment");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->comment(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Update)
}

::PROTOBUF_NAMESPACE_ID::uint8* Update::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Update)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Timestamp timestamp = 1 [(.validate.rules) = {
  if (this->has_timestamp()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::timestamp(this), target);
  }

  // string updated_by = 2;
  if (this->updated_by().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->updated_by().data(), static_cast(this->updated_by().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Update.updated_by");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->updated_by(), target);
  }

  // string comment = 3;
  if (this->comment().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->comment().data(), static_cast(this->comment().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Update.comment");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->comment(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Update)
  return target;
}

size_t Update::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Update)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string updated_by = 2;
  if (this->updated_by().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->updated_by());
  }

  // string comment = 3;
  if (this->comment().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->comment());
  }

  // .google.protobuf.Timestamp timestamp = 1 [(.validate.rules) = {
  if (this->has_timestamp()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *timestamp_);
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Update::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Update)
  GOOGLE_DCHECK_NE(&from, this);
  const Update* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Update)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Update)
    MergeFrom(*source);
  }
}

void Update::MergeFrom(const Update& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Update)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.updated_by().size() > 0) {

    updated_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.updated_by_);
  }
  if (from.comment().size() > 0) {

    comment_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.comment_);
  }
  if (from.has_timestamp()) {
    mutable_timestamp()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from.timestamp());
  }
}

void Update::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Update)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Update::CopyFrom(const Update& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Update)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Update::IsInitialized() const {
  return true;
}

void Update::Swap(Update* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Update::InternalSwap(Update* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  updated_by_.Swap(&other->updated_by_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  comment_.Swap(&other->comment_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(timestamp_, other->timestamp_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Update::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Resource::InitAsDefaultInstance() {
}
class Resource::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Resource::kIdFieldNumber;
const int Resource::kNameFieldNumber;
const int Resource::kUrlFieldNumber;
const int Resource::kVersionFieldNumber;
const int Resource::kNamespacePrefixFieldNumber;
const int Resource::kIriPrefixFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Resource::Resource()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Resource)
}
Resource::Resource(const Resource& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.name().size() > 0) {
    name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  url_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.url().size() > 0) {
    url_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.url_);
  }
  version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.version().size() > 0) {
    version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.version_);
  }
  namespace_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_prefix().size() > 0) {
    namespace_prefix_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.namespace_prefix_);
  }
  iri_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.iri_prefix().size() > 0) {
    iri_prefix_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.iri_prefix_);
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Resource)
}

void Resource::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Resource_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  url_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  namespace_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  iri_prefix_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

Resource::~Resource() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Resource)
  SharedDtor();
}

void Resource::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  url_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  namespace_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  iri_prefix_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Resource::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Resource& Resource::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Resource_base_2eproto.base);
  return *internal_default_instance();
}


void Resource::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Resource)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  url_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  version_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  namespace_prefix_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  iri_prefix_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Resource::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Resource.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_name(), ptr, ctx, "org.phenopackets.schema.v1.core.Resource.name");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string url = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_url(), ptr, ctx, "org.phenopackets.schema.v1.core.Resource.url");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string version = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_version(), ptr, ctx, "org.phenopackets.schema.v1.core.Resource.version");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string namespace_prefix = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_namespace_prefix(), ptr, ctx, "org.phenopackets.schema.v1.core.Resource.namespace_prefix");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string iri_prefix = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_iri_prefix(), ptr, ctx, "org.phenopackets.schema.v1.core.Resource.iri_prefix");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Resource::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Resource)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Resource.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string name = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->name().data(), static_cast(this->name().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Resource.name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string url = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_url()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->url().data(), static_cast(this->url().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Resource.url"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string version = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_version()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->version().data(), static_cast(this->version().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Resource.version"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace_prefix = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_prefix()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_prefix().data(), static_cast(this->namespace_prefix().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Resource.namespace_prefix"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string iri_prefix = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_iri_prefix()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->iri_prefix().data(), static_cast(this->iri_prefix().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Resource.iri_prefix"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Resource)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Resource)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Resource::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Resource)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string name = 2;
  if (this->name().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast(this->name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.name");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->name(), output);
  }

  // string url = 3;
  if (this->url().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->url().data(), static_cast(this->url().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.url");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->url(), output);
  }

  // string version = 4;
  if (this->version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->version().data(), static_cast(this->version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.version");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->version(), output);
  }

  // string namespace_prefix = 5;
  if (this->namespace_prefix().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_prefix().data(), static_cast(this->namespace_prefix().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.namespace_prefix");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->namespace_prefix(), output);
  }

  // string iri_prefix = 6;
  if (this->iri_prefix().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->iri_prefix().data(), static_cast(this->iri_prefix().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.iri_prefix");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->iri_prefix(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Resource)
}

::PROTOBUF_NAMESPACE_ID::uint8* Resource::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Resource)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string name = 2;
  if (this->name().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast(this->name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.name");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->name(), target);
  }

  // string url = 3;
  if (this->url().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->url().data(), static_cast(this->url().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.url");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->url(), target);
  }

  // string version = 4;
  if (this->version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->version().data(), static_cast(this->version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.version");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        4, this->version(), target);
  }

  // string namespace_prefix = 5;
  if (this->namespace_prefix().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_prefix().data(), static_cast(this->namespace_prefix().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.namespace_prefix");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        5, this->namespace_prefix(), target);
  }

  // string iri_prefix = 6;
  if (this->iri_prefix().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->iri_prefix().data(), static_cast(this->iri_prefix().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Resource.iri_prefix");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        6, this->iri_prefix(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Resource)
  return target;
}

size_t Resource::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Resource)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string name = 2;
  if (this->name().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->name());
  }

  // string url = 3;
  if (this->url().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->url());
  }

  // string version = 4;
  if (this->version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->version());
  }

  // string namespace_prefix = 5;
  if (this->namespace_prefix().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->namespace_prefix());
  }

  // string iri_prefix = 6;
  if (this->iri_prefix().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->iri_prefix());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Resource::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Resource)
  GOOGLE_DCHECK_NE(&from, this);
  const Resource* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Resource)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Resource)
    MergeFrom(*source);
  }
}

void Resource::MergeFrom(const Resource& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Resource)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.name().size() > 0) {

    name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  if (from.url().size() > 0) {

    url_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.url_);
  }
  if (from.version().size() > 0) {

    version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.version_);
  }
  if (from.namespace_prefix().size() > 0) {

    namespace_prefix_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.namespace_prefix_);
  }
  if (from.iri_prefix().size() > 0) {

    iri_prefix_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.iri_prefix_);
  }
}

void Resource::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Resource)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Resource::CopyFrom(const Resource& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Resource)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Resource::IsInitialized() const {
  return true;
}

void Resource::Swap(Resource* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Resource::InternalSwap(Resource* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  url_.Swap(&other->url_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  version_.Swap(&other->version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace_prefix_.Swap(&other->namespace_prefix_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  iri_prefix_.Swap(&other->iri_prefix_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::PROTOBUF_NAMESPACE_ID::Metadata Resource::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OntologyClass::InitAsDefaultInstance() {
}
class OntologyClass::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int OntologyClass::kIdFieldNumber;
const int OntologyClass::kLabelFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

OntologyClass::OntologyClass()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.OntologyClass)
}
OntologyClass::OntologyClass(const OntologyClass& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  label_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.label().size() > 0) {
    label_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.label_);
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.OntologyClass)
}

void OntologyClass::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OntologyClass_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  label_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

OntologyClass::~OntologyClass() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.OntologyClass)
  SharedDtor();
}

void OntologyClass::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  label_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void OntologyClass::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OntologyClass& OntologyClass::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OntologyClass_base_2eproto.base);
  return *internal_default_instance();
}


void OntologyClass::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.OntologyClass)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  label_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* OntologyClass::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.OntologyClass.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string label = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_label(), ptr, ctx, "org.phenopackets.schema.v1.core.OntologyClass.label");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool OntologyClass::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.OntologyClass)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.OntologyClass.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string label = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_label()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->label().data(), static_cast(this->label().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.OntologyClass.label"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.OntologyClass)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.OntologyClass)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void OntologyClass::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.OntologyClass)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.OntologyClass.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string label = 2;
  if (this->label().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->label().data(), static_cast(this->label().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.OntologyClass.label");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->label(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.OntologyClass)
}

::PROTOBUF_NAMESPACE_ID::uint8* OntologyClass::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.OntologyClass)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.OntologyClass.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string label = 2;
  if (this->label().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->label().data(), static_cast(this->label().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.OntologyClass.label");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->label(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.OntologyClass)
  return target;
}

size_t OntologyClass::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.OntologyClass)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string label = 2;
  if (this->label().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->label());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OntologyClass::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.OntologyClass)
  GOOGLE_DCHECK_NE(&from, this);
  const OntologyClass* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.OntologyClass)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.OntologyClass)
    MergeFrom(*source);
  }
}

void OntologyClass::MergeFrom(const OntologyClass& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.OntologyClass)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.label().size() > 0) {

    label_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.label_);
  }
}

void OntologyClass::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.OntologyClass)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OntologyClass::CopyFrom(const OntologyClass& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.OntologyClass)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OntologyClass::IsInitialized() const {
  return true;
}

void OntologyClass::Swap(OntologyClass* other) {
  if (other == this) return;
  InternalSwap(other);
}
void OntologyClass::InternalSwap(OntologyClass* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  label_.Swap(&other->label_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::PROTOBUF_NAMESPACE_ID::Metadata OntologyClass::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhenotypicFeature::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_PhenotypicFeature_default_instance_._instance.get_mutable()->type_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_PhenotypicFeature_default_instance_._instance.get_mutable()->severity_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_PhenotypicFeature_default_instance_.age_of_onset_ = const_cast< ::org::phenopackets::schema::v1::core::Age*>(
      ::org::phenopackets::schema::v1::core::Age::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_PhenotypicFeature_default_instance_.age_range_of_onset_ = const_cast< ::org::phenopackets::schema::v1::core::AgeRange*>(
      ::org::phenopackets::schema::v1::core::AgeRange::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_PhenotypicFeature_default_instance_.class_of_onset_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
}
class PhenotypicFeature::HasBitSetters {
 public:
  static const ::org::phenopackets::schema::v1::core::OntologyClass& type(const PhenotypicFeature* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& severity(const PhenotypicFeature* msg);
  static const ::org::phenopackets::schema::v1::core::Age& age_of_onset(const PhenotypicFeature* msg);
  static const ::org::phenopackets::schema::v1::core::AgeRange& age_range_of_onset(const PhenotypicFeature* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& class_of_onset(const PhenotypicFeature* msg);
};

const ::org::phenopackets::schema::v1::core::OntologyClass&
PhenotypicFeature::HasBitSetters::type(const PhenotypicFeature* msg) {
  return *msg->type_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
PhenotypicFeature::HasBitSetters::severity(const PhenotypicFeature* msg) {
  return *msg->severity_;
}
const ::org::phenopackets::schema::v1::core::Age&
PhenotypicFeature::HasBitSetters::age_of_onset(const PhenotypicFeature* msg) {
  return *msg->onset_.age_of_onset_;
}
const ::org::phenopackets::schema::v1::core::AgeRange&
PhenotypicFeature::HasBitSetters::age_range_of_onset(const PhenotypicFeature* msg) {
  return *msg->onset_.age_range_of_onset_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
PhenotypicFeature::HasBitSetters::class_of_onset(const PhenotypicFeature* msg) {
  return *msg->onset_.class_of_onset_;
}
void PhenotypicFeature::set_allocated_age_of_onset(::org::phenopackets::schema::v1::core::Age* age_of_onset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_onset();
  if (age_of_onset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_of_onset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_of_onset, submessage_arena);
    }
    set_has_age_of_onset();
    onset_.age_of_onset_ = age_of_onset;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.PhenotypicFeature.age_of_onset)
}
void PhenotypicFeature::set_allocated_age_range_of_onset(::org::phenopackets::schema::v1::core::AgeRange* age_range_of_onset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_onset();
  if (age_range_of_onset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_range_of_onset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_range_of_onset, submessage_arena);
    }
    set_has_age_range_of_onset();
    onset_.age_range_of_onset_ = age_range_of_onset;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.PhenotypicFeature.age_range_of_onset)
}
void PhenotypicFeature::set_allocated_class_of_onset(::org::phenopackets::schema::v1::core::OntologyClass* class_of_onset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_onset();
  if (class_of_onset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      class_of_onset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, class_of_onset, submessage_arena);
    }
    set_has_class_of_onset();
    onset_.class_of_onset_ = class_of_onset;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.PhenotypicFeature.class_of_onset)
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int PhenotypicFeature::kDescriptionFieldNumber;
const int PhenotypicFeature::kTypeFieldNumber;
const int PhenotypicFeature::kNegatedFieldNumber;
const int PhenotypicFeature::kSeverityFieldNumber;
const int PhenotypicFeature::kModifiersFieldNumber;
const int PhenotypicFeature::kAgeOfOnsetFieldNumber;
const int PhenotypicFeature::kAgeRangeOfOnsetFieldNumber;
const int PhenotypicFeature::kClassOfOnsetFieldNumber;
const int PhenotypicFeature::kEvidenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

PhenotypicFeature::PhenotypicFeature()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.PhenotypicFeature)
}
PhenotypicFeature::PhenotypicFeature(const PhenotypicFeature& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      modifiers_(from.modifiers_),
      evidence_(from.evidence_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.description().size() > 0) {
    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  if (from.has_type()) {
    type_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.type_);
  } else {
    type_ = nullptr;
  }
  if (from.has_severity()) {
    severity_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.severity_);
  } else {
    severity_ = nullptr;
  }
  negated_ = from.negated_;
  clear_has_onset();
  switch (from.onset_case()) {
    case kAgeOfOnset: {
      mutable_age_of_onset()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_of_onset());
      break;
    }
    case kAgeRangeOfOnset: {
      mutable_age_range_of_onset()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_of_onset());
      break;
    }
    case kClassOfOnset: {
      mutable_class_of_onset()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.class_of_onset());
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.PhenotypicFeature)
}

void PhenotypicFeature::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PhenotypicFeature_base_2eproto.base);
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&type_, 0, static_cast(
      reinterpret_cast(&negated_) -
      reinterpret_cast(&type_)) + sizeof(negated_));
  clear_has_onset();
}

PhenotypicFeature::~PhenotypicFeature() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.PhenotypicFeature)
  SharedDtor();
}

void PhenotypicFeature::SharedDtor() {
  description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete type_;
  if (this != internal_default_instance()) delete severity_;
  if (has_onset()) {
    clear_onset();
  }
}

void PhenotypicFeature::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhenotypicFeature& PhenotypicFeature::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhenotypicFeature_base_2eproto.base);
  return *internal_default_instance();
}


void PhenotypicFeature::clear_onset() {
// @@protoc_insertion_point(one_of_clear_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  switch (onset_case()) {
    case kAgeOfOnset: {
      delete onset_.age_of_onset_;
      break;
    }
    case kAgeRangeOfOnset: {
      delete onset_.age_range_of_onset_;
      break;
    }
    case kClassOfOnset: {
      delete onset_.class_of_onset_;
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONSET_NOT_SET;
}


void PhenotypicFeature::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  modifiers_.Clear();
  evidence_.Clear();
  description_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && type_ != nullptr) {
    delete type_;
  }
  type_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && severity_ != nullptr) {
    delete severity_;
  }
  severity_ = nullptr;
  negated_ = false;
  clear_onset();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* PhenotypicFeature::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string description = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_description(), ptr, ctx, "org.phenopackets.schema.v1.core.PhenotypicFeature.description");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(mutable_type(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool negated = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          negated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass severity = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(mutable_severity(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.OntologyClass modifiers = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_modifiers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 42);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Age age_of_onset = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(mutable_age_of_onset(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(mutable_age_range_of_onset(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(mutable_class_of_onset(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.Evidence evidence = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_evidence(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 82);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool PhenotypicFeature::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string description = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->description().data(), static_cast(this->description().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.PhenotypicFeature.description"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass type = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_type()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool negated = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (24 & 0xFF)) {

          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   bool, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_BOOL>(
                 input, &negated_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass severity = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_severity()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.OntologyClass modifiers = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_modifiers()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Age age_of_onset = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_of_onset()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 7;
      case 7: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (58 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_range_of_onset()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 9;
      case 9: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (74 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_class_of_onset()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.Evidence evidence = 10;
      case 10: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (82 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_evidence()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.PhenotypicFeature)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.PhenotypicFeature)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void PhenotypicFeature::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string description = 1;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.PhenotypicFeature.description");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->description(), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass type = 2;
  if (this->has_type()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::type(this), output);
  }

  // bool negated = 3;
  if (this->negated() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBool(3, this->negated(), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass severity = 4;
  if (this->has_severity()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, HasBitSetters::severity(this), output);
  }

  // repeated .org.phenopackets.schema.v1.core.OntologyClass modifiers = 5;
  for (unsigned int i = 0,
      n = static_cast(this->modifiers_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      5,
      this->modifiers(static_cast(i)),
      output);
  }

  // .org.phenopackets.schema.v1.core.Age age_of_onset = 6;
  if (has_age_of_onset()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, HasBitSetters::age_of_onset(this), output);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 7;
  if (has_age_range_of_onset()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, HasBitSetters::age_range_of_onset(this), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 9;
  if (has_class_of_onset()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      9, HasBitSetters::class_of_onset(this), output);
  }

  // repeated .org.phenopackets.schema.v1.core.Evidence evidence = 10;
  for (unsigned int i = 0,
      n = static_cast(this->evidence_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      10,
      this->evidence(static_cast(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.PhenotypicFeature)
}

::PROTOBUF_NAMESPACE_ID::uint8* PhenotypicFeature::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string description = 1;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.PhenotypicFeature.description");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->description(), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass type = 2;
  if (this->has_type()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::type(this), target);
  }

  // bool negated = 3;
  if (this->negated() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->negated(), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass severity = 4;
  if (this->has_severity()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, HasBitSetters::severity(this), target);
  }

  // repeated .org.phenopackets.schema.v1.core.OntologyClass modifiers = 5;
  for (unsigned int i = 0,
      n = static_cast(this->modifiers_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->modifiers(static_cast(i)), target);
  }

  // .org.phenopackets.schema.v1.core.Age age_of_onset = 6;
  if (has_age_of_onset()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, HasBitSetters::age_of_onset(this), target);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 7;
  if (has_age_range_of_onset()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, HasBitSetters::age_range_of_onset(this), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 9;
  if (has_class_of_onset()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, HasBitSetters::class_of_onset(this), target);
  }

  // repeated .org.phenopackets.schema.v1.core.Evidence evidence = 10;
  for (unsigned int i = 0,
      n = static_cast(this->evidence_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        10, this->evidence(static_cast(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.PhenotypicFeature)
  return target;
}

size_t PhenotypicFeature::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .org.phenopackets.schema.v1.core.OntologyClass modifiers = 5;
  {
    unsigned int count = static_cast(this->modifiers_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->modifiers(static_cast(i)));
    }
  }

  // repeated .org.phenopackets.schema.v1.core.Evidence evidence = 10;
  {
    unsigned int count = static_cast(this->evidence_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->evidence(static_cast(i)));
    }
  }

  // string description = 1;
  if (this->description().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->description());
  }

  // .org.phenopackets.schema.v1.core.OntologyClass type = 2;
  if (this->has_type()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *type_);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass severity = 4;
  if (this->has_severity()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *severity_);
  }

  // bool negated = 3;
  if (this->negated() != 0) {
    total_size += 1 + 1;
  }

  switch (onset_case()) {
    // .org.phenopackets.schema.v1.core.Age age_of_onset = 6;
    case kAgeOfOnset: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onset_.age_of_onset_);
      break;
    }
    // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 7;
    case kAgeRangeOfOnset: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onset_.age_range_of_onset_);
      break;
    }
    // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 9;
    case kClassOfOnset: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onset_.class_of_onset_);
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PhenotypicFeature::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  GOOGLE_DCHECK_NE(&from, this);
  const PhenotypicFeature* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.PhenotypicFeature)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.PhenotypicFeature)
    MergeFrom(*source);
  }
}

void PhenotypicFeature::MergeFrom(const PhenotypicFeature& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  modifiers_.MergeFrom(from.modifiers_);
  evidence_.MergeFrom(from.evidence_);
  if (from.description().size() > 0) {

    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  if (from.has_type()) {
    mutable_type()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.type());
  }
  if (from.has_severity()) {
    mutable_severity()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.severity());
  }
  if (from.negated() != 0) {
    set_negated(from.negated());
  }
  switch (from.onset_case()) {
    case kAgeOfOnset: {
      mutable_age_of_onset()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_of_onset());
      break;
    }
    case kAgeRangeOfOnset: {
      mutable_age_range_of_onset()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_of_onset());
      break;
    }
    case kClassOfOnset: {
      mutable_class_of_onset()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.class_of_onset());
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
}

void PhenotypicFeature::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhenotypicFeature::CopyFrom(const PhenotypicFeature& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.PhenotypicFeature)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhenotypicFeature::IsInitialized() const {
  return true;
}

void PhenotypicFeature::Swap(PhenotypicFeature* other) {
  if (other == this) return;
  InternalSwap(other);
}
void PhenotypicFeature::InternalSwap(PhenotypicFeature* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&modifiers_)->InternalSwap(CastToBase(&other->modifiers_));
  CastToBase(&evidence_)->InternalSwap(CastToBase(&other->evidence_));
  description_.Swap(&other->description_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(type_, other->type_);
  swap(severity_, other->severity_);
  swap(negated_, other->negated_);
  swap(onset_, other->onset_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata PhenotypicFeature::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Evidence::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_Evidence_default_instance_._instance.get_mutable()->evidence_code_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Evidence_default_instance_._instance.get_mutable()->reference_ = const_cast< ::org::phenopackets::schema::v1::core::ExternalReference*>(
      ::org::phenopackets::schema::v1::core::ExternalReference::internal_default_instance());
}
class Evidence::HasBitSetters {
 public:
  static const ::org::phenopackets::schema::v1::core::OntologyClass& evidence_code(const Evidence* msg);
  static const ::org::phenopackets::schema::v1::core::ExternalReference& reference(const Evidence* msg);
};

const ::org::phenopackets::schema::v1::core::OntologyClass&
Evidence::HasBitSetters::evidence_code(const Evidence* msg) {
  return *msg->evidence_code_;
}
const ::org::phenopackets::schema::v1::core::ExternalReference&
Evidence::HasBitSetters::reference(const Evidence* msg) {
  return *msg->reference_;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Evidence::kEvidenceCodeFieldNumber;
const int Evidence::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Evidence::Evidence()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Evidence)
}
Evidence::Evidence(const Evidence& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_evidence_code()) {
    evidence_code_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.evidence_code_);
  } else {
    evidence_code_ = nullptr;
  }
  if (from.has_reference()) {
    reference_ = new ::org::phenopackets::schema::v1::core::ExternalReference(*from.reference_);
  } else {
    reference_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Evidence)
}

void Evidence::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Evidence_base_2eproto.base);
  ::memset(&evidence_code_, 0, static_cast(
      reinterpret_cast(&reference_) -
      reinterpret_cast(&evidence_code_)) + sizeof(reference_));
}

Evidence::~Evidence() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Evidence)
  SharedDtor();
}

void Evidence::SharedDtor() {
  if (this != internal_default_instance()) delete evidence_code_;
  if (this != internal_default_instance()) delete reference_;
}

void Evidence::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Evidence& Evidence::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Evidence_base_2eproto.base);
  return *internal_default_instance();
}


void Evidence::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Evidence)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && evidence_code_ != nullptr) {
    delete evidence_code_;
  }
  evidence_code_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && reference_ != nullptr) {
    delete reference_;
  }
  reference_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Evidence::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .org.phenopackets.schema.v1.core.OntologyClass evidence_code = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(mutable_evidence_code(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.ExternalReference reference = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(mutable_reference(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Evidence::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Evidence)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .org.phenopackets.schema.v1.core.OntologyClass evidence_code = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_evidence_code()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.ExternalReference reference = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_reference()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Evidence)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Evidence)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Evidence::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Evidence)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass evidence_code = 1;
  if (this->has_evidence_code()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::evidence_code(this), output);
  }

  // .org.phenopackets.schema.v1.core.ExternalReference reference = 2;
  if (this->has_reference()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::reference(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Evidence)
}

::PROTOBUF_NAMESPACE_ID::uint8* Evidence::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Evidence)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass evidence_code = 1;
  if (this->has_evidence_code()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::evidence_code(this), target);
  }

  // .org.phenopackets.schema.v1.core.ExternalReference reference = 2;
  if (this->has_reference()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::reference(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Evidence)
  return target;
}

size_t Evidence::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Evidence)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass evidence_code = 1;
  if (this->has_evidence_code()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *evidence_code_);
  }

  // .org.phenopackets.schema.v1.core.ExternalReference reference = 2;
  if (this->has_reference()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *reference_);
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Evidence::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Evidence)
  GOOGLE_DCHECK_NE(&from, this);
  const Evidence* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Evidence)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Evidence)
    MergeFrom(*source);
  }
}

void Evidence::MergeFrom(const Evidence& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Evidence)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_evidence_code()) {
    mutable_evidence_code()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.evidence_code());
  }
  if (from.has_reference()) {
    mutable_reference()->::org::phenopackets::schema::v1::core::ExternalReference::MergeFrom(from.reference());
  }
}

void Evidence::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Evidence)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Evidence::CopyFrom(const Evidence& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Evidence)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Evidence::IsInitialized() const {
  return true;
}

void Evidence::Swap(Evidence* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Evidence::InternalSwap(Evidence* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(evidence_code_, other->evidence_code_);
  swap(reference_, other->reference_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Evidence::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalReference::InitAsDefaultInstance() {
}
class ExternalReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ExternalReference::kIdFieldNumber;
const int ExternalReference::kDescriptionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ExternalReference::ExternalReference()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.ExternalReference)
}
ExternalReference::ExternalReference(const ExternalReference& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.description().size() > 0) {
    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.ExternalReference)
}

void ExternalReference::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ExternalReference_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

ExternalReference::~ExternalReference() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.ExternalReference)
  SharedDtor();
}

void ExternalReference::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void ExternalReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalReference& ExternalReference::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalReference_base_2eproto.base);
  return *internal_default_instance();
}


void ExternalReference::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.ExternalReference)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ExternalReference::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.ExternalReference.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string description = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_description(), ptr, ctx, "org.phenopackets.schema.v1.core.ExternalReference.description");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ExternalReference::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.ExternalReference)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.ExternalReference.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string description = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->description().data(), static_cast(this->description().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.ExternalReference.description"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.ExternalReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.ExternalReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ExternalReference::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.ExternalReference)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.ExternalReference.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string description = 2;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.ExternalReference.description");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->description(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.ExternalReference)
}

::PROTOBUF_NAMESPACE_ID::uint8* ExternalReference::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.ExternalReference)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.ExternalReference.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string description = 2;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.ExternalReference.description");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->description(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.ExternalReference)
  return target;
}

size_t ExternalReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.ExternalReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string description = 2;
  if (this->description().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->description());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ExternalReference::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.ExternalReference)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalReference* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.ExternalReference)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.ExternalReference)
    MergeFrom(*source);
  }
}

void ExternalReference::MergeFrom(const ExternalReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.ExternalReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.description().size() > 0) {

    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
}

void ExternalReference::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.ExternalReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalReference::CopyFrom(const ExternalReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.ExternalReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalReference::IsInitialized() const {
  return true;
}

void ExternalReference::Swap(ExternalReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ExternalReference::InternalSwap(ExternalReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  description_.Swap(&other->description_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalReference::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Individual::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_Individual_default_instance_._instance.get_mutable()->date_of_birth_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
      PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Individual_default_instance_.age_at_collection_ = const_cast< ::org::phenopackets::schema::v1::core::Age*>(
      ::org::phenopackets::schema::v1::core::Age::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Individual_default_instance_.age_range_at_collection_ = const_cast< ::org::phenopackets::schema::v1::core::AgeRange*>(
      ::org::phenopackets::schema::v1::core::AgeRange::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Individual_default_instance_._instance.get_mutable()->taxonomy_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
}
class Individual::HasBitSetters {
 public:
  static const PROTOBUF_NAMESPACE_ID::Timestamp& date_of_birth(const Individual* msg);
  static const ::org::phenopackets::schema::v1::core::Age& age_at_collection(const Individual* msg);
  static const ::org::phenopackets::schema::v1::core::AgeRange& age_range_at_collection(const Individual* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& taxonomy(const Individual* msg);
};

const PROTOBUF_NAMESPACE_ID::Timestamp&
Individual::HasBitSetters::date_of_birth(const Individual* msg) {
  return *msg->date_of_birth_;
}
const ::org::phenopackets::schema::v1::core::Age&
Individual::HasBitSetters::age_at_collection(const Individual* msg) {
  return *msg->age_.age_at_collection_;
}
const ::org::phenopackets::schema::v1::core::AgeRange&
Individual::HasBitSetters::age_range_at_collection(const Individual* msg) {
  return *msg->age_.age_range_at_collection_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Individual::HasBitSetters::taxonomy(const Individual* msg) {
  return *msg->taxonomy_;
}
void Individual::clear_date_of_birth() {
  if (GetArenaNoVirtual() == nullptr && date_of_birth_ != nullptr) {
    delete date_of_birth_;
  }
  date_of_birth_ = nullptr;
}
void Individual::set_allocated_age_at_collection(::org::phenopackets::schema::v1::core::Age* age_at_collection) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_age();
  if (age_at_collection) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_at_collection = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_at_collection, submessage_arena);
    }
    set_has_age_at_collection();
    age_.age_at_collection_ = age_at_collection;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Individual.age_at_collection)
}
void Individual::set_allocated_age_range_at_collection(::org::phenopackets::schema::v1::core::AgeRange* age_range_at_collection) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_age();
  if (age_range_at_collection) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_range_at_collection = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_range_at_collection, submessage_arena);
    }
    set_has_age_range_at_collection();
    age_.age_range_at_collection_ = age_range_at_collection;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Individual.age_range_at_collection)
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Individual::kIdFieldNumber;
const int Individual::kAlternateIdsFieldNumber;
const int Individual::kDateOfBirthFieldNumber;
const int Individual::kAgeAtCollectionFieldNumber;
const int Individual::kAgeRangeAtCollectionFieldNumber;
const int Individual::kSexFieldNumber;
const int Individual::kKaryotypicSexFieldNumber;
const int Individual::kTaxonomyFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Individual::Individual()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Individual)
}
Individual::Individual(const Individual& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      alternate_ids_(from.alternate_ids_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.has_date_of_birth()) {
    date_of_birth_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.date_of_birth_);
  } else {
    date_of_birth_ = nullptr;
  }
  if (from.has_taxonomy()) {
    taxonomy_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.taxonomy_);
  } else {
    taxonomy_ = nullptr;
  }
  ::memcpy(&sex_, &from.sex_,
    static_cast(reinterpret_cast(&karyotypic_sex_) -
    reinterpret_cast(&sex_)) + sizeof(karyotypic_sex_));
  clear_has_age();
  switch (from.age_case()) {
    case kAgeAtCollection: {
      mutable_age_at_collection()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_at_collection());
      break;
    }
    case kAgeRangeAtCollection: {
      mutable_age_range_at_collection()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_at_collection());
      break;
    }
    case AGE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Individual)
}

void Individual::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Individual_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&date_of_birth_, 0, static_cast(
      reinterpret_cast(&karyotypic_sex_) -
      reinterpret_cast(&date_of_birth_)) + sizeof(karyotypic_sex_));
  clear_has_age();
}

Individual::~Individual() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Individual)
  SharedDtor();
}

void Individual::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete date_of_birth_;
  if (this != internal_default_instance()) delete taxonomy_;
  if (has_age()) {
    clear_age();
  }
}

void Individual::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Individual& Individual::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Individual_base_2eproto.base);
  return *internal_default_instance();
}


void Individual::clear_age() {
// @@protoc_insertion_point(one_of_clear_start:org.phenopackets.schema.v1.core.Individual)
  switch (age_case()) {
    case kAgeAtCollection: {
      delete age_.age_at_collection_;
      break;
    }
    case kAgeRangeAtCollection: {
      delete age_.age_range_at_collection_;
      break;
    }
    case AGE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = AGE_NOT_SET;
}


void Individual::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Individual)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  alternate_ids_.Clear();
  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && date_of_birth_ != nullptr) {
    delete date_of_birth_;
  }
  date_of_birth_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && taxonomy_ != nullptr) {
    delete taxonomy_;
  }
  taxonomy_ = nullptr;
  ::memset(&sex_, 0, static_cast(
      reinterpret_cast(&karyotypic_sex_) -
      reinterpret_cast(&sex_)) + sizeof(karyotypic_sex_));
  clear_age();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Individual::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Individual.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated string alternate_ids = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_alternate_ids(), ptr, ctx, "org.phenopackets.schema.v1.core.Individual.alternate_ids");
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 18);
        } else goto handle_unusual;
        continue;
      // .google.protobuf.Timestamp date_of_birth = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(mutable_date_of_birth(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Age age_at_collection = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(mutable_age_at_collection(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.AgeRange age_range_at_collection = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(mutable_age_range_at_collection(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Sex sex = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
          set_sex(static_cast<::org::phenopackets::schema::v1::core::Sex>(val));
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.KaryotypicSex karyotypic_sex = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
          set_karyotypic_sex(static_cast<::org::phenopackets::schema::v1::core::KaryotypicSex>(val));
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(mutable_taxonomy(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Individual::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Individual)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Individual.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string alternate_ids = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->add_alternate_ids()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->alternate_ids(this->alternate_ids_size() - 1).data(),
            static_cast(this->alternate_ids(this->alternate_ids_size() - 1).length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Individual.alternate_ids"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp date_of_birth = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_date_of_birth()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Age age_at_collection = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_at_collection()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.AgeRange age_range_at_collection = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_range_at_collection()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Sex sex = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (48 & 0xFF)) {
          int value = 0;
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_sex(static_cast< ::org::phenopackets::schema::v1::core::Sex >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.KaryotypicSex karyotypic_sex = 7;
      case 7: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (56 & 0xFF)) {
          int value = 0;
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_karyotypic_sex(static_cast< ::org::phenopackets::schema::v1::core::KaryotypicSex >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 8;
      case 8: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (66 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_taxonomy()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Individual)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Individual)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Individual::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Individual)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Individual.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // repeated string alternate_ids = 2;
  for (int i = 0, n = this->alternate_ids_size(); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->alternate_ids(i).data(), static_cast(this->alternate_ids(i).length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Individual.alternate_ids");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteString(
      2, this->alternate_ids(i), output);
  }

  // .google.protobuf.Timestamp date_of_birth = 3;
  if (this->has_date_of_birth()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, HasBitSetters::date_of_birth(this), output);
  }

  // .org.phenopackets.schema.v1.core.Age age_at_collection = 4;
  if (has_age_at_collection()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, HasBitSetters::age_at_collection(this), output);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_at_collection = 5;
  if (has_age_range_at_collection()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, HasBitSetters::age_range_at_collection(this), output);
  }

  // .org.phenopackets.schema.v1.core.Sex sex = 6;
  if (this->sex() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum(
      6, this->sex(), output);
  }

  // .org.phenopackets.schema.v1.core.KaryotypicSex karyotypic_sex = 7;
  if (this->karyotypic_sex() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum(
      7, this->karyotypic_sex(), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 8;
  if (this->has_taxonomy()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      8, HasBitSetters::taxonomy(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Individual)
}

::PROTOBUF_NAMESPACE_ID::uint8* Individual::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Individual)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Individual.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // repeated string alternate_ids = 2;
  for (int i = 0, n = this->alternate_ids_size(); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->alternate_ids(i).data(), static_cast(this->alternate_ids(i).length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Individual.alternate_ids");
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      WriteStringToArray(2, this->alternate_ids(i), target);
  }

  // .google.protobuf.Timestamp date_of_birth = 3;
  if (this->has_date_of_birth()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, HasBitSetters::date_of_birth(this), target);
  }

  // .org.phenopackets.schema.v1.core.Age age_at_collection = 4;
  if (has_age_at_collection()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, HasBitSetters::age_at_collection(this), target);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_at_collection = 5;
  if (has_age_range_at_collection()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, HasBitSetters::age_range_at_collection(this), target);
  }

  // .org.phenopackets.schema.v1.core.Sex sex = 6;
  if (this->sex() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      6, this->sex(), target);
  }

  // .org.phenopackets.schema.v1.core.KaryotypicSex karyotypic_sex = 7;
  if (this->karyotypic_sex() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      7, this->karyotypic_sex(), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 8;
  if (this->has_taxonomy()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        8, HasBitSetters::taxonomy(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Individual)
  return target;
}

size_t Individual::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Individual)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string alternate_ids = 2;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->alternate_ids_size());
  for (int i = 0, n = this->alternate_ids_size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      this->alternate_ids(i));
  }

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // .google.protobuf.Timestamp date_of_birth = 3;
  if (this->has_date_of_birth()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *date_of_birth_);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 8;
  if (this->has_taxonomy()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *taxonomy_);
  }

  // .org.phenopackets.schema.v1.core.Sex sex = 6;
  if (this->sex() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->sex());
  }

  // .org.phenopackets.schema.v1.core.KaryotypicSex karyotypic_sex = 7;
  if (this->karyotypic_sex() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->karyotypic_sex());
  }

  switch (age_case()) {
    // .org.phenopackets.schema.v1.core.Age age_at_collection = 4;
    case kAgeAtCollection: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *age_.age_at_collection_);
      break;
    }
    // .org.phenopackets.schema.v1.core.AgeRange age_range_at_collection = 5;
    case kAgeRangeAtCollection: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *age_.age_range_at_collection_);
      break;
    }
    case AGE_NOT_SET: {
      break;
    }
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Individual::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Individual)
  GOOGLE_DCHECK_NE(&from, this);
  const Individual* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Individual)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Individual)
    MergeFrom(*source);
  }
}

void Individual::MergeFrom(const Individual& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Individual)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  alternate_ids_.MergeFrom(from.alternate_ids_);
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.has_date_of_birth()) {
    mutable_date_of_birth()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from.date_of_birth());
  }
  if (from.has_taxonomy()) {
    mutable_taxonomy()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.taxonomy());
  }
  if (from.sex() != 0) {
    set_sex(from.sex());
  }
  if (from.karyotypic_sex() != 0) {
    set_karyotypic_sex(from.karyotypic_sex());
  }
  switch (from.age_case()) {
    case kAgeAtCollection: {
      mutable_age_at_collection()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_at_collection());
      break;
    }
    case kAgeRangeAtCollection: {
      mutable_age_range_at_collection()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_at_collection());
      break;
    }
    case AGE_NOT_SET: {
      break;
    }
  }
}

void Individual::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Individual)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Individual::CopyFrom(const Individual& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Individual)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Individual::IsInitialized() const {
  return true;
}

void Individual::Swap(Individual* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Individual::InternalSwap(Individual* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  alternate_ids_.InternalSwap(CastToBase(&other->alternate_ids_));
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(date_of_birth_, other->date_of_birth_);
  swap(taxonomy_, other->taxonomy_);
  swap(sex_, other->sex_);
  swap(karyotypic_sex_, other->karyotypic_sex_);
  swap(age_, other->age_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata Individual::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Biosample::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_._instance.get_mutable()->sampled_tissue_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_._instance.get_mutable()->taxonomy_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_.age_of_individual_at_collection_ = const_cast< ::org::phenopackets::schema::v1::core::Age*>(
      ::org::phenopackets::schema::v1::core::Age::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_.age_range_of_individual_at_collection_ = const_cast< ::org::phenopackets::schema::v1::core::AgeRange*>(
      ::org::phenopackets::schema::v1::core::AgeRange::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_._instance.get_mutable()->histological_diagnosis_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_._instance.get_mutable()->tumor_progression_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_._instance.get_mutable()->tumor_grade_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Biosample_default_instance_._instance.get_mutable()->procedure_ = const_cast< ::org::phenopackets::schema::v1::core::Procedure*>(
      ::org::phenopackets::schema::v1::core::Procedure::internal_default_instance());
}
class Biosample::HasBitSetters {
 public:
  static const ::org::phenopackets::schema::v1::core::OntologyClass& sampled_tissue(const Biosample* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& taxonomy(const Biosample* msg);
  static const ::org::phenopackets::schema::v1::core::Age& age_of_individual_at_collection(const Biosample* msg);
  static const ::org::phenopackets::schema::v1::core::AgeRange& age_range_of_individual_at_collection(const Biosample* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& histological_diagnosis(const Biosample* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& tumor_progression(const Biosample* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& tumor_grade(const Biosample* msg);
  static const ::org::phenopackets::schema::v1::core::Procedure& procedure(const Biosample* msg);
};

const ::org::phenopackets::schema::v1::core::OntologyClass&
Biosample::HasBitSetters::sampled_tissue(const Biosample* msg) {
  return *msg->sampled_tissue_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Biosample::HasBitSetters::taxonomy(const Biosample* msg) {
  return *msg->taxonomy_;
}
const ::org::phenopackets::schema::v1::core::Age&
Biosample::HasBitSetters::age_of_individual_at_collection(const Biosample* msg) {
  return *msg->individual_age_at_collection_.age_of_individual_at_collection_;
}
const ::org::phenopackets::schema::v1::core::AgeRange&
Biosample::HasBitSetters::age_range_of_individual_at_collection(const Biosample* msg) {
  return *msg->individual_age_at_collection_.age_range_of_individual_at_collection_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Biosample::HasBitSetters::histological_diagnosis(const Biosample* msg) {
  return *msg->histological_diagnosis_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Biosample::HasBitSetters::tumor_progression(const Biosample* msg) {
  return *msg->tumor_progression_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Biosample::HasBitSetters::tumor_grade(const Biosample* msg) {
  return *msg->tumor_grade_;
}
const ::org::phenopackets::schema::v1::core::Procedure&
Biosample::HasBitSetters::procedure(const Biosample* msg) {
  return *msg->procedure_;
}
void Biosample::set_allocated_age_of_individual_at_collection(::org::phenopackets::schema::v1::core::Age* age_of_individual_at_collection) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_individual_age_at_collection();
  if (age_of_individual_at_collection) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_of_individual_at_collection = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_of_individual_at_collection, submessage_arena);
    }
    set_has_age_of_individual_at_collection();
    individual_age_at_collection_.age_of_individual_at_collection_ = age_of_individual_at_collection;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Biosample.age_of_individual_at_collection)
}
void Biosample::set_allocated_age_range_of_individual_at_collection(::org::phenopackets::schema::v1::core::AgeRange* age_range_of_individual_at_collection) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_individual_age_at_collection();
  if (age_range_of_individual_at_collection) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_range_of_individual_at_collection = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_range_of_individual_at_collection, submessage_arena);
    }
    set_has_age_range_of_individual_at_collection();
    individual_age_at_collection_.age_range_of_individual_at_collection_ = age_range_of_individual_at_collection;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Biosample.age_range_of_individual_at_collection)
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Biosample::kIdFieldNumber;
const int Biosample::kIndividualIdFieldNumber;
const int Biosample::kDescriptionFieldNumber;
const int Biosample::kSampledTissueFieldNumber;
const int Biosample::kPhenotypicFeaturesFieldNumber;
const int Biosample::kTaxonomyFieldNumber;
const int Biosample::kAgeOfIndividualAtCollectionFieldNumber;
const int Biosample::kAgeRangeOfIndividualAtCollectionFieldNumber;
const int Biosample::kHistologicalDiagnosisFieldNumber;
const int Biosample::kTumorProgressionFieldNumber;
const int Biosample::kTumorGradeFieldNumber;
const int Biosample::kDiagnosticMarkersFieldNumber;
const int Biosample::kProcedureFieldNumber;
const int Biosample::kHtsFilesFieldNumber;
const int Biosample::kVariantsFieldNumber;
const int Biosample::kIsControlSampleFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Biosample::Biosample()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Biosample)
}
Biosample::Biosample(const Biosample& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      phenotypic_features_(from.phenotypic_features_),
      diagnostic_markers_(from.diagnostic_markers_),
      hts_files_(from.hts_files_),
      variants_(from.variants_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  individual_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.individual_id().size() > 0) {
    individual_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.individual_id_);
  }
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.description().size() > 0) {
    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  if (from.has_sampled_tissue()) {
    sampled_tissue_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.sampled_tissue_);
  } else {
    sampled_tissue_ = nullptr;
  }
  if (from.has_taxonomy()) {
    taxonomy_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.taxonomy_);
  } else {
    taxonomy_ = nullptr;
  }
  if (from.has_histological_diagnosis()) {
    histological_diagnosis_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.histological_diagnosis_);
  } else {
    histological_diagnosis_ = nullptr;
  }
  if (from.has_tumor_progression()) {
    tumor_progression_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.tumor_progression_);
  } else {
    tumor_progression_ = nullptr;
  }
  if (from.has_tumor_grade()) {
    tumor_grade_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.tumor_grade_);
  } else {
    tumor_grade_ = nullptr;
  }
  if (from.has_procedure()) {
    procedure_ = new ::org::phenopackets::schema::v1::core::Procedure(*from.procedure_);
  } else {
    procedure_ = nullptr;
  }
  is_control_sample_ = from.is_control_sample_;
  clear_has_individual_age_at_collection();
  switch (from.individual_age_at_collection_case()) {
    case kAgeOfIndividualAtCollection: {
      mutable_age_of_individual_at_collection()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_of_individual_at_collection());
      break;
    }
    case kAgeRangeOfIndividualAtCollection: {
      mutable_age_range_of_individual_at_collection()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_of_individual_at_collection());
      break;
    }
    case INDIVIDUAL_AGE_AT_COLLECTION_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Biosample)
}

void Biosample::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Biosample_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  individual_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&sampled_tissue_, 0, static_cast(
      reinterpret_cast(&is_control_sample_) -
      reinterpret_cast(&sampled_tissue_)) + sizeof(is_control_sample_));
  clear_has_individual_age_at_collection();
}

Biosample::~Biosample() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Biosample)
  SharedDtor();
}

void Biosample::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  individual_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete sampled_tissue_;
  if (this != internal_default_instance()) delete taxonomy_;
  if (this != internal_default_instance()) delete histological_diagnosis_;
  if (this != internal_default_instance()) delete tumor_progression_;
  if (this != internal_default_instance()) delete tumor_grade_;
  if (this != internal_default_instance()) delete procedure_;
  if (has_individual_age_at_collection()) {
    clear_individual_age_at_collection();
  }
}

void Biosample::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Biosample& Biosample::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Biosample_base_2eproto.base);
  return *internal_default_instance();
}


void Biosample::clear_individual_age_at_collection() {
// @@protoc_insertion_point(one_of_clear_start:org.phenopackets.schema.v1.core.Biosample)
  switch (individual_age_at_collection_case()) {
    case kAgeOfIndividualAtCollection: {
      delete individual_age_at_collection_.age_of_individual_at_collection_;
      break;
    }
    case kAgeRangeOfIndividualAtCollection: {
      delete individual_age_at_collection_.age_range_of_individual_at_collection_;
      break;
    }
    case INDIVIDUAL_AGE_AT_COLLECTION_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = INDIVIDUAL_AGE_AT_COLLECTION_NOT_SET;
}


void Biosample::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Biosample)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  phenotypic_features_.Clear();
  diagnostic_markers_.Clear();
  hts_files_.Clear();
  variants_.Clear();
  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  individual_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && sampled_tissue_ != nullptr) {
    delete sampled_tissue_;
  }
  sampled_tissue_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && taxonomy_ != nullptr) {
    delete taxonomy_;
  }
  taxonomy_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && histological_diagnosis_ != nullptr) {
    delete histological_diagnosis_;
  }
  histological_diagnosis_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && tumor_progression_ != nullptr) {
    delete tumor_progression_;
  }
  tumor_progression_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && tumor_grade_ != nullptr) {
    delete tumor_grade_;
  }
  tumor_grade_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && procedure_ != nullptr) {
    delete procedure_;
  }
  procedure_ = nullptr;
  is_control_sample_ = false;
  clear_individual_age_at_collection();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Biosample::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Biosample.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string individual_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_individual_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Biosample.individual_id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string description = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_description(), ptr, ctx, "org.phenopackets.schema.v1.core.Biosample.description");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass sampled_tissue = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(mutable_sampled_tissue(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.PhenotypicFeature phenotypic_features = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_phenotypic_features(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 42);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(mutable_taxonomy(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Age age_of_individual_at_collection = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(mutable_age_of_individual_at_collection(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.AgeRange age_range_of_individual_at_collection = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(mutable_age_range_of_individual_at_collection(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass histological_diagnosis = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(mutable_histological_diagnosis(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass tumor_progression = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(mutable_tumor_progression(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass tumor_grade = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(mutable_tumor_grade(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.OntologyClass diagnostic_markers = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_diagnostic_markers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 98);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Procedure procedure = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(mutable_procedure(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.HtsFile hts_files = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_hts_files(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 114);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.Variant variants = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_variants(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 122);
        } else goto handle_unusual;
        continue;
      // bool is_control_sample = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
          is_control_sample_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Biosample::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Biosample)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Biosample.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string individual_id = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_individual_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->individual_id().data(), static_cast(this->individual_id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Biosample.individual_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string description = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->description().data(), static_cast(this->description().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Biosample.description"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass sampled_tissue = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_sampled_tissue()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.PhenotypicFeature phenotypic_features = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_phenotypic_features()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_taxonomy()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Age age_of_individual_at_collection = 7;
      case 7: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (58 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_of_individual_at_collection()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.AgeRange age_range_of_individual_at_collection = 8;
      case 8: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (66 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_range_of_individual_at_collection()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass histological_diagnosis = 9;
      case 9: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (74 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_histological_diagnosis()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass tumor_progression = 10;
      case 10: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (82 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_tumor_progression()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass tumor_grade = 11;
      case 11: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (90 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_tumor_grade()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.OntologyClass diagnostic_markers = 12;
      case 12: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (98 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_diagnostic_markers()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Procedure procedure = 13;
      case 13: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (106 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_procedure()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.HtsFile hts_files = 14;
      case 14: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (114 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_hts_files()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.Variant variants = 15;
      case 15: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (122 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_variants()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool is_control_sample = 16;
      case 16: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (128 & 0xFF)) {

          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   bool, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_BOOL>(
                 input, &is_control_sample_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Biosample)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Biosample)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Biosample::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Biosample)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Biosample.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string individual_id = 2;
  if (this->individual_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->individual_id().data(), static_cast(this->individual_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Biosample.individual_id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->individual_id(), output);
  }

  // string description = 3;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Biosample.description");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->description(), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass sampled_tissue = 4;
  if (this->has_sampled_tissue()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, HasBitSetters::sampled_tissue(this), output);
  }

  // repeated .org.phenopackets.schema.v1.core.PhenotypicFeature phenotypic_features = 5;
  for (unsigned int i = 0,
      n = static_cast(this->phenotypic_features_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      5,
      this->phenotypic_features(static_cast(i)),
      output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 6;
  if (this->has_taxonomy()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, HasBitSetters::taxonomy(this), output);
  }

  // .org.phenopackets.schema.v1.core.Age age_of_individual_at_collection = 7;
  if (has_age_of_individual_at_collection()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, HasBitSetters::age_of_individual_at_collection(this), output);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_of_individual_at_collection = 8;
  if (has_age_range_of_individual_at_collection()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      8, HasBitSetters::age_range_of_individual_at_collection(this), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass histological_diagnosis = 9;
  if (this->has_histological_diagnosis()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      9, HasBitSetters::histological_diagnosis(this), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass tumor_progression = 10;
  if (this->has_tumor_progression()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, HasBitSetters::tumor_progression(this), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass tumor_grade = 11;
  if (this->has_tumor_grade()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      11, HasBitSetters::tumor_grade(this), output);
  }

  // repeated .org.phenopackets.schema.v1.core.OntologyClass diagnostic_markers = 12;
  for (unsigned int i = 0,
      n = static_cast(this->diagnostic_markers_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      12,
      this->diagnostic_markers(static_cast(i)),
      output);
  }

  // .org.phenopackets.schema.v1.core.Procedure procedure = 13;
  if (this->has_procedure()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      13, HasBitSetters::procedure(this), output);
  }

  // repeated .org.phenopackets.schema.v1.core.HtsFile hts_files = 14;
  for (unsigned int i = 0,
      n = static_cast(this->hts_files_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      14,
      this->hts_files(static_cast(i)),
      output);
  }

  // repeated .org.phenopackets.schema.v1.core.Variant variants = 15;
  for (unsigned int i = 0,
      n = static_cast(this->variants_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      15,
      this->variants(static_cast(i)),
      output);
  }

  // bool is_control_sample = 16;
  if (this->is_control_sample() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBool(16, this->is_control_sample(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Biosample)
}

::PROTOBUF_NAMESPACE_ID::uint8* Biosample::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Biosample)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Biosample.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string individual_id = 2;
  if (this->individual_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->individual_id().data(), static_cast(this->individual_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Biosample.individual_id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->individual_id(), target);
  }

  // string description = 3;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Biosample.description");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->description(), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass sampled_tissue = 4;
  if (this->has_sampled_tissue()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, HasBitSetters::sampled_tissue(this), target);
  }

  // repeated .org.phenopackets.schema.v1.core.PhenotypicFeature phenotypic_features = 5;
  for (unsigned int i = 0,
      n = static_cast(this->phenotypic_features_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->phenotypic_features(static_cast(i)), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 6;
  if (this->has_taxonomy()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, HasBitSetters::taxonomy(this), target);
  }

  // .org.phenopackets.schema.v1.core.Age age_of_individual_at_collection = 7;
  if (has_age_of_individual_at_collection()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, HasBitSetters::age_of_individual_at_collection(this), target);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_of_individual_at_collection = 8;
  if (has_age_range_of_individual_at_collection()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        8, HasBitSetters::age_range_of_individual_at_collection(this), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass histological_diagnosis = 9;
  if (this->has_histological_diagnosis()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, HasBitSetters::histological_diagnosis(this), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass tumor_progression = 10;
  if (this->has_tumor_progression()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        10, HasBitSetters::tumor_progression(this), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass tumor_grade = 11;
  if (this->has_tumor_grade()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        11, HasBitSetters::tumor_grade(this), target);
  }

  // repeated .org.phenopackets.schema.v1.core.OntologyClass diagnostic_markers = 12;
  for (unsigned int i = 0,
      n = static_cast(this->diagnostic_markers_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        12, this->diagnostic_markers(static_cast(i)), target);
  }

  // .org.phenopackets.schema.v1.core.Procedure procedure = 13;
  if (this->has_procedure()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        13, HasBitSetters::procedure(this), target);
  }

  // repeated .org.phenopackets.schema.v1.core.HtsFile hts_files = 14;
  for (unsigned int i = 0,
      n = static_cast(this->hts_files_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        14, this->hts_files(static_cast(i)), target);
  }

  // repeated .org.phenopackets.schema.v1.core.Variant variants = 15;
  for (unsigned int i = 0,
      n = static_cast(this->variants_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        15, this->variants(static_cast(i)), target);
  }

  // bool is_control_sample = 16;
  if (this->is_control_sample() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(16, this->is_control_sample(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Biosample)
  return target;
}

size_t Biosample::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Biosample)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .org.phenopackets.schema.v1.core.PhenotypicFeature phenotypic_features = 5;
  {
    unsigned int count = static_cast(this->phenotypic_features_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->phenotypic_features(static_cast(i)));
    }
  }

  // repeated .org.phenopackets.schema.v1.core.OntologyClass diagnostic_markers = 12;
  {
    unsigned int count = static_cast(this->diagnostic_markers_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->diagnostic_markers(static_cast(i)));
    }
  }

  // repeated .org.phenopackets.schema.v1.core.HtsFile hts_files = 14;
  {
    unsigned int count = static_cast(this->hts_files_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->hts_files(static_cast(i)));
    }
  }

  // repeated .org.phenopackets.schema.v1.core.Variant variants = 15;
  {
    unsigned int count = static_cast(this->variants_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->variants(static_cast(i)));
    }
  }

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string individual_id = 2;
  if (this->individual_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->individual_id());
  }

  // string description = 3;
  if (this->description().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->description());
  }

  // .org.phenopackets.schema.v1.core.OntologyClass sampled_tissue = 4;
  if (this->has_sampled_tissue()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *sampled_tissue_);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass taxonomy = 6;
  if (this->has_taxonomy()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *taxonomy_);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass histological_diagnosis = 9;
  if (this->has_histological_diagnosis()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *histological_diagnosis_);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass tumor_progression = 10;
  if (this->has_tumor_progression()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *tumor_progression_);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass tumor_grade = 11;
  if (this->has_tumor_grade()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *tumor_grade_);
  }

  // .org.phenopackets.schema.v1.core.Procedure procedure = 13;
  if (this->has_procedure()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *procedure_);
  }

  // bool is_control_sample = 16;
  if (this->is_control_sample() != 0) {
    total_size += 2 + 1;
  }

  switch (individual_age_at_collection_case()) {
    // .org.phenopackets.schema.v1.core.Age age_of_individual_at_collection = 7;
    case kAgeOfIndividualAtCollection: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *individual_age_at_collection_.age_of_individual_at_collection_);
      break;
    }
    // .org.phenopackets.schema.v1.core.AgeRange age_range_of_individual_at_collection = 8;
    case kAgeRangeOfIndividualAtCollection: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *individual_age_at_collection_.age_range_of_individual_at_collection_);
      break;
    }
    case INDIVIDUAL_AGE_AT_COLLECTION_NOT_SET: {
      break;
    }
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Biosample::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Biosample)
  GOOGLE_DCHECK_NE(&from, this);
  const Biosample* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Biosample)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Biosample)
    MergeFrom(*source);
  }
}

void Biosample::MergeFrom(const Biosample& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Biosample)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  phenotypic_features_.MergeFrom(from.phenotypic_features_);
  diagnostic_markers_.MergeFrom(from.diagnostic_markers_);
  hts_files_.MergeFrom(from.hts_files_);
  variants_.MergeFrom(from.variants_);
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.individual_id().size() > 0) {

    individual_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.individual_id_);
  }
  if (from.description().size() > 0) {

    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  if (from.has_sampled_tissue()) {
    mutable_sampled_tissue()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.sampled_tissue());
  }
  if (from.has_taxonomy()) {
    mutable_taxonomy()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.taxonomy());
  }
  if (from.has_histological_diagnosis()) {
    mutable_histological_diagnosis()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.histological_diagnosis());
  }
  if (from.has_tumor_progression()) {
    mutable_tumor_progression()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.tumor_progression());
  }
  if (from.has_tumor_grade()) {
    mutable_tumor_grade()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.tumor_grade());
  }
  if (from.has_procedure()) {
    mutable_procedure()->::org::phenopackets::schema::v1::core::Procedure::MergeFrom(from.procedure());
  }
  if (from.is_control_sample() != 0) {
    set_is_control_sample(from.is_control_sample());
  }
  switch (from.individual_age_at_collection_case()) {
    case kAgeOfIndividualAtCollection: {
      mutable_age_of_individual_at_collection()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_of_individual_at_collection());
      break;
    }
    case kAgeRangeOfIndividualAtCollection: {
      mutable_age_range_of_individual_at_collection()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_of_individual_at_collection());
      break;
    }
    case INDIVIDUAL_AGE_AT_COLLECTION_NOT_SET: {
      break;
    }
  }
}

void Biosample::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Biosample)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Biosample::CopyFrom(const Biosample& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Biosample)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Biosample::IsInitialized() const {
  return true;
}

void Biosample::Swap(Biosample* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Biosample::InternalSwap(Biosample* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&phenotypic_features_)->InternalSwap(CastToBase(&other->phenotypic_features_));
  CastToBase(&diagnostic_markers_)->InternalSwap(CastToBase(&other->diagnostic_markers_));
  CastToBase(&hts_files_)->InternalSwap(CastToBase(&other->hts_files_));
  CastToBase(&variants_)->InternalSwap(CastToBase(&other->variants_));
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  individual_id_.Swap(&other->individual_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  description_.Swap(&other->description_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(sampled_tissue_, other->sampled_tissue_);
  swap(taxonomy_, other->taxonomy_);
  swap(histological_diagnosis_, other->histological_diagnosis_);
  swap(tumor_progression_, other->tumor_progression_);
  swap(tumor_grade_, other->tumor_grade_);
  swap(procedure_, other->procedure_);
  swap(is_control_sample_, other->is_control_sample_);
  swap(individual_age_at_collection_, other->individual_age_at_collection_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata Biosample::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Procedure::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_Procedure_default_instance_._instance.get_mutable()->code_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Procedure_default_instance_._instance.get_mutable()->body_site_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
}
class Procedure::HasBitSetters {
 public:
  static const ::org::phenopackets::schema::v1::core::OntologyClass& code(const Procedure* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& body_site(const Procedure* msg);
};

const ::org::phenopackets::schema::v1::core::OntologyClass&
Procedure::HasBitSetters::code(const Procedure* msg) {
  return *msg->code_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Procedure::HasBitSetters::body_site(const Procedure* msg) {
  return *msg->body_site_;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Procedure::kCodeFieldNumber;
const int Procedure::kBodySiteFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Procedure::Procedure()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Procedure)
}
Procedure::Procedure(const Procedure& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_code()) {
    code_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.code_);
  } else {
    code_ = nullptr;
  }
  if (from.has_body_site()) {
    body_site_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.body_site_);
  } else {
    body_site_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Procedure)
}

void Procedure::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Procedure_base_2eproto.base);
  ::memset(&code_, 0, static_cast(
      reinterpret_cast(&body_site_) -
      reinterpret_cast(&code_)) + sizeof(body_site_));
}

Procedure::~Procedure() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Procedure)
  SharedDtor();
}

void Procedure::SharedDtor() {
  if (this != internal_default_instance()) delete code_;
  if (this != internal_default_instance()) delete body_site_;
}

void Procedure::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Procedure& Procedure::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Procedure_base_2eproto.base);
  return *internal_default_instance();
}


void Procedure::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Procedure)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && code_ != nullptr) {
    delete code_;
  }
  code_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && body_site_ != nullptr) {
    delete body_site_;
  }
  body_site_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Procedure::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .org.phenopackets.schema.v1.core.OntologyClass code = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(mutable_code(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass body_site = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(mutable_body_site(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Procedure::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Procedure)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .org.phenopackets.schema.v1.core.OntologyClass code = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_code()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass body_site = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_body_site()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Procedure)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Procedure)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Procedure::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Procedure)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass code = 1;
  if (this->has_code()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::code(this), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass body_site = 2;
  if (this->has_body_site()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::body_site(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Procedure)
}

::PROTOBUF_NAMESPACE_ID::uint8* Procedure::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Procedure)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass code = 1;
  if (this->has_code()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::code(this), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass body_site = 2;
  if (this->has_body_site()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::body_site(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Procedure)
  return target;
}

size_t Procedure::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Procedure)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass code = 1;
  if (this->has_code()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *code_);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass body_site = 2;
  if (this->has_body_site()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *body_site_);
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Procedure::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Procedure)
  GOOGLE_DCHECK_NE(&from, this);
  const Procedure* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Procedure)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Procedure)
    MergeFrom(*source);
  }
}

void Procedure::MergeFrom(const Procedure& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Procedure)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_code()) {
    mutable_code()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.code());
  }
  if (from.has_body_site()) {
    mutable_body_site()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.body_site());
  }
}

void Procedure::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Procedure)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Procedure::CopyFrom(const Procedure& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Procedure)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Procedure::IsInitialized() const {
  return true;
}

void Procedure::Swap(Procedure* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Procedure::InternalSwap(Procedure* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(code_, other->code_);
  swap(body_site_, other->body_site_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Procedure::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Age::InitAsDefaultInstance() {
}
class Age::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Age::kAgeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Age::Age()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Age)
}
Age::Age(const Age& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  age_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.age().size() > 0) {
    age_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.age_);
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Age)
}

void Age::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Age_base_2eproto.base);
  age_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

Age::~Age() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Age)
  SharedDtor();
}

void Age::SharedDtor() {
  age_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Age::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Age& Age::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Age_base_2eproto.base);
  return *internal_default_instance();
}


void Age::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Age)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  age_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Age::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string age = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_age(), ptr, ctx, "org.phenopackets.schema.v1.core.Age.age");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Age::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Age)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string age = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_age()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->age().data(), static_cast(this->age().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Age.age"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Age)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Age)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Age::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Age)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string age = 1;
  if (this->age().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->age().data(), static_cast(this->age().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Age.age");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->age(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Age)
}

::PROTOBUF_NAMESPACE_ID::uint8* Age::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Age)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string age = 1;
  if (this->age().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->age().data(), static_cast(this->age().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Age.age");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->age(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Age)
  return target;
}

size_t Age::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Age)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string age = 1;
  if (this->age().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->age());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Age::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Age)
  GOOGLE_DCHECK_NE(&from, this);
  const Age* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Age)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Age)
    MergeFrom(*source);
  }
}

void Age::MergeFrom(const Age& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Age)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.age().size() > 0) {

    age_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.age_);
  }
}

void Age::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Age)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Age::CopyFrom(const Age& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Age)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Age::IsInitialized() const {
  return true;
}

void Age::Swap(Age* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Age::InternalSwap(Age* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  age_.Swap(&other->age_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::PROTOBUF_NAMESPACE_ID::Metadata Age::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AgeRange::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_AgeRange_default_instance_._instance.get_mutable()->start_ = const_cast< ::org::phenopackets::schema::v1::core::Age*>(
      ::org::phenopackets::schema::v1::core::Age::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_AgeRange_default_instance_._instance.get_mutable()->end_ = const_cast< ::org::phenopackets::schema::v1::core::Age*>(
      ::org::phenopackets::schema::v1::core::Age::internal_default_instance());
}
class AgeRange::HasBitSetters {
 public:
  static const ::org::phenopackets::schema::v1::core::Age& start(const AgeRange* msg);
  static const ::org::phenopackets::schema::v1::core::Age& end(const AgeRange* msg);
};

const ::org::phenopackets::schema::v1::core::Age&
AgeRange::HasBitSetters::start(const AgeRange* msg) {
  return *msg->start_;
}
const ::org::phenopackets::schema::v1::core::Age&
AgeRange::HasBitSetters::end(const AgeRange* msg) {
  return *msg->end_;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int AgeRange::kStartFieldNumber;
const int AgeRange::kEndFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

AgeRange::AgeRange()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.AgeRange)
}
AgeRange::AgeRange(const AgeRange& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_start()) {
    start_ = new ::org::phenopackets::schema::v1::core::Age(*from.start_);
  } else {
    start_ = nullptr;
  }
  if (from.has_end()) {
    end_ = new ::org::phenopackets::schema::v1::core::Age(*from.end_);
  } else {
    end_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.AgeRange)
}

void AgeRange::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AgeRange_base_2eproto.base);
  ::memset(&start_, 0, static_cast(
      reinterpret_cast(&end_) -
      reinterpret_cast(&start_)) + sizeof(end_));
}

AgeRange::~AgeRange() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.AgeRange)
  SharedDtor();
}

void AgeRange::SharedDtor() {
  if (this != internal_default_instance()) delete start_;
  if (this != internal_default_instance()) delete end_;
}

void AgeRange::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AgeRange& AgeRange::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AgeRange_base_2eproto.base);
  return *internal_default_instance();
}


void AgeRange::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.AgeRange)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && start_ != nullptr) {
    delete start_;
  }
  start_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && end_ != nullptr) {
    delete end_;
  }
  end_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* AgeRange::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .org.phenopackets.schema.v1.core.Age start = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(mutable_start(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Age end = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(mutable_end(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool AgeRange::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.AgeRange)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .org.phenopackets.schema.v1.core.Age start = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_start()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Age end = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_end()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.AgeRange)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.AgeRange)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void AgeRange::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.AgeRange)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.Age start = 1;
  if (this->has_start()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::start(this), output);
  }

  // .org.phenopackets.schema.v1.core.Age end = 2;
  if (this->has_end()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::end(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.AgeRange)
}

::PROTOBUF_NAMESPACE_ID::uint8* AgeRange::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.AgeRange)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.Age start = 1;
  if (this->has_start()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::start(this), target);
  }

  // .org.phenopackets.schema.v1.core.Age end = 2;
  if (this->has_end()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::end(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.AgeRange)
  return target;
}

size_t AgeRange::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.AgeRange)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.Age start = 1;
  if (this->has_start()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *start_);
  }

  // .org.phenopackets.schema.v1.core.Age end = 2;
  if (this->has_end()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *end_);
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AgeRange::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.AgeRange)
  GOOGLE_DCHECK_NE(&from, this);
  const AgeRange* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.AgeRange)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.AgeRange)
    MergeFrom(*source);
  }
}

void AgeRange::MergeFrom(const AgeRange& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.AgeRange)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_start()) {
    mutable_start()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.start());
  }
  if (from.has_end()) {
    mutable_end()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.end());
  }
}

void AgeRange::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.AgeRange)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AgeRange::CopyFrom(const AgeRange& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.AgeRange)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AgeRange::IsInitialized() const {
  return true;
}

void AgeRange::Swap(AgeRange* other) {
  if (other == this) return;
  InternalSwap(other);
}
void AgeRange::InternalSwap(AgeRange* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(start_, other->start_);
  swap(end_, other->end_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AgeRange::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Disease::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_Disease_default_instance_._instance.get_mutable()->term_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Disease_default_instance_.age_of_onset_ = const_cast< ::org::phenopackets::schema::v1::core::Age*>(
      ::org::phenopackets::schema::v1::core::Age::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Disease_default_instance_.age_range_of_onset_ = const_cast< ::org::phenopackets::schema::v1::core::AgeRange*>(
      ::org::phenopackets::schema::v1::core::AgeRange::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Disease_default_instance_.class_of_onset_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
}
class Disease::HasBitSetters {
 public:
  static const ::org::phenopackets::schema::v1::core::OntologyClass& term(const Disease* msg);
  static const ::org::phenopackets::schema::v1::core::Age& age_of_onset(const Disease* msg);
  static const ::org::phenopackets::schema::v1::core::AgeRange& age_range_of_onset(const Disease* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& class_of_onset(const Disease* msg);
};

const ::org::phenopackets::schema::v1::core::OntologyClass&
Disease::HasBitSetters::term(const Disease* msg) {
  return *msg->term_;
}
const ::org::phenopackets::schema::v1::core::Age&
Disease::HasBitSetters::age_of_onset(const Disease* msg) {
  return *msg->onset_.age_of_onset_;
}
const ::org::phenopackets::schema::v1::core::AgeRange&
Disease::HasBitSetters::age_range_of_onset(const Disease* msg) {
  return *msg->onset_.age_range_of_onset_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Disease::HasBitSetters::class_of_onset(const Disease* msg) {
  return *msg->onset_.class_of_onset_;
}
void Disease::set_allocated_age_of_onset(::org::phenopackets::schema::v1::core::Age* age_of_onset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_onset();
  if (age_of_onset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_of_onset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_of_onset, submessage_arena);
    }
    set_has_age_of_onset();
    onset_.age_of_onset_ = age_of_onset;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Disease.age_of_onset)
}
void Disease::set_allocated_age_range_of_onset(::org::phenopackets::schema::v1::core::AgeRange* age_range_of_onset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_onset();
  if (age_range_of_onset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      age_range_of_onset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, age_range_of_onset, submessage_arena);
    }
    set_has_age_range_of_onset();
    onset_.age_range_of_onset_ = age_range_of_onset;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Disease.age_range_of_onset)
}
void Disease::set_allocated_class_of_onset(::org::phenopackets::schema::v1::core::OntologyClass* class_of_onset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_onset();
  if (class_of_onset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      class_of_onset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, class_of_onset, submessage_arena);
    }
    set_has_class_of_onset();
    onset_.class_of_onset_ = class_of_onset;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Disease.class_of_onset)
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Disease::kTermFieldNumber;
const int Disease::kAgeOfOnsetFieldNumber;
const int Disease::kAgeRangeOfOnsetFieldNumber;
const int Disease::kClassOfOnsetFieldNumber;
const int Disease::kTumorStageFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Disease::Disease()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Disease)
}
Disease::Disease(const Disease& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      tumor_stage_(from.tumor_stage_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_term()) {
    term_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.term_);
  } else {
    term_ = nullptr;
  }
  clear_has_onset();
  switch (from.onset_case()) {
    case kAgeOfOnset: {
      mutable_age_of_onset()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_of_onset());
      break;
    }
    case kAgeRangeOfOnset: {
      mutable_age_range_of_onset()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_of_onset());
      break;
    }
    case kClassOfOnset: {
      mutable_class_of_onset()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.class_of_onset());
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Disease)
}

void Disease::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Disease_base_2eproto.base);
  term_ = nullptr;
  clear_has_onset();
}

Disease::~Disease() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Disease)
  SharedDtor();
}

void Disease::SharedDtor() {
  if (this != internal_default_instance()) delete term_;
  if (has_onset()) {
    clear_onset();
  }
}

void Disease::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Disease& Disease::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Disease_base_2eproto.base);
  return *internal_default_instance();
}


void Disease::clear_onset() {
// @@protoc_insertion_point(one_of_clear_start:org.phenopackets.schema.v1.core.Disease)
  switch (onset_case()) {
    case kAgeOfOnset: {
      delete onset_.age_of_onset_;
      break;
    }
    case kAgeRangeOfOnset: {
      delete onset_.age_range_of_onset_;
      break;
    }
    case kClassOfOnset: {
      delete onset_.class_of_onset_;
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONSET_NOT_SET;
}


void Disease::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Disease)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  tumor_stage_.Clear();
  if (GetArenaNoVirtual() == nullptr && term_ != nullptr) {
    delete term_;
  }
  term_ = nullptr;
  clear_onset();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Disease::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .org.phenopackets.schema.v1.core.OntologyClass term = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(mutable_term(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Age age_of_onset = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(mutable_age_of_onset(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(mutable_age_range_of_onset(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(mutable_class_of_onset(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .org.phenopackets.schema.v1.core.OntologyClass tumor_stage = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_tumor_stage(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 42);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Disease::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Disease)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .org.phenopackets.schema.v1.core.OntologyClass term = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_term()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Age age_of_onset = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_of_onset()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_age_range_of_onset()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_class_of_onset()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .org.phenopackets.schema.v1.core.OntologyClass tumor_stage = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_tumor_stage()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Disease)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Disease)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Disease::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Disease)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass term = 1;
  if (this->has_term()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::term(this), output);
  }

  // .org.phenopackets.schema.v1.core.Age age_of_onset = 2;
  if (has_age_of_onset()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::age_of_onset(this), output);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 3;
  if (has_age_range_of_onset()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, HasBitSetters::age_range_of_onset(this), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 4;
  if (has_class_of_onset()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, HasBitSetters::class_of_onset(this), output);
  }

  // repeated .org.phenopackets.schema.v1.core.OntologyClass tumor_stage = 5;
  for (unsigned int i = 0,
      n = static_cast(this->tumor_stage_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      5,
      this->tumor_stage(static_cast(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Disease)
}

::PROTOBUF_NAMESPACE_ID::uint8* Disease::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Disease)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass term = 1;
  if (this->has_term()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::term(this), target);
  }

  // .org.phenopackets.schema.v1.core.Age age_of_onset = 2;
  if (has_age_of_onset()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::age_of_onset(this), target);
  }

  // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 3;
  if (has_age_range_of_onset()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, HasBitSetters::age_range_of_onset(this), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 4;
  if (has_class_of_onset()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, HasBitSetters::class_of_onset(this), target);
  }

  // repeated .org.phenopackets.schema.v1.core.OntologyClass tumor_stage = 5;
  for (unsigned int i = 0,
      n = static_cast(this->tumor_stage_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->tumor_stage(static_cast(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Disease)
  return target;
}

size_t Disease::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Disease)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .org.phenopackets.schema.v1.core.OntologyClass tumor_stage = 5;
  {
    unsigned int count = static_cast(this->tumor_stage_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->tumor_stage(static_cast(i)));
    }
  }

  // .org.phenopackets.schema.v1.core.OntologyClass term = 1;
  if (this->has_term()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *term_);
  }

  switch (onset_case()) {
    // .org.phenopackets.schema.v1.core.Age age_of_onset = 2;
    case kAgeOfOnset: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onset_.age_of_onset_);
      break;
    }
    // .org.phenopackets.schema.v1.core.AgeRange age_range_of_onset = 3;
    case kAgeRangeOfOnset: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onset_.age_range_of_onset_);
      break;
    }
    // .org.phenopackets.schema.v1.core.OntologyClass class_of_onset = 4;
    case kClassOfOnset: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onset_.class_of_onset_);
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Disease::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Disease)
  GOOGLE_DCHECK_NE(&from, this);
  const Disease* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Disease)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Disease)
    MergeFrom(*source);
  }
}

void Disease::MergeFrom(const Disease& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Disease)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  tumor_stage_.MergeFrom(from.tumor_stage_);
  if (from.has_term()) {
    mutable_term()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.term());
  }
  switch (from.onset_case()) {
    case kAgeOfOnset: {
      mutable_age_of_onset()->::org::phenopackets::schema::v1::core::Age::MergeFrom(from.age_of_onset());
      break;
    }
    case kAgeRangeOfOnset: {
      mutable_age_range_of_onset()->::org::phenopackets::schema::v1::core::AgeRange::MergeFrom(from.age_range_of_onset());
      break;
    }
    case kClassOfOnset: {
      mutable_class_of_onset()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.class_of_onset());
      break;
    }
    case ONSET_NOT_SET: {
      break;
    }
  }
}

void Disease::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Disease)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Disease::CopyFrom(const Disease& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Disease)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Disease::IsInitialized() const {
  return true;
}

void Disease::Swap(Disease* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Disease::InternalSwap(Disease* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&tumor_stage_)->InternalSwap(CastToBase(&other->tumor_stage_));
  swap(term_, other->term_);
  swap(onset_, other->onset_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata Disease::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Pedigree_Person::InitAsDefaultInstance() {
}
class Pedigree_Person::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Pedigree_Person::kFamilyIdFieldNumber;
const int Pedigree_Person::kIndividualIdFieldNumber;
const int Pedigree_Person::kPaternalIdFieldNumber;
const int Pedigree_Person::kMaternalIdFieldNumber;
const int Pedigree_Person::kSexFieldNumber;
const int Pedigree_Person::kAffectedStatusFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Pedigree_Person::Pedigree_Person()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Pedigree.Person)
}
Pedigree_Person::Pedigree_Person(const Pedigree_Person& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  family_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.family_id().size() > 0) {
    family_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.family_id_);
  }
  individual_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.individual_id().size() > 0) {
    individual_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.individual_id_);
  }
  paternal_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.paternal_id().size() > 0) {
    paternal_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.paternal_id_);
  }
  maternal_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.maternal_id().size() > 0) {
    maternal_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.maternal_id_);
  }
  ::memcpy(&sex_, &from.sex_,
    static_cast(reinterpret_cast(&affected_status_) -
    reinterpret_cast(&sex_)) + sizeof(affected_status_));
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Pedigree.Person)
}

void Pedigree_Person::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Pedigree_Person_base_2eproto.base);
  family_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  individual_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  paternal_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  maternal_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&sex_, 0, static_cast(
      reinterpret_cast(&affected_status_) -
      reinterpret_cast(&sex_)) + sizeof(affected_status_));
}

Pedigree_Person::~Pedigree_Person() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Pedigree.Person)
  SharedDtor();
}

void Pedigree_Person::SharedDtor() {
  family_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  individual_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  paternal_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  maternal_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Pedigree_Person::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Pedigree_Person& Pedigree_Person::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Pedigree_Person_base_2eproto.base);
  return *internal_default_instance();
}


void Pedigree_Person::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  family_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  individual_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  paternal_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  maternal_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&sex_, 0, static_cast(
      reinterpret_cast(&affected_status_) -
      reinterpret_cast(&sex_)) + sizeof(affected_status_));
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Pedigree_Person::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string family_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_family_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Pedigree.Person.family_id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string individual_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_individual_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Pedigree.Person.individual_id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string paternal_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_paternal_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Pedigree.Person.paternal_id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string maternal_id = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_maternal_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Pedigree.Person.maternal_id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Sex sex = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
          set_sex(static_cast<::org::phenopackets::schema::v1::core::Sex>(val));
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.Pedigree.Person.AffectedStatus affected_status = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
          set_affected_status(static_cast<::org::phenopackets::schema::v1::core::Pedigree_Person_AffectedStatus>(val));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Pedigree_Person::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string family_id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_family_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->family_id().data(), static_cast(this->family_id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Pedigree.Person.family_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string individual_id = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_individual_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->individual_id().data(), static_cast(this->individual_id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Pedigree.Person.individual_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string paternal_id = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_paternal_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->paternal_id().data(), static_cast(this->paternal_id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Pedigree.Person.paternal_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string maternal_id = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_maternal_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->maternal_id().data(), static_cast(this->maternal_id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Pedigree.Person.maternal_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Sex sex = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (40 & 0xFF)) {
          int value = 0;
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_sex(static_cast< ::org::phenopackets::schema::v1::core::Sex >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.Pedigree.Person.AffectedStatus affected_status = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (48 & 0xFF)) {
          int value = 0;
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_affected_status(static_cast< ::org::phenopackets::schema::v1::core::Pedigree_Person_AffectedStatus >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Pedigree.Person)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Pedigree.Person)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Pedigree_Person::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string family_id = 1;
  if (this->family_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->family_id().data(), static_cast(this->family_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.family_id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->family_id(), output);
  }

  // string individual_id = 2;
  if (this->individual_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->individual_id().data(), static_cast(this->individual_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.individual_id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->individual_id(), output);
  }

  // string paternal_id = 3;
  if (this->paternal_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->paternal_id().data(), static_cast(this->paternal_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.paternal_id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->paternal_id(), output);
  }

  // string maternal_id = 4;
  if (this->maternal_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->maternal_id().data(), static_cast(this->maternal_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.maternal_id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->maternal_id(), output);
  }

  // .org.phenopackets.schema.v1.core.Sex sex = 5;
  if (this->sex() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum(
      5, this->sex(), output);
  }

  // .org.phenopackets.schema.v1.core.Pedigree.Person.AffectedStatus affected_status = 6;
  if (this->affected_status() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum(
      6, this->affected_status(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Pedigree.Person)
}

::PROTOBUF_NAMESPACE_ID::uint8* Pedigree_Person::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string family_id = 1;
  if (this->family_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->family_id().data(), static_cast(this->family_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.family_id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->family_id(), target);
  }

  // string individual_id = 2;
  if (this->individual_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->individual_id().data(), static_cast(this->individual_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.individual_id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->individual_id(), target);
  }

  // string paternal_id = 3;
  if (this->paternal_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->paternal_id().data(), static_cast(this->paternal_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.paternal_id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->paternal_id(), target);
  }

  // string maternal_id = 4;
  if (this->maternal_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->maternal_id().data(), static_cast(this->maternal_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Pedigree.Person.maternal_id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        4, this->maternal_id(), target);
  }

  // .org.phenopackets.schema.v1.core.Sex sex = 5;
  if (this->sex() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      5, this->sex(), target);
  }

  // .org.phenopackets.schema.v1.core.Pedigree.Person.AffectedStatus affected_status = 6;
  if (this->affected_status() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      6, this->affected_status(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Pedigree.Person)
  return target;
}

size_t Pedigree_Person::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string family_id = 1;
  if (this->family_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->family_id());
  }

  // string individual_id = 2;
  if (this->individual_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->individual_id());
  }

  // string paternal_id = 3;
  if (this->paternal_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->paternal_id());
  }

  // string maternal_id = 4;
  if (this->maternal_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->maternal_id());
  }

  // .org.phenopackets.schema.v1.core.Sex sex = 5;
  if (this->sex() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->sex());
  }

  // .org.phenopackets.schema.v1.core.Pedigree.Person.AffectedStatus affected_status = 6;
  if (this->affected_status() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->affected_status());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Pedigree_Person::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  GOOGLE_DCHECK_NE(&from, this);
  const Pedigree_Person* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Pedigree.Person)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Pedigree.Person)
    MergeFrom(*source);
  }
}

void Pedigree_Person::MergeFrom(const Pedigree_Person& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.family_id().size() > 0) {

    family_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.family_id_);
  }
  if (from.individual_id().size() > 0) {

    individual_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.individual_id_);
  }
  if (from.paternal_id().size() > 0) {

    paternal_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.paternal_id_);
  }
  if (from.maternal_id().size() > 0) {

    maternal_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.maternal_id_);
  }
  if (from.sex() != 0) {
    set_sex(from.sex());
  }
  if (from.affected_status() != 0) {
    set_affected_status(from.affected_status());
  }
}

void Pedigree_Person::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Pedigree_Person::CopyFrom(const Pedigree_Person& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Pedigree.Person)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Pedigree_Person::IsInitialized() const {
  return true;
}

void Pedigree_Person::Swap(Pedigree_Person* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Pedigree_Person::InternalSwap(Pedigree_Person* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  family_id_.Swap(&other->family_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  individual_id_.Swap(&other->individual_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  paternal_id_.Swap(&other->paternal_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  maternal_id_.Swap(&other->maternal_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(sex_, other->sex_);
  swap(affected_status_, other->affected_status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Pedigree_Person::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Pedigree::InitAsDefaultInstance() {
}
class Pedigree::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Pedigree::kPersonsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Pedigree::Pedigree()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Pedigree)
}
Pedigree::Pedigree(const Pedigree& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      persons_(from.persons_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Pedigree)
}

void Pedigree::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Pedigree_base_2eproto.base);
}

Pedigree::~Pedigree() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Pedigree)
  SharedDtor();
}

void Pedigree::SharedDtor() {
}

void Pedigree::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Pedigree& Pedigree::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Pedigree_base_2eproto.base);
  return *internal_default_instance();
}


void Pedigree::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Pedigree)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  persons_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Pedigree::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .org.phenopackets.schema.v1.core.Pedigree.Person persons = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_persons(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 10);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Pedigree::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Pedigree)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .org.phenopackets.schema.v1.core.Pedigree.Person persons = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_persons()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Pedigree)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Pedigree)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Pedigree::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Pedigree)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .org.phenopackets.schema.v1.core.Pedigree.Person persons = 1;
  for (unsigned int i = 0,
      n = static_cast(this->persons_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->persons(static_cast(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Pedigree)
}

::PROTOBUF_NAMESPACE_ID::uint8* Pedigree::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Pedigree)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .org.phenopackets.schema.v1.core.Pedigree.Person persons = 1;
  for (unsigned int i = 0,
      n = static_cast(this->persons_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->persons(static_cast(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Pedigree)
  return target;
}

size_t Pedigree::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Pedigree)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .org.phenopackets.schema.v1.core.Pedigree.Person persons = 1;
  {
    unsigned int count = static_cast(this->persons_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->persons(static_cast(i)));
    }
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Pedigree::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Pedigree)
  GOOGLE_DCHECK_NE(&from, this);
  const Pedigree* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Pedigree)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Pedigree)
    MergeFrom(*source);
  }
}

void Pedigree::MergeFrom(const Pedigree& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Pedigree)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  persons_.MergeFrom(from.persons_);
}

void Pedigree::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Pedigree)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Pedigree::CopyFrom(const Pedigree& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Pedigree)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Pedigree::IsInitialized() const {
  return true;
}

void Pedigree::Swap(Pedigree* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Pedigree::InternalSwap(Pedigree* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&persons_)->InternalSwap(CastToBase(&other->persons_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Pedigree::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse() {}
HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::MergeFrom(const HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::GetMetadata() const {
  return GetMetadataStatic();
}
void HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::MergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::Message& other) {
  ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other);
}


// ===================================================================

void HtsFile::InitAsDefaultInstance() {
}
class HtsFile::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int HtsFile::kUriFieldNumber;
const int HtsFile::kDescriptionFieldNumber;
const int HtsFile::kHtsFormatFieldNumber;
const int HtsFile::kGenomeAssemblyFieldNumber;
const int HtsFile::kIndividualToSampleIdentifiersFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

HtsFile::HtsFile()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.HtsFile)
}
HtsFile::HtsFile(const HtsFile& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  individual_to_sample_identifiers_.MergeFrom(from.individual_to_sample_identifiers_);
  uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.uri().size() > 0) {
    uri_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uri_);
  }
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.description().size() > 0) {
    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  genome_assembly_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.genome_assembly().size() > 0) {
    genome_assembly_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.genome_assembly_);
  }
  hts_format_ = from.hts_format_;
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.HtsFile)
}

void HtsFile::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_HtsFile_base_2eproto.base);
  uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  genome_assembly_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  hts_format_ = 0;
}

HtsFile::~HtsFile() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.HtsFile)
  SharedDtor();
}

void HtsFile::SharedDtor() {
  uri_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  genome_assembly_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void HtsFile::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const HtsFile& HtsFile::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_HtsFile_base_2eproto.base);
  return *internal_default_instance();
}


void HtsFile::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.HtsFile)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  individual_to_sample_identifiers_.Clear();
  uri_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  description_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  genome_assembly_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  hts_format_ = 0;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* HtsFile::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string uri = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_uri(), ptr, ctx, "org.phenopackets.schema.v1.core.HtsFile.uri");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string description = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_description(), ptr, ctx, "org.phenopackets.schema.v1.core.HtsFile.description");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.HtsFile.HtsFormat hts_format = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
          set_hts_format(static_cast<::org::phenopackets::schema::v1::core::HtsFile_HtsFormat>(val));
        } else goto handle_unusual;
        continue;
      // string genome_assembly = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_genome_assembly(), ptr, ctx, "org.phenopackets.schema.v1.core.HtsFile.genome_assembly");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // map individual_to_sample_identifiers = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&individual_to_sample_identifiers_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 42);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool HtsFile::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.HtsFile)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string uri = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_uri()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->uri().data(), static_cast(this->uri().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.HtsFile.uri"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string description = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->description().data(), static_cast(this->description().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.HtsFile.description"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.HtsFile.HtsFormat hts_format = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (24 & 0xFF)) {
          int value = 0;
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_hts_format(static_cast< ::org::phenopackets::schema::v1::core::HtsFile_HtsFormat >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string genome_assembly = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_genome_assembly()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->genome_assembly().data(), static_cast(this->genome_assembly().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.HtsFile.genome_assembly"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map individual_to_sample_identifiers = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::Parser< ::PROTOBUF_NAMESPACE_ID::internal::MapField<
              HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse,
              std::string, std::string,
              ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
              ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
              0 >,
            ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string > > parser(&individual_to_sample_identifiers_);
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast(parser.key().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.HtsFile.IndividualToSampleIdentifiersEntry.key"));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast(parser.value().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.HtsFile.IndividualToSampleIdentifiersEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.HtsFile)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.HtsFile)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void HtsFile::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.HtsFile)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string uri = 1;
  if (this->uri().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->uri().data(), static_cast(this->uri().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HtsFile.uri");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->uri(), output);
  }

  // string description = 2;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HtsFile.description");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->description(), output);
  }

  // .org.phenopackets.schema.v1.core.HtsFile.HtsFormat hts_format = 3;
  if (this->hts_format() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum(
      3, this->hts_format(), output);
  }

  // string genome_assembly = 4;
  if (this->genome_assembly().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->genome_assembly().data(), static_cast(this->genome_assembly().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HtsFile.genome_assembly");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->genome_assembly(), output);
  }

  // map individual_to_sample_identifiers = 5;
  if (!this->individual_to_sample_identifiers().empty()) {
    typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast(p->first.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "org.phenopackets.schema.v1.core.HtsFile.IndividualToSampleIdentifiersEntry.key");
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast(p->second.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "org.phenopackets.schema.v1.core.HtsFile.IndividualToSampleIdentifiersEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->individual_to_sample_identifiers().size() > 1) {
      ::std::unique_ptr items(
          new SortItem[this->individual_to_sample_identifiers().size()]);
      typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::size_type size_type;
      size_type n = 0;
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator
          it = this->individual_to_sample_identifiers().begin();
          it != this->individual_to_sample_identifiers().end(); ++it, ++n) {
        items[static_cast(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast(n)], Less());
      for (size_type i = 0; i < n; i++) {
        HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::MapEntryWrapper entry(nullptr, items[static_cast(i)]->first, items[static_cast(i)]->second);
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(5, entry, output);
        Utf8Check::Check(&(*items[static_cast(i)]));
      }
    } else {
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator
          it = this->individual_to_sample_identifiers().begin();
          it != this->individual_to_sample_identifiers().end(); ++it) {
        HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::MapEntryWrapper entry(nullptr, it->first, it->second);
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(5, entry, output);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.HtsFile)
}

::PROTOBUF_NAMESPACE_ID::uint8* HtsFile::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.HtsFile)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string uri = 1;
  if (this->uri().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->uri().data(), static_cast(this->uri().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HtsFile.uri");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->uri(), target);
  }

  // string description = 2;
  if (this->description().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast(this->description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HtsFile.description");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->description(), target);
  }

  // .org.phenopackets.schema.v1.core.HtsFile.HtsFormat hts_format = 3;
  if (this->hts_format() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->hts_format(), target);
  }

  // string genome_assembly = 4;
  if (this->genome_assembly().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->genome_assembly().data(), static_cast(this->genome_assembly().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HtsFile.genome_assembly");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        4, this->genome_assembly(), target);
  }

  // map individual_to_sample_identifiers = 5;
  if (!this->individual_to_sample_identifiers().empty()) {
    typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast(p->first.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "org.phenopackets.schema.v1.core.HtsFile.IndividualToSampleIdentifiersEntry.key");
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast(p->second.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "org.phenopackets.schema.v1.core.HtsFile.IndividualToSampleIdentifiersEntry.value");
      }
    };

    if (false &&
        this->individual_to_sample_identifiers().size() > 1) {
      ::std::unique_ptr items(
          new SortItem[this->individual_to_sample_identifiers().size()]);
      typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::size_type size_type;
      size_type n = 0;
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator
          it = this->individual_to_sample_identifiers().begin();
          it != this->individual_to_sample_identifiers().end(); ++it, ++n) {
        items[static_cast(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast(n)], Less());
      for (size_type i = 0; i < n; i++) {
        HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::MapEntryWrapper entry(nullptr, items[static_cast(i)]->first, items[static_cast(i)]->second);
        target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(5, entry, target);
        Utf8Check::Check(&(*items[static_cast(i)]));
      }
    } else {
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator
          it = this->individual_to_sample_identifiers().begin();
          it != this->individual_to_sample_identifiers().end(); ++it) {
        HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::MapEntryWrapper entry(nullptr, it->first, it->second);
        target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(5, entry, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.HtsFile)
  return target;
}

size_t HtsFile::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.HtsFile)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map individual_to_sample_identifiers = 5;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->individual_to_sample_identifiers_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator
      it = this->individual_to_sample_identifiers().begin();
      it != this->individual_to_sample_identifiers().end(); ++it) {
    HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse::MapEntryWrapper entry(nullptr, it->first, it->second);
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        MessageSizeNoVirtual(entry);
  }

  // string uri = 1;
  if (this->uri().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->uri());
  }

  // string description = 2;
  if (this->description().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->description());
  }

  // string genome_assembly = 4;
  if (this->genome_assembly().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->genome_assembly());
  }

  // .org.phenopackets.schema.v1.core.HtsFile.HtsFormat hts_format = 3;
  if (this->hts_format() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->hts_format());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void HtsFile::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.HtsFile)
  GOOGLE_DCHECK_NE(&from, this);
  const HtsFile* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.HtsFile)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.HtsFile)
    MergeFrom(*source);
  }
}

void HtsFile::MergeFrom(const HtsFile& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.HtsFile)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  individual_to_sample_identifiers_.MergeFrom(from.individual_to_sample_identifiers_);
  if (from.uri().size() > 0) {

    uri_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uri_);
  }
  if (from.description().size() > 0) {

    description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  if (from.genome_assembly().size() > 0) {

    genome_assembly_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.genome_assembly_);
  }
  if (from.hts_format() != 0) {
    set_hts_format(from.hts_format());
  }
}

void HtsFile::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.HtsFile)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void HtsFile::CopyFrom(const HtsFile& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.HtsFile)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool HtsFile::IsInitialized() const {
  return true;
}

void HtsFile::Swap(HtsFile* other) {
  if (other == this) return;
  InternalSwap(other);
}
void HtsFile::InternalSwap(HtsFile* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  individual_to_sample_identifiers_.Swap(&other->individual_to_sample_identifiers_);
  uri_.Swap(&other->uri_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  description_.Swap(&other->description_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  genome_assembly_.Swap(&other->genome_assembly_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(hts_format_, other->hts_format_);
}

::PROTOBUF_NAMESPACE_ID::Metadata HtsFile::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Gene::InitAsDefaultInstance() {
}
class Gene::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Gene::kIdFieldNumber;
const int Gene::kAlternateIdsFieldNumber;
const int Gene::kSymbolFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Gene::Gene()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Gene)
}
Gene::Gene(const Gene& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      alternate_ids_(from.alternate_ids_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.symbol().size() > 0) {
    symbol_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.symbol_);
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Gene)
}

void Gene::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Gene_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

Gene::~Gene() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Gene)
  SharedDtor();
}

void Gene::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Gene::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Gene& Gene::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Gene_base_2eproto.base);
  return *internal_default_instance();
}


void Gene::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Gene)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  alternate_ids_.Clear();
  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  symbol_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Gene::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.Gene.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated string alternate_ids = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_alternate_ids(), ptr, ctx, "org.phenopackets.schema.v1.core.Gene.alternate_ids");
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 18);
        } else goto handle_unusual;
        continue;
      // string symbol = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_symbol(), ptr, ctx, "org.phenopackets.schema.v1.core.Gene.symbol");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Gene::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Gene)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Gene.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string alternate_ids = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->add_alternate_ids()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->alternate_ids(this->alternate_ids_size() - 1).data(),
            static_cast(this->alternate_ids(this->alternate_ids_size() - 1).length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Gene.alternate_ids"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string symbol = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_symbol()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->symbol().data(), static_cast(this->symbol().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.Gene.symbol"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Gene)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Gene)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Gene::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Gene)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Gene.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // repeated string alternate_ids = 2;
  for (int i = 0, n = this->alternate_ids_size(); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->alternate_ids(i).data(), static_cast(this->alternate_ids(i).length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Gene.alternate_ids");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteString(
      2, this->alternate_ids(i), output);
  }

  // string symbol = 3;
  if (this->symbol().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->symbol().data(), static_cast(this->symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Gene.symbol");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->symbol(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Gene)
}

::PROTOBUF_NAMESPACE_ID::uint8* Gene::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Gene)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Gene.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // repeated string alternate_ids = 2;
  for (int i = 0, n = this->alternate_ids_size(); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->alternate_ids(i).data(), static_cast(this->alternate_ids(i).length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Gene.alternate_ids");
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      WriteStringToArray(2, this->alternate_ids(i), target);
  }

  // string symbol = 3;
  if (this->symbol().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->symbol().data(), static_cast(this->symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.Gene.symbol");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->symbol(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Gene)
  return target;
}

size_t Gene::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Gene)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string alternate_ids = 2;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->alternate_ids_size());
  for (int i = 0, n = this->alternate_ids_size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      this->alternate_ids(i));
  }

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string symbol = 3;
  if (this->symbol().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->symbol());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Gene::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Gene)
  GOOGLE_DCHECK_NE(&from, this);
  const Gene* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Gene)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Gene)
    MergeFrom(*source);
  }
}

void Gene::MergeFrom(const Gene& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Gene)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  alternate_ids_.MergeFrom(from.alternate_ids_);
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.symbol().size() > 0) {

    symbol_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.symbol_);
  }
}

void Gene::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Gene)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Gene::CopyFrom(const Gene& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Gene)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Gene::IsInitialized() const {
  return true;
}

void Gene::Swap(Gene* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Gene::InternalSwap(Gene* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  alternate_ids_.InternalSwap(CastToBase(&other->alternate_ids_));
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  symbol_.Swap(&other->symbol_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::PROTOBUF_NAMESPACE_ID::Metadata Gene::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Variant::InitAsDefaultInstance() {
  ::org::phenopackets::schema::v1::core::_Variant_default_instance_.hgvs_allele_ = const_cast< ::org::phenopackets::schema::v1::core::HgvsAllele*>(
      ::org::phenopackets::schema::v1::core::HgvsAllele::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Variant_default_instance_.vcf_allele_ = const_cast< ::org::phenopackets::schema::v1::core::VcfAllele*>(
      ::org::phenopackets::schema::v1::core::VcfAllele::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Variant_default_instance_.spdi_allele_ = const_cast< ::org::phenopackets::schema::v1::core::SpdiAllele*>(
      ::org::phenopackets::schema::v1::core::SpdiAllele::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Variant_default_instance_.iscn_allele_ = const_cast< ::org::phenopackets::schema::v1::core::IscnAllele*>(
      ::org::phenopackets::schema::v1::core::IscnAllele::internal_default_instance());
  ::org::phenopackets::schema::v1::core::_Variant_default_instance_._instance.get_mutable()->zygosity_ = const_cast< ::org::phenopackets::schema::v1::core::OntologyClass*>(
      ::org::phenopackets::schema::v1::core::OntologyClass::internal_default_instance());
}
class Variant::HasBitSetters {
 public:
  static const ::org::phenopackets::schema::v1::core::HgvsAllele& hgvs_allele(const Variant* msg);
  static const ::org::phenopackets::schema::v1::core::VcfAllele& vcf_allele(const Variant* msg);
  static const ::org::phenopackets::schema::v1::core::SpdiAllele& spdi_allele(const Variant* msg);
  static const ::org::phenopackets::schema::v1::core::IscnAllele& iscn_allele(const Variant* msg);
  static const ::org::phenopackets::schema::v1::core::OntologyClass& zygosity(const Variant* msg);
};

const ::org::phenopackets::schema::v1::core::HgvsAllele&
Variant::HasBitSetters::hgvs_allele(const Variant* msg) {
  return *msg->allele_.hgvs_allele_;
}
const ::org::phenopackets::schema::v1::core::VcfAllele&
Variant::HasBitSetters::vcf_allele(const Variant* msg) {
  return *msg->allele_.vcf_allele_;
}
const ::org::phenopackets::schema::v1::core::SpdiAllele&
Variant::HasBitSetters::spdi_allele(const Variant* msg) {
  return *msg->allele_.spdi_allele_;
}
const ::org::phenopackets::schema::v1::core::IscnAllele&
Variant::HasBitSetters::iscn_allele(const Variant* msg) {
  return *msg->allele_.iscn_allele_;
}
const ::org::phenopackets::schema::v1::core::OntologyClass&
Variant::HasBitSetters::zygosity(const Variant* msg) {
  return *msg->zygosity_;
}
void Variant::set_allocated_hgvs_allele(::org::phenopackets::schema::v1::core::HgvsAllele* hgvs_allele) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_allele();
  if (hgvs_allele) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      hgvs_allele = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, hgvs_allele, submessage_arena);
    }
    set_has_hgvs_allele();
    allele_.hgvs_allele_ = hgvs_allele;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Variant.hgvs_allele)
}
void Variant::set_allocated_vcf_allele(::org::phenopackets::schema::v1::core::VcfAllele* vcf_allele) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_allele();
  if (vcf_allele) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      vcf_allele = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, vcf_allele, submessage_arena);
    }
    set_has_vcf_allele();
    allele_.vcf_allele_ = vcf_allele;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Variant.vcf_allele)
}
void Variant::set_allocated_spdi_allele(::org::phenopackets::schema::v1::core::SpdiAllele* spdi_allele) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_allele();
  if (spdi_allele) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      spdi_allele = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, spdi_allele, submessage_arena);
    }
    set_has_spdi_allele();
    allele_.spdi_allele_ = spdi_allele;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Variant.spdi_allele)
}
void Variant::set_allocated_iscn_allele(::org::phenopackets::schema::v1::core::IscnAllele* iscn_allele) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_allele();
  if (iscn_allele) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      iscn_allele = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, iscn_allele, submessage_arena);
    }
    set_has_iscn_allele();
    allele_.iscn_allele_ = iscn_allele;
  }
  // @@protoc_insertion_point(field_set_allocated:org.phenopackets.schema.v1.core.Variant.iscn_allele)
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Variant::kHgvsAlleleFieldNumber;
const int Variant::kVcfAlleleFieldNumber;
const int Variant::kSpdiAlleleFieldNumber;
const int Variant::kIscnAlleleFieldNumber;
const int Variant::kZygosityFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Variant::Variant()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.Variant)
}
Variant::Variant(const Variant& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_zygosity()) {
    zygosity_ = new ::org::phenopackets::schema::v1::core::OntologyClass(*from.zygosity_);
  } else {
    zygosity_ = nullptr;
  }
  clear_has_allele();
  switch (from.allele_case()) {
    case kHgvsAllele: {
      mutable_hgvs_allele()->::org::phenopackets::schema::v1::core::HgvsAllele::MergeFrom(from.hgvs_allele());
      break;
    }
    case kVcfAllele: {
      mutable_vcf_allele()->::org::phenopackets::schema::v1::core::VcfAllele::MergeFrom(from.vcf_allele());
      break;
    }
    case kSpdiAllele: {
      mutable_spdi_allele()->::org::phenopackets::schema::v1::core::SpdiAllele::MergeFrom(from.spdi_allele());
      break;
    }
    case kIscnAllele: {
      mutable_iscn_allele()->::org::phenopackets::schema::v1::core::IscnAllele::MergeFrom(from.iscn_allele());
      break;
    }
    case ALLELE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.Variant)
}

void Variant::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Variant_base_2eproto.base);
  zygosity_ = nullptr;
  clear_has_allele();
}

Variant::~Variant() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.Variant)
  SharedDtor();
}

void Variant::SharedDtor() {
  if (this != internal_default_instance()) delete zygosity_;
  if (has_allele()) {
    clear_allele();
  }
}

void Variant::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Variant& Variant::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Variant_base_2eproto.base);
  return *internal_default_instance();
}


void Variant::clear_allele() {
// @@protoc_insertion_point(one_of_clear_start:org.phenopackets.schema.v1.core.Variant)
  switch (allele_case()) {
    case kHgvsAllele: {
      delete allele_.hgvs_allele_;
      break;
    }
    case kVcfAllele: {
      delete allele_.vcf_allele_;
      break;
    }
    case kSpdiAllele: {
      delete allele_.spdi_allele_;
      break;
    }
    case kIscnAllele: {
      delete allele_.iscn_allele_;
      break;
    }
    case ALLELE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ALLELE_NOT_SET;
}


void Variant::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.Variant)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && zygosity_ != nullptr) {
    delete zygosity_;
  }
  zygosity_ = nullptr;
  clear_allele();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Variant::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .org.phenopackets.schema.v1.core.HgvsAllele hgvs_allele = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(mutable_hgvs_allele(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.VcfAllele vcf_allele = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(mutable_vcf_allele(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.SpdiAllele spdi_allele = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(mutable_spdi_allele(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.IscnAllele iscn_allele = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(mutable_iscn_allele(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .org.phenopackets.schema.v1.core.OntologyClass zygosity = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(mutable_zygosity(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Variant::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.Variant)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .org.phenopackets.schema.v1.core.HgvsAllele hgvs_allele = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_hgvs_allele()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.VcfAllele vcf_allele = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_vcf_allele()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.SpdiAllele spdi_allele = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_spdi_allele()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.IscnAllele iscn_allele = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_iscn_allele()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .org.phenopackets.schema.v1.core.OntologyClass zygosity = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_zygosity()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.Variant)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.Variant)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Variant::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.Variant)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.HgvsAllele hgvs_allele = 2;
  if (has_hgvs_allele()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::hgvs_allele(this), output);
  }

  // .org.phenopackets.schema.v1.core.VcfAllele vcf_allele = 3;
  if (has_vcf_allele()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, HasBitSetters::vcf_allele(this), output);
  }

  // .org.phenopackets.schema.v1.core.SpdiAllele spdi_allele = 4;
  if (has_spdi_allele()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, HasBitSetters::spdi_allele(this), output);
  }

  // .org.phenopackets.schema.v1.core.IscnAllele iscn_allele = 5;
  if (has_iscn_allele()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, HasBitSetters::iscn_allele(this), output);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass zygosity = 6;
  if (this->has_zygosity()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, HasBitSetters::zygosity(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.Variant)
}

::PROTOBUF_NAMESPACE_ID::uint8* Variant::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.Variant)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.HgvsAllele hgvs_allele = 2;
  if (has_hgvs_allele()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::hgvs_allele(this), target);
  }

  // .org.phenopackets.schema.v1.core.VcfAllele vcf_allele = 3;
  if (has_vcf_allele()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, HasBitSetters::vcf_allele(this), target);
  }

  // .org.phenopackets.schema.v1.core.SpdiAllele spdi_allele = 4;
  if (has_spdi_allele()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, HasBitSetters::spdi_allele(this), target);
  }

  // .org.phenopackets.schema.v1.core.IscnAllele iscn_allele = 5;
  if (has_iscn_allele()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, HasBitSetters::iscn_allele(this), target);
  }

  // .org.phenopackets.schema.v1.core.OntologyClass zygosity = 6;
  if (this->has_zygosity()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, HasBitSetters::zygosity(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.Variant)
  return target;
}

size_t Variant::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.Variant)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .org.phenopackets.schema.v1.core.OntologyClass zygosity = 6;
  if (this->has_zygosity()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *zygosity_);
  }

  switch (allele_case()) {
    // .org.phenopackets.schema.v1.core.HgvsAllele hgvs_allele = 2;
    case kHgvsAllele: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *allele_.hgvs_allele_);
      break;
    }
    // .org.phenopackets.schema.v1.core.VcfAllele vcf_allele = 3;
    case kVcfAllele: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *allele_.vcf_allele_);
      break;
    }
    // .org.phenopackets.schema.v1.core.SpdiAllele spdi_allele = 4;
    case kSpdiAllele: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *allele_.spdi_allele_);
      break;
    }
    // .org.phenopackets.schema.v1.core.IscnAllele iscn_allele = 5;
    case kIscnAllele: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *allele_.iscn_allele_);
      break;
    }
    case ALLELE_NOT_SET: {
      break;
    }
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Variant::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.Variant)
  GOOGLE_DCHECK_NE(&from, this);
  const Variant* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.Variant)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.Variant)
    MergeFrom(*source);
  }
}

void Variant::MergeFrom(const Variant& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.Variant)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_zygosity()) {
    mutable_zygosity()->::org::phenopackets::schema::v1::core::OntologyClass::MergeFrom(from.zygosity());
  }
  switch (from.allele_case()) {
    case kHgvsAllele: {
      mutable_hgvs_allele()->::org::phenopackets::schema::v1::core::HgvsAllele::MergeFrom(from.hgvs_allele());
      break;
    }
    case kVcfAllele: {
      mutable_vcf_allele()->::org::phenopackets::schema::v1::core::VcfAllele::MergeFrom(from.vcf_allele());
      break;
    }
    case kSpdiAllele: {
      mutable_spdi_allele()->::org::phenopackets::schema::v1::core::SpdiAllele::MergeFrom(from.spdi_allele());
      break;
    }
    case kIscnAllele: {
      mutable_iscn_allele()->::org::phenopackets::schema::v1::core::IscnAllele::MergeFrom(from.iscn_allele());
      break;
    }
    case ALLELE_NOT_SET: {
      break;
    }
  }
}

void Variant::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.Variant)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Variant::CopyFrom(const Variant& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.Variant)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Variant::IsInitialized() const {
  return true;
}

void Variant::Swap(Variant* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Variant::InternalSwap(Variant* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(zygosity_, other->zygosity_);
  swap(allele_, other->allele_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata Variant::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void HgvsAllele::InitAsDefaultInstance() {
}
class HgvsAllele::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int HgvsAllele::kIdFieldNumber;
const int HgvsAllele::kHgvsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

HgvsAllele::HgvsAllele()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.HgvsAllele)
}
HgvsAllele::HgvsAllele(const HgvsAllele& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  hgvs_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.hgvs().size() > 0) {
    hgvs_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.hgvs_);
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.HgvsAllele)
}

void HgvsAllele::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_HgvsAllele_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  hgvs_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

HgvsAllele::~HgvsAllele() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.HgvsAllele)
  SharedDtor();
}

void HgvsAllele::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  hgvs_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void HgvsAllele::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const HgvsAllele& HgvsAllele::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_HgvsAllele_base_2eproto.base);
  return *internal_default_instance();
}


void HgvsAllele::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.HgvsAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  hgvs_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* HgvsAllele::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.HgvsAllele.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string hgvs = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_hgvs(), ptr, ctx, "org.phenopackets.schema.v1.core.HgvsAllele.hgvs");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool HgvsAllele::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.HgvsAllele)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.HgvsAllele.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string hgvs = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_hgvs()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->hgvs().data(), static_cast(this->hgvs().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.HgvsAllele.hgvs"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.HgvsAllele)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.HgvsAllele)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void HgvsAllele::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.HgvsAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HgvsAllele.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string hgvs = 2;
  if (this->hgvs().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->hgvs().data(), static_cast(this->hgvs().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HgvsAllele.hgvs");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->hgvs(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.HgvsAllele)
}

::PROTOBUF_NAMESPACE_ID::uint8* HgvsAllele::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.HgvsAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HgvsAllele.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string hgvs = 2;
  if (this->hgvs().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->hgvs().data(), static_cast(this->hgvs().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.HgvsAllele.hgvs");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->hgvs(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.HgvsAllele)
  return target;
}

size_t HgvsAllele::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.HgvsAllele)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string hgvs = 2;
  if (this->hgvs().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->hgvs());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void HgvsAllele::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.HgvsAllele)
  GOOGLE_DCHECK_NE(&from, this);
  const HgvsAllele* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.HgvsAllele)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.HgvsAllele)
    MergeFrom(*source);
  }
}

void HgvsAllele::MergeFrom(const HgvsAllele& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.HgvsAllele)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.hgvs().size() > 0) {

    hgvs_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.hgvs_);
  }
}

void HgvsAllele::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.HgvsAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void HgvsAllele::CopyFrom(const HgvsAllele& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.HgvsAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool HgvsAllele::IsInitialized() const {
  return true;
}

void HgvsAllele::Swap(HgvsAllele* other) {
  if (other == this) return;
  InternalSwap(other);
}
void HgvsAllele::InternalSwap(HgvsAllele* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  hgvs_.Swap(&other->hgvs_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::PROTOBUF_NAMESPACE_ID::Metadata HgvsAllele::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void VcfAllele::InitAsDefaultInstance() {
}
class VcfAllele::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int VcfAllele::kVcfVersionFieldNumber;
const int VcfAllele::kGenomeAssemblyFieldNumber;
const int VcfAllele::kIdFieldNumber;
const int VcfAllele::kChrFieldNumber;
const int VcfAllele::kPosFieldNumber;
const int VcfAllele::kRefFieldNumber;
const int VcfAllele::kAltFieldNumber;
const int VcfAllele::kInfoFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

VcfAllele::VcfAllele()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.VcfAllele)
}
VcfAllele::VcfAllele(const VcfAllele& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  vcf_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.vcf_version().size() > 0) {
    vcf_version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.vcf_version_);
  }
  genome_assembly_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.genome_assembly().size() > 0) {
    genome_assembly_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.genome_assembly_);
  }
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  chr_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.chr().size() > 0) {
    chr_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.chr_);
  }
  ref_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.ref().size() > 0) {
    ref_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.ref_);
  }
  alt_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.alt().size() > 0) {
    alt_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.alt_);
  }
  info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.info().size() > 0) {
    info_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.info_);
  }
  pos_ = from.pos_;
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.VcfAllele)
}

void VcfAllele::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_VcfAllele_base_2eproto.base);
  vcf_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  genome_assembly_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  chr_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ref_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  alt_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  pos_ = 0;
}

VcfAllele::~VcfAllele() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.VcfAllele)
  SharedDtor();
}

void VcfAllele::SharedDtor() {
  vcf_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  genome_assembly_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  chr_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ref_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  alt_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void VcfAllele::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const VcfAllele& VcfAllele::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_VcfAllele_base_2eproto.base);
  return *internal_default_instance();
}


void VcfAllele::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.VcfAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  vcf_version_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  genome_assembly_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  chr_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ref_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  alt_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  info_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  pos_ = 0;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* VcfAllele::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string vcf_version = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_vcf_version(), ptr, ctx, "org.phenopackets.schema.v1.core.VcfAllele.vcf_version");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string genome_assembly = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_genome_assembly(), ptr, ctx, "org.phenopackets.schema.v1.core.VcfAllele.genome_assembly");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.VcfAllele.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string chr = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_chr(), ptr, ctx, "org.phenopackets.schema.v1.core.VcfAllele.chr");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 pos = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          pos_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string ref = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_ref(), ptr, ctx, "org.phenopackets.schema.v1.core.VcfAllele.ref");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string alt = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_alt(), ptr, ctx, "org.phenopackets.schema.v1.core.VcfAllele.alt");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string info = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_info(), ptr, ctx, "org.phenopackets.schema.v1.core.VcfAllele.info");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool VcfAllele::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.VcfAllele)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string vcf_version = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_vcf_version()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->vcf_version().data(), static_cast(this->vcf_version().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.VcfAllele.vcf_version"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string genome_assembly = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_genome_assembly()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->genome_assembly().data(), static_cast(this->genome_assembly().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.VcfAllele.genome_assembly"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string id = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.VcfAllele.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string chr = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_chr()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->chr().data(), static_cast(this->chr().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.VcfAllele.chr"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 pos = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (40 & 0xFF)) {

          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   ::PROTOBUF_NAMESPACE_ID::int32, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT32>(
                 input, &pos_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string ref = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_ref()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->ref().data(), static_cast(this->ref().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.VcfAllele.ref"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string alt = 7;
      case 7: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (58 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_alt()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->alt().data(), static_cast(this->alt().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.VcfAllele.alt"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string info = 8;
      case 8: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (66 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_info()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->info().data(), static_cast(this->info().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.VcfAllele.info"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.VcfAllele)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.VcfAllele)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void VcfAllele::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.VcfAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string vcf_version = 1;
  if (this->vcf_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->vcf_version().data(), static_cast(this->vcf_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.vcf_version");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->vcf_version(), output);
  }

  // string genome_assembly = 2;
  if (this->genome_assembly().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->genome_assembly().data(), static_cast(this->genome_assembly().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.genome_assembly");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->genome_assembly(), output);
  }

  // string id = 3;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->id(), output);
  }

  // string chr = 4;
  if (this->chr().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->chr().data(), static_cast(this->chr().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.chr");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->chr(), output);
  }

  // int32 pos = 5;
  if (this->pos() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32(5, this->pos(), output);
  }

  // string ref = 6;
  if (this->ref().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->ref().data(), static_cast(this->ref().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.ref");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->ref(), output);
  }

  // string alt = 7;
  if (this->alt().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->alt().data(), static_cast(this->alt().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.alt");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->alt(), output);
  }

  // string info = 8;
  if (this->info().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->info().data(), static_cast(this->info().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.info");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->info(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.VcfAllele)
}

::PROTOBUF_NAMESPACE_ID::uint8* VcfAllele::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.VcfAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string vcf_version = 1;
  if (this->vcf_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->vcf_version().data(), static_cast(this->vcf_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.vcf_version");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->vcf_version(), target);
  }

  // string genome_assembly = 2;
  if (this->genome_assembly().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->genome_assembly().data(), static_cast(this->genome_assembly().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.genome_assembly");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->genome_assembly(), target);
  }

  // string id = 3;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->id(), target);
  }

  // string chr = 4;
  if (this->chr().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->chr().data(), static_cast(this->chr().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.chr");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        4, this->chr(), target);
  }

  // int32 pos = 5;
  if (this->pos() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->pos(), target);
  }

  // string ref = 6;
  if (this->ref().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->ref().data(), static_cast(this->ref().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.ref");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        6, this->ref(), target);
  }

  // string alt = 7;
  if (this->alt().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->alt().data(), static_cast(this->alt().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.alt");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        7, this->alt(), target);
  }

  // string info = 8;
  if (this->info().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->info().data(), static_cast(this->info().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.VcfAllele.info");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        8, this->info(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.VcfAllele)
  return target;
}

size_t VcfAllele::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.VcfAllele)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string vcf_version = 1;
  if (this->vcf_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->vcf_version());
  }

  // string genome_assembly = 2;
  if (this->genome_assembly().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->genome_assembly());
  }

  // string id = 3;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string chr = 4;
  if (this->chr().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->chr());
  }

  // string ref = 6;
  if (this->ref().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->ref());
  }

  // string alt = 7;
  if (this->alt().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->alt());
  }

  // string info = 8;
  if (this->info().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->info());
  }

  // int32 pos = 5;
  if (this->pos() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->pos());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void VcfAllele::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.VcfAllele)
  GOOGLE_DCHECK_NE(&from, this);
  const VcfAllele* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.VcfAllele)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.VcfAllele)
    MergeFrom(*source);
  }
}

void VcfAllele::MergeFrom(const VcfAllele& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.VcfAllele)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.vcf_version().size() > 0) {

    vcf_version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.vcf_version_);
  }
  if (from.genome_assembly().size() > 0) {

    genome_assembly_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.genome_assembly_);
  }
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.chr().size() > 0) {

    chr_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.chr_);
  }
  if (from.ref().size() > 0) {

    ref_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.ref_);
  }
  if (from.alt().size() > 0) {

    alt_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.alt_);
  }
  if (from.info().size() > 0) {

    info_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.info_);
  }
  if (from.pos() != 0) {
    set_pos(from.pos());
  }
}

void VcfAllele::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.VcfAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void VcfAllele::CopyFrom(const VcfAllele& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.VcfAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool VcfAllele::IsInitialized() const {
  return true;
}

void VcfAllele::Swap(VcfAllele* other) {
  if (other == this) return;
  InternalSwap(other);
}
void VcfAllele::InternalSwap(VcfAllele* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  vcf_version_.Swap(&other->vcf_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  genome_assembly_.Swap(&other->genome_assembly_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  chr_.Swap(&other->chr_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  ref_.Swap(&other->ref_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  alt_.Swap(&other->alt_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  info_.Swap(&other->info_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(pos_, other->pos_);
}

::PROTOBUF_NAMESPACE_ID::Metadata VcfAllele::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SpdiAllele::InitAsDefaultInstance() {
}
class SpdiAllele::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SpdiAllele::kIdFieldNumber;
const int SpdiAllele::kSeqIdFieldNumber;
const int SpdiAllele::kPositionFieldNumber;
const int SpdiAllele::kDeletedSequenceFieldNumber;
const int SpdiAllele::kInsertedSequenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SpdiAllele::SpdiAllele()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.SpdiAllele)
}
SpdiAllele::SpdiAllele(const SpdiAllele& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  seq_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.seq_id().size() > 0) {
    seq_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.seq_id_);
  }
  deleted_sequence_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.deleted_sequence().size() > 0) {
    deleted_sequence_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.deleted_sequence_);
  }
  inserted_sequence_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.inserted_sequence().size() > 0) {
    inserted_sequence_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.inserted_sequence_);
  }
  position_ = from.position_;
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.SpdiAllele)
}

void SpdiAllele::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SpdiAllele_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  seq_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  deleted_sequence_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  inserted_sequence_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  position_ = 0;
}

SpdiAllele::~SpdiAllele() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.SpdiAllele)
  SharedDtor();
}

void SpdiAllele::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  seq_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  deleted_sequence_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  inserted_sequence_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SpdiAllele::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SpdiAllele& SpdiAllele::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SpdiAllele_base_2eproto.base);
  return *internal_default_instance();
}


void SpdiAllele::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.SpdiAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  seq_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  deleted_sequence_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  inserted_sequence_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  position_ = 0;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* SpdiAllele::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.SpdiAllele.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string seq_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_seq_id(), ptr, ctx, "org.phenopackets.schema.v1.core.SpdiAllele.seq_id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 position = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          position_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string deleted_sequence = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_deleted_sequence(), ptr, ctx, "org.phenopackets.schema.v1.core.SpdiAllele.deleted_sequence");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string inserted_sequence = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_inserted_sequence(), ptr, ctx, "org.phenopackets.schema.v1.core.SpdiAllele.inserted_sequence");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool SpdiAllele::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.SpdiAllele)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.SpdiAllele.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string seq_id = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_seq_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->seq_id().data(), static_cast(this->seq_id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.SpdiAllele.seq_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 position = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (24 & 0xFF)) {

          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   ::PROTOBUF_NAMESPACE_ID::int32, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT32>(
                 input, &position_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string deleted_sequence = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_deleted_sequence()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->deleted_sequence().data(), static_cast(this->deleted_sequence().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.SpdiAllele.deleted_sequence"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string inserted_sequence = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_inserted_sequence()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->inserted_sequence().data(), static_cast(this->inserted_sequence().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.SpdiAllele.inserted_sequence"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.SpdiAllele)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.SpdiAllele)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void SpdiAllele::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.SpdiAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string seq_id = 2;
  if (this->seq_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->seq_id().data(), static_cast(this->seq_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.seq_id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->seq_id(), output);
  }

  // int32 position = 3;
  if (this->position() != 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32(3, this->position(), output);
  }

  // string deleted_sequence = 4;
  if (this->deleted_sequence().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->deleted_sequence().data(), static_cast(this->deleted_sequence().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.deleted_sequence");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->deleted_sequence(), output);
  }

  // string inserted_sequence = 5;
  if (this->inserted_sequence().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->inserted_sequence().data(), static_cast(this->inserted_sequence().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.inserted_sequence");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->inserted_sequence(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.SpdiAllele)
}

::PROTOBUF_NAMESPACE_ID::uint8* SpdiAllele::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.SpdiAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string seq_id = 2;
  if (this->seq_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->seq_id().data(), static_cast(this->seq_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.seq_id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->seq_id(), target);
  }

  // int32 position = 3;
  if (this->position() != 0) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->position(), target);
  }

  // string deleted_sequence = 4;
  if (this->deleted_sequence().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->deleted_sequence().data(), static_cast(this->deleted_sequence().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.deleted_sequence");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        4, this->deleted_sequence(), target);
  }

  // string inserted_sequence = 5;
  if (this->inserted_sequence().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->inserted_sequence().data(), static_cast(this->inserted_sequence().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.SpdiAllele.inserted_sequence");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        5, this->inserted_sequence(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.SpdiAllele)
  return target;
}

size_t SpdiAllele::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.SpdiAllele)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string seq_id = 2;
  if (this->seq_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->seq_id());
  }

  // string deleted_sequence = 4;
  if (this->deleted_sequence().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->deleted_sequence());
  }

  // string inserted_sequence = 5;
  if (this->inserted_sequence().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->inserted_sequence());
  }

  // int32 position = 3;
  if (this->position() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->position());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void SpdiAllele::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.SpdiAllele)
  GOOGLE_DCHECK_NE(&from, this);
  const SpdiAllele* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.SpdiAllele)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.SpdiAllele)
    MergeFrom(*source);
  }
}

void SpdiAllele::MergeFrom(const SpdiAllele& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.SpdiAllele)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.seq_id().size() > 0) {

    seq_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.seq_id_);
  }
  if (from.deleted_sequence().size() > 0) {

    deleted_sequence_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.deleted_sequence_);
  }
  if (from.inserted_sequence().size() > 0) {

    inserted_sequence_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.inserted_sequence_);
  }
  if (from.position() != 0) {
    set_position(from.position());
  }
}

void SpdiAllele::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.SpdiAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SpdiAllele::CopyFrom(const SpdiAllele& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.SpdiAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SpdiAllele::IsInitialized() const {
  return true;
}

void SpdiAllele::Swap(SpdiAllele* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SpdiAllele::InternalSwap(SpdiAllele* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  seq_id_.Swap(&other->seq_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  deleted_sequence_.Swap(&other->deleted_sequence_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  inserted_sequence_.Swap(&other->inserted_sequence_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(position_, other->position_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SpdiAllele::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void IscnAllele::InitAsDefaultInstance() {
}
class IscnAllele::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int IscnAllele::kIdFieldNumber;
const int IscnAllele::kIscnFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

IscnAllele::IscnAllele()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:org.phenopackets.schema.v1.core.IscnAllele)
}
IscnAllele::IscnAllele(const IscnAllele& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  iscn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (from.iscn().size() > 0) {
    iscn_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.iscn_);
  }
  // @@protoc_insertion_point(copy_constructor:org.phenopackets.schema.v1.core.IscnAllele)
}

void IscnAllele::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IscnAllele_base_2eproto.base);
  id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  iscn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

IscnAllele::~IscnAllele() {
  // @@protoc_insertion_point(destructor:org.phenopackets.schema.v1.core.IscnAllele)
  SharedDtor();
}

void IscnAllele::SharedDtor() {
  id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  iscn_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void IscnAllele::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const IscnAllele& IscnAllele::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IscnAllele_base_2eproto.base);
  return *internal_default_instance();
}


void IscnAllele::Clear() {
// @@protoc_insertion_point(message_clear_start:org.phenopackets.schema.v1.core.IscnAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  iscn_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* IscnAllele::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "org.phenopackets.schema.v1.core.IscnAllele.id");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string iscn = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_iscn(), ptr, ctx, "org.phenopackets.schema.v1.core.IscnAllele.iscn");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool IscnAllele::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:org.phenopackets.schema.v1.core.IscnAllele)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast(this->id().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.IscnAllele.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string iscn = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_iscn()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->iscn().data(), static_cast(this->iscn().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "org.phenopackets.schema.v1.core.IscnAllele.iscn"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:org.phenopackets.schema.v1.core.IscnAllele)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:org.phenopackets.schema.v1.core.IscnAllele)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void IscnAllele::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:org.phenopackets.schema.v1.core.IscnAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.IscnAllele.id");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string iscn = 2;
  if (this->iscn().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->iscn().data(), static_cast(this->iscn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.IscnAllele.iscn");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->iscn(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:org.phenopackets.schema.v1.core.IscnAllele)
}

::PROTOBUF_NAMESPACE_ID::uint8* IscnAllele::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:org.phenopackets.schema.v1.core.IscnAllele)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast(this->id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.IscnAllele.id");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string iscn = 2;
  if (this->iscn().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->iscn().data(), static_cast(this->iscn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "org.phenopackets.schema.v1.core.IscnAllele.iscn");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        2, this->iscn(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:org.phenopackets.schema.v1.core.IscnAllele)
  return target;
}

size_t IscnAllele::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:org.phenopackets.schema.v1.core.IscnAllele)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string iscn = 2;
  if (this->iscn().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->iscn());
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void IscnAllele::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:org.phenopackets.schema.v1.core.IscnAllele)
  GOOGLE_DCHECK_NE(&from, this);
  const IscnAllele* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:org.phenopackets.schema.v1.core.IscnAllele)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:org.phenopackets.schema.v1.core.IscnAllele)
    MergeFrom(*source);
  }
}

void IscnAllele::MergeFrom(const IscnAllele& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:org.phenopackets.schema.v1.core.IscnAllele)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.iscn().size() > 0) {

    iscn_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.iscn_);
  }
}

void IscnAllele::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:org.phenopackets.schema.v1.core.IscnAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void IscnAllele::CopyFrom(const IscnAllele& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:org.phenopackets.schema.v1.core.IscnAllele)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IscnAllele::IsInitialized() const {
  return true;
}

void IscnAllele::Swap(IscnAllele* other) {
  if (other == this) return;
  InternalSwap(other);
}
void IscnAllele::InternalSwap(IscnAllele* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  iscn_.Swap(&other->iscn_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::PROTOBUF_NAMESPACE_ID::Metadata IscnAllele::GetMetadata() const {
  return GetMetadataStatic();
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace core
}  // namespace v1
}  // namespace schema
}  // namespace phenopackets
}  // namespace org
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::MetaData* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::MetaData >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::MetaData >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Update* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Update >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Update >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Resource* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Resource >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Resource >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::OntologyClass* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::OntologyClass >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::OntologyClass >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::PhenotypicFeature* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::PhenotypicFeature >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::PhenotypicFeature >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Evidence* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Evidence >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Evidence >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::ExternalReference* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::ExternalReference >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::ExternalReference >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Individual* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Individual >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Individual >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Biosample* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Biosample >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Biosample >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Procedure* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Procedure >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Procedure >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Age* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Age >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Age >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::AgeRange* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::AgeRange >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::AgeRange >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Disease* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Disease >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Disease >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Pedigree_Person* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Pedigree_Person >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Pedigree_Person >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Pedigree* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Pedigree >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Pedigree >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::HtsFile_IndividualToSampleIdentifiersEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::HtsFile* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::HtsFile >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::HtsFile >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Gene* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Gene >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Gene >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::Variant* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::Variant >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::Variant >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::HgvsAllele* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::HgvsAllele >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::HgvsAllele >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::VcfAllele* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::VcfAllele >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::VcfAllele >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::SpdiAllele* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::SpdiAllele >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::SpdiAllele >(arena);
}
template<> PROTOBUF_NOINLINE ::org::phenopackets::schema::v1::core::IscnAllele* Arena::CreateMaybeMessage< ::org::phenopackets::schema::v1::core::IscnAllele >(Arena* arena) {
  return Arena::CreateInternal< ::org::phenopackets::schema::v1::core::IscnAllele >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include 




© 2015 - 2024 Weber Informatics LLC | Privacy Policy