// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: ProtobufLAMessages.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "ProtobufLAMessages.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
// @@protoc_insertion_point(includes)

void protobuf_ShutdownFile_ProtobufLAMessages_2eproto() {
  delete protobuf_sgx_attributes_t::default_instance_;
  delete protobuf_sgx_ec256_public_t::default_instance_;
  delete protobuf_sgx_report_body_t::default_instance_;
  delete protobuf_sgx_report_t::default_instance_;
  delete protobuf_sgx_target_info_t::default_instance_;
  delete protobuf_sgx_dh_msg1_t::default_instance_;
  delete protobuf_sgx_dh_msg2_t::default_instance_;
  delete protobuf_sgx_dh_msg3_body_t::default_instance_;
  delete protobuf_sgx_dh_msg3_t::default_instance_;
  delete protobuf_post_LA_encrypted_msg_t::default_instance_;
}

#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
void protobuf_AddDesc_ProtobufLAMessages_2eproto_impl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#else
void protobuf_AddDesc_ProtobufLAMessages_2eproto() {
  static bool already_here = false;
  if (already_here) return;
  already_here = true;
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#endif
  protobuf_sgx_attributes_t::default_instance_ = new protobuf_sgx_attributes_t();
  protobuf_sgx_ec256_public_t::default_instance_ = new protobuf_sgx_ec256_public_t();
  protobuf_sgx_report_body_t::default_instance_ = new protobuf_sgx_report_body_t();
  protobuf_sgx_report_t::default_instance_ = new protobuf_sgx_report_t();
  protobuf_sgx_target_info_t::default_instance_ = new protobuf_sgx_target_info_t();
  protobuf_sgx_dh_msg1_t::default_instance_ = new protobuf_sgx_dh_msg1_t();
  protobuf_sgx_dh_msg2_t::default_instance_ = new protobuf_sgx_dh_msg2_t();
  protobuf_sgx_dh_msg3_body_t::default_instance_ = new protobuf_sgx_dh_msg3_body_t();
  protobuf_sgx_dh_msg3_t::default_instance_ = new protobuf_sgx_dh_msg3_t();
  protobuf_post_LA_encrypted_msg_t::default_instance_ = new protobuf_post_LA_encrypted_msg_t();
  protobuf_sgx_attributes_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_ec256_public_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_report_body_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_report_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_target_info_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_dh_msg1_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_dh_msg2_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_dh_msg3_body_t::default_instance_->InitAsDefaultInstance();
  protobuf_sgx_dh_msg3_t::default_instance_->InitAsDefaultInstance();
  protobuf_post_LA_encrypted_msg_t::default_instance_->InitAsDefaultInstance();
  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_ProtobufLAMessages_2eproto);
}

#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AddDesc_ProtobufLAMessages_2eproto_once_);
void protobuf_AddDesc_ProtobufLAMessages_2eproto() {
  ::google::protobuf::GoogleOnceInit(&protobuf_AddDesc_ProtobufLAMessages_2eproto_once_,
                 &protobuf_AddDesc_ProtobufLAMessages_2eproto_impl);
}
#else
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer_ProtobufLAMessages_2eproto {
  StaticDescriptorInitializer_ProtobufLAMessages_2eproto() {
    protobuf_AddDesc_ProtobufLAMessages_2eproto();
  }
} static_descriptor_initializer_ProtobufLAMessages_2eproto_;
#endif

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

#ifndef _MSC_VER
const int protobuf_sgx_attributes_t::kFlagsFieldNumber;
const int protobuf_sgx_attributes_t::kXfrmFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_attributes_t::protobuf_sgx_attributes_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_attributes_t)
}

void protobuf_sgx_attributes_t::InitAsDefaultInstance() {
}

protobuf_sgx_attributes_t::protobuf_sgx_attributes_t(const protobuf_sgx_attributes_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_attributes_t)
}

void protobuf_sgx_attributes_t::SharedCtor() {
  _cached_size_ = 0;
  flags_ = GOOGLE_ULONGLONG(0);
  xfrm_ = GOOGLE_ULONGLONG(0);
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_attributes_t::~protobuf_sgx_attributes_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_attributes_t)
  SharedDtor();
}

void protobuf_sgx_attributes_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void protobuf_sgx_attributes_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_attributes_t& protobuf_sgx_attributes_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_attributes_t* protobuf_sgx_attributes_t::default_instance_ = NULL;

protobuf_sgx_attributes_t* protobuf_sgx_attributes_t::New() const {
  return new protobuf_sgx_attributes_t;
}

void protobuf_sgx_attributes_t::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<protobuf_sgx_attributes_t*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  ZR_(flags_, xfrm_);

#undef OFFSET_OF_FIELD_
#undef ZR_

  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_attributes_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_attributes_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required uint64 flags = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &flags_)));
          set_has_flags();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_xfrm;
        break;
      }

      // required uint64 xfrm = 2;
      case 2: {
        if (tag == 16) {
         parse_xfrm:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &xfrm_)));
          set_has_xfrm();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_attributes_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_attributes_t)
  return false;
#undef DO_
}

void protobuf_sgx_attributes_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_attributes_t)
  // required uint64 flags = 1;
  if (has_flags()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->flags(), output);
  }

  // required uint64 xfrm = 2;
  if (has_xfrm()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(2, this->xfrm(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_attributes_t)
}

int protobuf_sgx_attributes_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required uint64 flags = 1;
    if (has_flags()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->flags());
    }

    // required uint64 xfrm = 2;
    if (has_xfrm()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->xfrm());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_attributes_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_attributes_t*>(&from));
}

void protobuf_sgx_attributes_t::MergeFrom(const protobuf_sgx_attributes_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_flags()) {
      set_flags(from.flags());
    }
    if (from.has_xfrm()) {
      set_xfrm(from.xfrm());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_attributes_t::CopyFrom(const protobuf_sgx_attributes_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_attributes_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void protobuf_sgx_attributes_t::Swap(protobuf_sgx_attributes_t* other) {
  if (other != this) {
    std::swap(flags_, other->flags_);
    std::swap(xfrm_, other->xfrm_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_attributes_t::GetTypeName() const {
  return "protobuf_sgx_attributes_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_ec256_public_t::kGxFieldNumber;
const int protobuf_sgx_ec256_public_t::kGyFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_ec256_public_t::protobuf_sgx_ec256_public_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_ec256_public_t)
}

void protobuf_sgx_ec256_public_t::InitAsDefaultInstance() {
}

protobuf_sgx_ec256_public_t::protobuf_sgx_ec256_public_t(const protobuf_sgx_ec256_public_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_ec256_public_t)
}

void protobuf_sgx_ec256_public_t::SharedCtor() {
  _cached_size_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_ec256_public_t::~protobuf_sgx_ec256_public_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_ec256_public_t)
  SharedDtor();
}

void protobuf_sgx_ec256_public_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void protobuf_sgx_ec256_public_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_ec256_public_t& protobuf_sgx_ec256_public_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_ec256_public_t* protobuf_sgx_ec256_public_t::default_instance_ = NULL;

protobuf_sgx_ec256_public_t* protobuf_sgx_ec256_public_t::New() const {
  return new protobuf_sgx_ec256_public_t;
}

void protobuf_sgx_ec256_public_t::Clear() {
  gx_.Clear();
  gy_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_ec256_public_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_ec256_public_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated uint32 gx = 1 [packed = true];
      case 1: {
        if (tag == 10) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_gx())));
        } else if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 10, input, this->mutable_gx())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_gy;
        break;
      }

      // repeated uint32 gy = 2 [packed = true];
      case 2: {
        if (tag == 18) {
         parse_gy:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_gy())));
        } else if (tag == 16) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 18, input, this->mutable_gy())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_ec256_public_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_ec256_public_t)
  return false;
#undef DO_
}

void protobuf_sgx_ec256_public_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_ec256_public_t)
  // repeated uint32 gx = 1 [packed = true];
  if (this->gx_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_gx_cached_byte_size_);
  }
  for (int i = 0; i < this->gx_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->gx(i), output);
  }

  // repeated uint32 gy = 2 [packed = true];
  if (this->gy_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_gy_cached_byte_size_);
  }
  for (int i = 0; i < this->gy_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->gy(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_ec256_public_t)
}

int protobuf_sgx_ec256_public_t::ByteSize() const {
  int total_size = 0;

  // repeated uint32 gx = 1 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->gx_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->gx(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _gx_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 gy = 2 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->gy_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->gy(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _gy_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_ec256_public_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_ec256_public_t*>(&from));
}

void protobuf_sgx_ec256_public_t::MergeFrom(const protobuf_sgx_ec256_public_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  gx_.MergeFrom(from.gx_);
  gy_.MergeFrom(from.gy_);
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_ec256_public_t::CopyFrom(const protobuf_sgx_ec256_public_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_ec256_public_t::IsInitialized() const {

  return true;
}

void protobuf_sgx_ec256_public_t::Swap(protobuf_sgx_ec256_public_t* other) {
  if (other != this) {
    gx_.Swap(&other->gx_);
    gy_.Swap(&other->gy_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_ec256_public_t::GetTypeName() const {
  return "protobuf_sgx_ec256_public_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_report_body_t::kCpuSvnFieldNumber;
const int protobuf_sgx_report_body_t::kMiscSelectFieldNumber;
const int protobuf_sgx_report_body_t::kReserved1FieldNumber;
const int protobuf_sgx_report_body_t::kAttributesFieldNumber;
const int protobuf_sgx_report_body_t::kMrEnclaveFieldNumber;
const int protobuf_sgx_report_body_t::kReserved2FieldNumber;
const int protobuf_sgx_report_body_t::kMrSignerFieldNumber;
const int protobuf_sgx_report_body_t::kReserved3FieldNumber;
const int protobuf_sgx_report_body_t::kIsvProdIdFieldNumber;
const int protobuf_sgx_report_body_t::kIsvSvnFieldNumber;
const int protobuf_sgx_report_body_t::kReserved4FieldNumber;
const int protobuf_sgx_report_body_t::kReportDataFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_report_body_t::protobuf_sgx_report_body_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_report_body_t)
}

void protobuf_sgx_report_body_t::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  attributes_ = const_cast< ::protobuf_sgx_attributes_t*>(
      ::protobuf_sgx_attributes_t::internal_default_instance());
#else
  attributes_ = const_cast< ::protobuf_sgx_attributes_t*>(&::protobuf_sgx_attributes_t::default_instance());
#endif
}

protobuf_sgx_report_body_t::protobuf_sgx_report_body_t(const protobuf_sgx_report_body_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_report_body_t)
}

void protobuf_sgx_report_body_t::SharedCtor() {
  _cached_size_ = 0;
  misc_select_ = 0u;
  attributes_ = NULL;
  isv_prod_id_ = 0u;
  isv_svn_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_report_body_t::~protobuf_sgx_report_body_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_report_body_t)
  SharedDtor();
}

void protobuf_sgx_report_body_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete attributes_;
  }
}

void protobuf_sgx_report_body_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_report_body_t& protobuf_sgx_report_body_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_report_body_t* protobuf_sgx_report_body_t::default_instance_ = NULL;

protobuf_sgx_report_body_t* protobuf_sgx_report_body_t::New() const {
  return new protobuf_sgx_report_body_t;
}

void protobuf_sgx_report_body_t::Clear() {
  if (_has_bits_[0 / 32] & 10) {
    misc_select_ = 0u;
    if (has_attributes()) {
      if (attributes_ != NULL) attributes_->::protobuf_sgx_attributes_t::Clear();
    }
  }
  if (_has_bits_[8 / 32] & 768) {
    isv_prod_id_ = 0u;
    isv_svn_ = 0u;
  }
  cpu_svn_.Clear();
  reserved1_.Clear();
  mr_enclave_.Clear();
  reserved2_.Clear();
  mr_signer_.Clear();
  reserved3_.Clear();
  reserved4_.Clear();
  report_data_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_report_body_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_report_body_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated uint32 cpu_svn = 1 [packed = true];
      case 1: {
        if (tag == 10) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_cpu_svn())));
        } else if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 10, input, this->mutable_cpu_svn())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_reserved1;
        break;
      }

      // repeated uint32 reserved1 = 2 [packed = true];
      case 2: {
        if (tag == 18) {
         parse_reserved1:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_reserved1())));
        } else if (tag == 16) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 18, input, this->mutable_reserved1())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_mr_enclave;
        break;
      }

      // repeated uint32 mr_enclave = 3 [packed = true];
      case 3: {
        if (tag == 26) {
         parse_mr_enclave:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_mr_enclave())));
        } else if (tag == 24) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 26, input, this->mutable_mr_enclave())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_reserved2;
        break;
      }

      // repeated uint32 reserved2 = 4 [packed = true];
      case 4: {
        if (tag == 34) {
         parse_reserved2:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_reserved2())));
        } else if (tag == 32) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 34, input, this->mutable_reserved2())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_mr_signer;
        break;
      }

      // repeated uint32 mr_signer = 5 [packed = true];
      case 5: {
        if (tag == 42) {
         parse_mr_signer:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_mr_signer())));
        } else if (tag == 40) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 42, input, this->mutable_mr_signer())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(50)) goto parse_reserved3;
        break;
      }

      // repeated uint32 reserved3 = 6 [packed = true];
      case 6: {
        if (tag == 50) {
         parse_reserved3:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_reserved3())));
        } else if (tag == 48) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 50, input, this->mutable_reserved3())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_reserved4;
        break;
      }

      // repeated uint32 reserved4 = 7 [packed = true];
      case 7: {
        if (tag == 58) {
         parse_reserved4:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_reserved4())));
        } else if (tag == 56) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 58, input, this->mutable_reserved4())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(66)) goto parse_report_data;
        break;
      }

      // repeated uint32 report_data = 8 [packed = true];
      case 8: {
        if (tag == 66) {
         parse_report_data:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_report_data())));
        } else if (tag == 64) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 66, input, this->mutable_report_data())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(72)) goto parse_misc_select;
        break;
      }

      // required uint32 misc_select = 9;
      case 9: {
        if (tag == 72) {
         parse_misc_select:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &misc_select_)));
          set_has_misc_select();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(82)) goto parse_attributes;
        break;
      }

      // required .protobuf_sgx_attributes_t attributes = 10;
      case 10: {
        if (tag == 82) {
         parse_attributes:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_attributes()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(88)) goto parse_isv_prod_id;
        break;
      }

      // required uint32 isv_prod_id = 11;
      case 11: {
        if (tag == 88) {
         parse_isv_prod_id:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &isv_prod_id_)));
          set_has_isv_prod_id();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(96)) goto parse_isv_svn;
        break;
      }

      // required uint32 isv_svn = 12;
      case 12: {
        if (tag == 96) {
         parse_isv_svn:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &isv_svn_)));
          set_has_isv_svn();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_report_body_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_report_body_t)
  return false;
#undef DO_
}

void protobuf_sgx_report_body_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_report_body_t)
  // repeated uint32 cpu_svn = 1 [packed = true];
  if (this->cpu_svn_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_cpu_svn_cached_byte_size_);
  }
  for (int i = 0; i < this->cpu_svn_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->cpu_svn(i), output);
  }

  // repeated uint32 reserved1 = 2 [packed = true];
  if (this->reserved1_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_reserved1_cached_byte_size_);
  }
  for (int i = 0; i < this->reserved1_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->reserved1(i), output);
  }

  // repeated uint32 mr_enclave = 3 [packed = true];
  if (this->mr_enclave_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_mr_enclave_cached_byte_size_);
  }
  for (int i = 0; i < this->mr_enclave_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->mr_enclave(i), output);
  }

  // repeated uint32 reserved2 = 4 [packed = true];
  if (this->reserved2_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(4, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_reserved2_cached_byte_size_);
  }
  for (int i = 0; i < this->reserved2_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->reserved2(i), output);
  }

  // repeated uint32 mr_signer = 5 [packed = true];
  if (this->mr_signer_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(5, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_mr_signer_cached_byte_size_);
  }
  for (int i = 0; i < this->mr_signer_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->mr_signer(i), output);
  }

  // repeated uint32 reserved3 = 6 [packed = true];
  if (this->reserved3_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(6, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_reserved3_cached_byte_size_);
  }
  for (int i = 0; i < this->reserved3_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->reserved3(i), output);
  }

  // repeated uint32 reserved4 = 7 [packed = true];
  if (this->reserved4_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(7, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_reserved4_cached_byte_size_);
  }
  for (int i = 0; i < this->reserved4_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->reserved4(i), output);
  }

  // repeated uint32 report_data = 8 [packed = true];
  if (this->report_data_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(8, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_report_data_cached_byte_size_);
  }
  for (int i = 0; i < this->report_data_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->report_data(i), output);
  }

  // required uint32 misc_select = 9;
  if (has_misc_select()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(9, this->misc_select(), output);
  }

  // required .protobuf_sgx_attributes_t attributes = 10;
  if (has_attributes()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      10, this->attributes(), output);
  }

  // required uint32 isv_prod_id = 11;
  if (has_isv_prod_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(11, this->isv_prod_id(), output);
  }

  // required uint32 isv_svn = 12;
  if (has_isv_svn()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(12, this->isv_svn(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_report_body_t)
}

int protobuf_sgx_report_body_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    // required uint32 misc_select = 9;
    if (has_misc_select()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->misc_select());
    }

    // required .protobuf_sgx_attributes_t attributes = 10;
    if (has_attributes()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->attributes());
    }

  }
  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    // required uint32 isv_prod_id = 11;
    if (has_isv_prod_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->isv_prod_id());
    }

    // required uint32 isv_svn = 12;
    if (has_isv_svn()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->isv_svn());
    }

  }
  // repeated uint32 cpu_svn = 1 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->cpu_svn_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->cpu_svn(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cpu_svn_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 reserved1 = 2 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->reserved1_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->reserved1(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _reserved1_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 mr_enclave = 3 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->mr_enclave_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->mr_enclave(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _mr_enclave_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 reserved2 = 4 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->reserved2_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->reserved2(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _reserved2_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 mr_signer = 5 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->mr_signer_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->mr_signer(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _mr_signer_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 reserved3 = 6 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->reserved3_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->reserved3(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _reserved3_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 reserved4 = 7 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->reserved4_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->reserved4(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _reserved4_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 report_data = 8 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->report_data_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->report_data(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _report_data_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_report_body_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_report_body_t*>(&from));
}

void protobuf_sgx_report_body_t::MergeFrom(const protobuf_sgx_report_body_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  cpu_svn_.MergeFrom(from.cpu_svn_);
  reserved1_.MergeFrom(from.reserved1_);
  mr_enclave_.MergeFrom(from.mr_enclave_);
  reserved2_.MergeFrom(from.reserved2_);
  mr_signer_.MergeFrom(from.mr_signer_);
  reserved3_.MergeFrom(from.reserved3_);
  reserved4_.MergeFrom(from.reserved4_);
  report_data_.MergeFrom(from.report_data_);
  if (from._has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    if (from.has_misc_select()) {
      set_misc_select(from.misc_select());
    }
    if (from.has_attributes()) {
      mutable_attributes()->::protobuf_sgx_attributes_t::MergeFrom(from.attributes());
    }
  }
  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    if (from.has_isv_prod_id()) {
      set_isv_prod_id(from.isv_prod_id());
    }
    if (from.has_isv_svn()) {
      set_isv_svn(from.isv_svn());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_report_body_t::CopyFrom(const protobuf_sgx_report_body_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_report_body_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000030a) != 0x0000030a) return false;

  if (has_attributes()) {
    if (!this->attributes().IsInitialized()) return false;
  }
  return true;
}

void protobuf_sgx_report_body_t::Swap(protobuf_sgx_report_body_t* other) {
  if (other != this) {
    cpu_svn_.Swap(&other->cpu_svn_);
    std::swap(misc_select_, other->misc_select_);
    reserved1_.Swap(&other->reserved1_);
    std::swap(attributes_, other->attributes_);
    mr_enclave_.Swap(&other->mr_enclave_);
    reserved2_.Swap(&other->reserved2_);
    mr_signer_.Swap(&other->mr_signer_);
    reserved3_.Swap(&other->reserved3_);
    std::swap(isv_prod_id_, other->isv_prod_id_);
    std::swap(isv_svn_, other->isv_svn_);
    reserved4_.Swap(&other->reserved4_);
    report_data_.Swap(&other->report_data_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_report_body_t::GetTypeName() const {
  return "protobuf_sgx_report_body_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_report_t::kBodyFieldNumber;
const int protobuf_sgx_report_t::kKeyIdFieldNumber;
const int protobuf_sgx_report_t::kMacFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_report_t::protobuf_sgx_report_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_report_t)
}

void protobuf_sgx_report_t::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  body_ = const_cast< ::protobuf_sgx_report_body_t*>(
      ::protobuf_sgx_report_body_t::internal_default_instance());
#else
  body_ = const_cast< ::protobuf_sgx_report_body_t*>(&::protobuf_sgx_report_body_t::default_instance());
#endif
}

protobuf_sgx_report_t::protobuf_sgx_report_t(const protobuf_sgx_report_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_report_t)
}

void protobuf_sgx_report_t::SharedCtor() {
  _cached_size_ = 0;
  body_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_report_t::~protobuf_sgx_report_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_report_t)
  SharedDtor();
}

void protobuf_sgx_report_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete body_;
  }
}

void protobuf_sgx_report_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_report_t& protobuf_sgx_report_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_report_t* protobuf_sgx_report_t::default_instance_ = NULL;

protobuf_sgx_report_t* protobuf_sgx_report_t::New() const {
  return new protobuf_sgx_report_t;
}

void protobuf_sgx_report_t::Clear() {
  if (has_body()) {
    if (body_ != NULL) body_->::protobuf_sgx_report_body_t::Clear();
  }
  key_id_.Clear();
  mac_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_report_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_report_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .protobuf_sgx_report_body_t body = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_body()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_key_id;
        break;
      }

      // repeated uint32 key_id = 2 [packed = true];
      case 2: {
        if (tag == 18) {
         parse_key_id:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_key_id())));
        } else if (tag == 16) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 18, input, this->mutable_key_id())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_mac;
        break;
      }

      // repeated uint32 mac = 3 [packed = true];
      case 3: {
        if (tag == 26) {
         parse_mac:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_mac())));
        } else if (tag == 24) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 26, input, this->mutable_mac())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_report_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_report_t)
  return false;
#undef DO_
}

void protobuf_sgx_report_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_report_t)
  // required .protobuf_sgx_report_body_t body = 1;
  if (has_body()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->body(), output);
  }

  // repeated uint32 key_id = 2 [packed = true];
  if (this->key_id_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_key_id_cached_byte_size_);
  }
  for (int i = 0; i < this->key_id_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->key_id(i), output);
  }

  // repeated uint32 mac = 3 [packed = true];
  if (this->mac_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_mac_cached_byte_size_);
  }
  for (int i = 0; i < this->mac_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->mac(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_report_t)
}

int protobuf_sgx_report_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required .protobuf_sgx_report_body_t body = 1;
    if (has_body()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->body());
    }

  }
  // repeated uint32 key_id = 2 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->key_id_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->key_id(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _key_id_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 mac = 3 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->mac_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->mac(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _mac_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_report_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_report_t*>(&from));
}

void protobuf_sgx_report_t::MergeFrom(const protobuf_sgx_report_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  key_id_.MergeFrom(from.key_id_);
  mac_.MergeFrom(from.mac_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_body()) {
      mutable_body()->::protobuf_sgx_report_body_t::MergeFrom(from.body());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_report_t::CopyFrom(const protobuf_sgx_report_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_report_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  if (has_body()) {
    if (!this->body().IsInitialized()) return false;
  }
  return true;
}

void protobuf_sgx_report_t::Swap(protobuf_sgx_report_t* other) {
  if (other != this) {
    std::swap(body_, other->body_);
    key_id_.Swap(&other->key_id_);
    mac_.Swap(&other->mac_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_report_t::GetTypeName() const {
  return "protobuf_sgx_report_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_target_info_t::kMrEnclaveFieldNumber;
const int protobuf_sgx_target_info_t::kAttributesFieldNumber;
const int protobuf_sgx_target_info_t::kReserved1FieldNumber;
const int protobuf_sgx_target_info_t::kMiscSelectFieldNumber;
const int protobuf_sgx_target_info_t::kReserved2FieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_target_info_t::protobuf_sgx_target_info_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_target_info_t)
}

void protobuf_sgx_target_info_t::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  attributes_ = const_cast< ::protobuf_sgx_attributes_t*>(
      ::protobuf_sgx_attributes_t::internal_default_instance());
#else
  attributes_ = const_cast< ::protobuf_sgx_attributes_t*>(&::protobuf_sgx_attributes_t::default_instance());
#endif
}

protobuf_sgx_target_info_t::protobuf_sgx_target_info_t(const protobuf_sgx_target_info_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_target_info_t)
}

void protobuf_sgx_target_info_t::SharedCtor() {
  _cached_size_ = 0;
  attributes_ = NULL;
  misc_select_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_target_info_t::~protobuf_sgx_target_info_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_target_info_t)
  SharedDtor();
}

void protobuf_sgx_target_info_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete attributes_;
  }
}

void protobuf_sgx_target_info_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_target_info_t& protobuf_sgx_target_info_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_target_info_t* protobuf_sgx_target_info_t::default_instance_ = NULL;

protobuf_sgx_target_info_t* protobuf_sgx_target_info_t::New() const {
  return new protobuf_sgx_target_info_t;
}

void protobuf_sgx_target_info_t::Clear() {
  if (_has_bits_[0 / 32] & 10) {
    if (has_attributes()) {
      if (attributes_ != NULL) attributes_->::protobuf_sgx_attributes_t::Clear();
    }
    misc_select_ = 0u;
  }
  mr_enclave_.Clear();
  reserved1_.Clear();
  reserved2_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_target_info_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_target_info_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated uint32 mr_enclave = 1 [packed = true];
      case 1: {
        if (tag == 10) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_mr_enclave())));
        } else if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 10, input, this->mutable_mr_enclave())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_reserved1;
        break;
      }

      // repeated uint32 reserved1 = 2 [packed = true];
      case 2: {
        if (tag == 18) {
         parse_reserved1:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_reserved1())));
        } else if (tag == 16) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 18, input, this->mutable_reserved1())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_reserved2;
        break;
      }

      // repeated uint32 reserved2 = 3 [packed = true];
      case 3: {
        if (tag == 26) {
         parse_reserved2:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_reserved2())));
        } else if (tag == 24) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 26, input, this->mutable_reserved2())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_attributes;
        break;
      }

      // required .protobuf_sgx_attributes_t attributes = 4;
      case 4: {
        if (tag == 34) {
         parse_attributes:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_attributes()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(40)) goto parse_misc_select;
        break;
      }

      // required uint32 misc_select = 5;
      case 5: {
        if (tag == 40) {
         parse_misc_select:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &misc_select_)));
          set_has_misc_select();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_target_info_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_target_info_t)
  return false;
#undef DO_
}

void protobuf_sgx_target_info_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_target_info_t)
  // repeated uint32 mr_enclave = 1 [packed = true];
  if (this->mr_enclave_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_mr_enclave_cached_byte_size_);
  }
  for (int i = 0; i < this->mr_enclave_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->mr_enclave(i), output);
  }

  // repeated uint32 reserved1 = 2 [packed = true];
  if (this->reserved1_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_reserved1_cached_byte_size_);
  }
  for (int i = 0; i < this->reserved1_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->reserved1(i), output);
  }

  // repeated uint32 reserved2 = 3 [packed = true];
  if (this->reserved2_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_reserved2_cached_byte_size_);
  }
  for (int i = 0; i < this->reserved2_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->reserved2(i), output);
  }

  // required .protobuf_sgx_attributes_t attributes = 4;
  if (has_attributes()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      4, this->attributes(), output);
  }

  // required uint32 misc_select = 5;
  if (has_misc_select()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(5, this->misc_select(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_target_info_t)
}

int protobuf_sgx_target_info_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    // required .protobuf_sgx_attributes_t attributes = 4;
    if (has_attributes()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->attributes());
    }

    // required uint32 misc_select = 5;
    if (has_misc_select()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->misc_select());
    }

  }
  // repeated uint32 mr_enclave = 1 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->mr_enclave_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->mr_enclave(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _mr_enclave_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 reserved1 = 2 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->reserved1_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->reserved1(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _reserved1_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated uint32 reserved2 = 3 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->reserved2_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->reserved2(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _reserved2_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_target_info_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_target_info_t*>(&from));
}

void protobuf_sgx_target_info_t::MergeFrom(const protobuf_sgx_target_info_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  mr_enclave_.MergeFrom(from.mr_enclave_);
  reserved1_.MergeFrom(from.reserved1_);
  reserved2_.MergeFrom(from.reserved2_);
  if (from._has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    if (from.has_attributes()) {
      mutable_attributes()->::protobuf_sgx_attributes_t::MergeFrom(from.attributes());
    }
    if (from.has_misc_select()) {
      set_misc_select(from.misc_select());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_target_info_t::CopyFrom(const protobuf_sgx_target_info_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_target_info_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000000a) != 0x0000000a) return false;

  if (has_attributes()) {
    if (!this->attributes().IsInitialized()) return false;
  }
  return true;
}

void protobuf_sgx_target_info_t::Swap(protobuf_sgx_target_info_t* other) {
  if (other != this) {
    mr_enclave_.Swap(&other->mr_enclave_);
    std::swap(attributes_, other->attributes_);
    reserved1_.Swap(&other->reserved1_);
    std::swap(misc_select_, other->misc_select_);
    reserved2_.Swap(&other->reserved2_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_target_info_t::GetTypeName() const {
  return "protobuf_sgx_target_info_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_dh_msg1_t::kGAFieldNumber;
const int protobuf_sgx_dh_msg1_t::kTargetFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_dh_msg1_t::protobuf_sgx_dh_msg1_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_dh_msg1_t)
}

void protobuf_sgx_dh_msg1_t::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  g_a_ = const_cast< ::protobuf_sgx_ec256_public_t*>(
      ::protobuf_sgx_ec256_public_t::internal_default_instance());
#else
  g_a_ = const_cast< ::protobuf_sgx_ec256_public_t*>(&::protobuf_sgx_ec256_public_t::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  target_ = const_cast< ::protobuf_sgx_target_info_t*>(
      ::protobuf_sgx_target_info_t::internal_default_instance());
#else
  target_ = const_cast< ::protobuf_sgx_target_info_t*>(&::protobuf_sgx_target_info_t::default_instance());
#endif
}

protobuf_sgx_dh_msg1_t::protobuf_sgx_dh_msg1_t(const protobuf_sgx_dh_msg1_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_dh_msg1_t)
}

void protobuf_sgx_dh_msg1_t::SharedCtor() {
  _cached_size_ = 0;
  g_a_ = NULL;
  target_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_dh_msg1_t::~protobuf_sgx_dh_msg1_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_dh_msg1_t)
  SharedDtor();
}

void protobuf_sgx_dh_msg1_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete g_a_;
    delete target_;
  }
}

void protobuf_sgx_dh_msg1_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_dh_msg1_t& protobuf_sgx_dh_msg1_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_dh_msg1_t* protobuf_sgx_dh_msg1_t::default_instance_ = NULL;

protobuf_sgx_dh_msg1_t* protobuf_sgx_dh_msg1_t::New() const {
  return new protobuf_sgx_dh_msg1_t;
}

void protobuf_sgx_dh_msg1_t::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_g_a()) {
      if (g_a_ != NULL) g_a_->::protobuf_sgx_ec256_public_t::Clear();
    }
    if (has_target()) {
      if (target_ != NULL) target_->::protobuf_sgx_target_info_t::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_dh_msg1_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_dh_msg1_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .protobuf_sgx_ec256_public_t g_a = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_g_a()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_target;
        break;
      }

      // required .protobuf_sgx_target_info_t target = 2;
      case 2: {
        if (tag == 18) {
         parse_target:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_target()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_dh_msg1_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_dh_msg1_t)
  return false;
#undef DO_
}

void protobuf_sgx_dh_msg1_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_dh_msg1_t)
  // required .protobuf_sgx_ec256_public_t g_a = 1;
  if (has_g_a()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->g_a(), output);
  }

  // required .protobuf_sgx_target_info_t target = 2;
  if (has_target()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->target(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_dh_msg1_t)
}

int protobuf_sgx_dh_msg1_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required .protobuf_sgx_ec256_public_t g_a = 1;
    if (has_g_a()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->g_a());
    }

    // required .protobuf_sgx_target_info_t target = 2;
    if (has_target()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->target());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_dh_msg1_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_dh_msg1_t*>(&from));
}

void protobuf_sgx_dh_msg1_t::MergeFrom(const protobuf_sgx_dh_msg1_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_g_a()) {
      mutable_g_a()->::protobuf_sgx_ec256_public_t::MergeFrom(from.g_a());
    }
    if (from.has_target()) {
      mutable_target()->::protobuf_sgx_target_info_t::MergeFrom(from.target());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_dh_msg1_t::CopyFrom(const protobuf_sgx_dh_msg1_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_dh_msg1_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  if (has_target()) {
    if (!this->target().IsInitialized()) return false;
  }
  return true;
}

void protobuf_sgx_dh_msg1_t::Swap(protobuf_sgx_dh_msg1_t* other) {
  if (other != this) {
    std::swap(g_a_, other->g_a_);
    std::swap(target_, other->target_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_dh_msg1_t::GetTypeName() const {
  return "protobuf_sgx_dh_msg1_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_dh_msg2_t::kGBFieldNumber;
const int protobuf_sgx_dh_msg2_t::kReportFieldNumber;
const int protobuf_sgx_dh_msg2_t::kCmacFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_dh_msg2_t::protobuf_sgx_dh_msg2_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_dh_msg2_t)
}

void protobuf_sgx_dh_msg2_t::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  g_b_ = const_cast< ::protobuf_sgx_ec256_public_t*>(
      ::protobuf_sgx_ec256_public_t::internal_default_instance());
#else
  g_b_ = const_cast< ::protobuf_sgx_ec256_public_t*>(&::protobuf_sgx_ec256_public_t::default_instance());
#endif
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  report_ = const_cast< ::protobuf_sgx_report_t*>(
      ::protobuf_sgx_report_t::internal_default_instance());
#else
  report_ = const_cast< ::protobuf_sgx_report_t*>(&::protobuf_sgx_report_t::default_instance());
#endif
}

protobuf_sgx_dh_msg2_t::protobuf_sgx_dh_msg2_t(const protobuf_sgx_dh_msg2_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_dh_msg2_t)
}

void protobuf_sgx_dh_msg2_t::SharedCtor() {
  _cached_size_ = 0;
  g_b_ = NULL;
  report_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_dh_msg2_t::~protobuf_sgx_dh_msg2_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_dh_msg2_t)
  SharedDtor();
}

void protobuf_sgx_dh_msg2_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete g_b_;
    delete report_;
  }
}

void protobuf_sgx_dh_msg2_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_dh_msg2_t& protobuf_sgx_dh_msg2_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_dh_msg2_t* protobuf_sgx_dh_msg2_t::default_instance_ = NULL;

protobuf_sgx_dh_msg2_t* protobuf_sgx_dh_msg2_t::New() const {
  return new protobuf_sgx_dh_msg2_t;
}

void protobuf_sgx_dh_msg2_t::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_g_b()) {
      if (g_b_ != NULL) g_b_->::protobuf_sgx_ec256_public_t::Clear();
    }
    if (has_report()) {
      if (report_ != NULL) report_->::protobuf_sgx_report_t::Clear();
    }
  }
  cmac_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_dh_msg2_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_dh_msg2_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .protobuf_sgx_ec256_public_t g_b = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_g_b()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_report;
        break;
      }

      // required .protobuf_sgx_report_t report = 2;
      case 2: {
        if (tag == 18) {
         parse_report:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_report()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_cmac;
        break;
      }

      // repeated uint32 cmac = 3 [packed = true];
      case 3: {
        if (tag == 26) {
         parse_cmac:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_cmac())));
        } else if (tag == 24) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 26, input, this->mutable_cmac())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_dh_msg2_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_dh_msg2_t)
  return false;
#undef DO_
}

void protobuf_sgx_dh_msg2_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_dh_msg2_t)
  // required .protobuf_sgx_ec256_public_t g_b = 1;
  if (has_g_b()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->g_b(), output);
  }

  // required .protobuf_sgx_report_t report = 2;
  if (has_report()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      2, this->report(), output);
  }

  // repeated uint32 cmac = 3 [packed = true];
  if (this->cmac_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_cmac_cached_byte_size_);
  }
  for (int i = 0; i < this->cmac_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->cmac(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_dh_msg2_t)
}

int protobuf_sgx_dh_msg2_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required .protobuf_sgx_ec256_public_t g_b = 1;
    if (has_g_b()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->g_b());
    }

    // required .protobuf_sgx_report_t report = 2;
    if (has_report()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->report());
    }

  }
  // repeated uint32 cmac = 3 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->cmac_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->cmac(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cmac_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_dh_msg2_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_dh_msg2_t*>(&from));
}

void protobuf_sgx_dh_msg2_t::MergeFrom(const protobuf_sgx_dh_msg2_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  cmac_.MergeFrom(from.cmac_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_g_b()) {
      mutable_g_b()->::protobuf_sgx_ec256_public_t::MergeFrom(from.g_b());
    }
    if (from.has_report()) {
      mutable_report()->::protobuf_sgx_report_t::MergeFrom(from.report());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_dh_msg2_t::CopyFrom(const protobuf_sgx_dh_msg2_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_dh_msg2_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  if (has_report()) {
    if (!this->report().IsInitialized()) return false;
  }
  return true;
}

void protobuf_sgx_dh_msg2_t::Swap(protobuf_sgx_dh_msg2_t* other) {
  if (other != this) {
    std::swap(g_b_, other->g_b_);
    std::swap(report_, other->report_);
    cmac_.Swap(&other->cmac_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_dh_msg2_t::GetTypeName() const {
  return "protobuf_sgx_dh_msg2_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_dh_msg3_body_t::kReportFieldNumber;
const int protobuf_sgx_dh_msg3_body_t::kAdditionalPropFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_dh_msg3_body_t::protobuf_sgx_dh_msg3_body_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_dh_msg3_body_t)
}

void protobuf_sgx_dh_msg3_body_t::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  report_ = const_cast< ::protobuf_sgx_report_t*>(
      ::protobuf_sgx_report_t::internal_default_instance());
#else
  report_ = const_cast< ::protobuf_sgx_report_t*>(&::protobuf_sgx_report_t::default_instance());
#endif
}

protobuf_sgx_dh_msg3_body_t::protobuf_sgx_dh_msg3_body_t(const protobuf_sgx_dh_msg3_body_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_dh_msg3_body_t)
}

void protobuf_sgx_dh_msg3_body_t::SharedCtor() {
  _cached_size_ = 0;
  report_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_dh_msg3_body_t::~protobuf_sgx_dh_msg3_body_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_dh_msg3_body_t)
  SharedDtor();
}

void protobuf_sgx_dh_msg3_body_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete report_;
  }
}

void protobuf_sgx_dh_msg3_body_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_dh_msg3_body_t& protobuf_sgx_dh_msg3_body_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_dh_msg3_body_t* protobuf_sgx_dh_msg3_body_t::default_instance_ = NULL;

protobuf_sgx_dh_msg3_body_t* protobuf_sgx_dh_msg3_body_t::New() const {
  return new protobuf_sgx_dh_msg3_body_t;
}

void protobuf_sgx_dh_msg3_body_t::Clear() {
  if (has_report()) {
    if (report_ != NULL) report_->::protobuf_sgx_report_t::Clear();
  }
  additional_prop_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_dh_msg3_body_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_dh_msg3_body_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .protobuf_sgx_report_t report = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_report()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_additional_prop;
        break;
      }

      // repeated uint32 additional_prop = 2;
      case 2: {
        if (tag == 16) {
         parse_additional_prop:
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 16, input, this->mutable_additional_prop())));
        } else if (tag == 18) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_additional_prop())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_additional_prop;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_dh_msg3_body_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_dh_msg3_body_t)
  return false;
#undef DO_
}

void protobuf_sgx_dh_msg3_body_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_dh_msg3_body_t)
  // required .protobuf_sgx_report_t report = 1;
  if (has_report()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->report(), output);
  }

  // repeated uint32 additional_prop = 2;
  for (int i = 0; i < this->additional_prop_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(
      2, this->additional_prop(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_dh_msg3_body_t)
}

int protobuf_sgx_dh_msg3_body_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required .protobuf_sgx_report_t report = 1;
    if (has_report()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->report());
    }

  }
  // repeated uint32 additional_prop = 2;
  {
    int data_size = 0;
    for (int i = 0; i < this->additional_prop_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->additional_prop(i));
    }
    total_size += 1 * this->additional_prop_size() + data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_dh_msg3_body_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_dh_msg3_body_t*>(&from));
}

void protobuf_sgx_dh_msg3_body_t::MergeFrom(const protobuf_sgx_dh_msg3_body_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  additional_prop_.MergeFrom(from.additional_prop_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_report()) {
      mutable_report()->::protobuf_sgx_report_t::MergeFrom(from.report());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_dh_msg3_body_t::CopyFrom(const protobuf_sgx_dh_msg3_body_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_dh_msg3_body_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  if (has_report()) {
    if (!this->report().IsInitialized()) return false;
  }
  return true;
}

void protobuf_sgx_dh_msg3_body_t::Swap(protobuf_sgx_dh_msg3_body_t* other) {
  if (other != this) {
    std::swap(report_, other->report_);
    additional_prop_.Swap(&other->additional_prop_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_dh_msg3_body_t::GetTypeName() const {
  return "protobuf_sgx_dh_msg3_body_t";
}


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

#ifndef _MSC_VER
const int protobuf_sgx_dh_msg3_t::kMsg3BodyFieldNumber;
const int protobuf_sgx_dh_msg3_t::kCmacFieldNumber;
#endif  // !_MSC_VER

protobuf_sgx_dh_msg3_t::protobuf_sgx_dh_msg3_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_sgx_dh_msg3_t)
}

void protobuf_sgx_dh_msg3_t::InitAsDefaultInstance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  msg3_body_ = const_cast< ::protobuf_sgx_dh_msg3_body_t*>(
      ::protobuf_sgx_dh_msg3_body_t::internal_default_instance());
#else
  msg3_body_ = const_cast< ::protobuf_sgx_dh_msg3_body_t*>(&::protobuf_sgx_dh_msg3_body_t::default_instance());
#endif
}

protobuf_sgx_dh_msg3_t::protobuf_sgx_dh_msg3_t(const protobuf_sgx_dh_msg3_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_sgx_dh_msg3_t)
}

void protobuf_sgx_dh_msg3_t::SharedCtor() {
  _cached_size_ = 0;
  msg3_body_ = NULL;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_sgx_dh_msg3_t::~protobuf_sgx_dh_msg3_t() {
  // @@protoc_insertion_point(destructor:protobuf_sgx_dh_msg3_t)
  SharedDtor();
}

void protobuf_sgx_dh_msg3_t::SharedDtor() {
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
    delete msg3_body_;
  }
}

void protobuf_sgx_dh_msg3_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_sgx_dh_msg3_t& protobuf_sgx_dh_msg3_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_sgx_dh_msg3_t* protobuf_sgx_dh_msg3_t::default_instance_ = NULL;

protobuf_sgx_dh_msg3_t* protobuf_sgx_dh_msg3_t::New() const {
  return new protobuf_sgx_dh_msg3_t;
}

void protobuf_sgx_dh_msg3_t::Clear() {
  if (has_msg3_body()) {
    if (msg3_body_ != NULL) msg3_body_->::protobuf_sgx_dh_msg3_body_t::Clear();
  }
  cmac_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_sgx_dh_msg3_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_sgx_dh_msg3_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .protobuf_sgx_dh_msg3_body_t msg3_body = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_msg3_body()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_cmac;
        break;
      }

      // repeated uint32 cmac = 2 [packed = true];
      case 2: {
        if (tag == 18) {
         parse_cmac:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, this->mutable_cmac())));
        } else if (tag == 16) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 1, 18, input, this->mutable_cmac())));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_sgx_dh_msg3_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_sgx_dh_msg3_t)
  return false;
#undef DO_
}

void protobuf_sgx_dh_msg3_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_sgx_dh_msg3_t)
  // required .protobuf_sgx_dh_msg3_body_t msg3_body = 1;
  if (has_msg3_body()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessage(
      1, this->msg3_body(), output);
  }

  // repeated uint32 cmac = 2 [packed = true];
  if (this->cmac_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(_cmac_cached_byte_size_);
  }
  for (int i = 0; i < this->cmac_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
      this->cmac(i), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_sgx_dh_msg3_t)
}

int protobuf_sgx_dh_msg3_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required .protobuf_sgx_dh_msg3_body_t msg3_body = 1;
    if (has_msg3_body()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->msg3_body());
    }

  }
  // repeated uint32 cmac = 2 [packed = true];
  {
    int data_size = 0;
    for (int i = 0; i < this->cmac_size(); i++) {
      data_size += ::google::protobuf::internal::WireFormatLite::
        UInt32Size(this->cmac(i));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cmac_cached_byte_size_ = data_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_sgx_dh_msg3_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_sgx_dh_msg3_t*>(&from));
}

void protobuf_sgx_dh_msg3_t::MergeFrom(const protobuf_sgx_dh_msg3_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  cmac_.MergeFrom(from.cmac_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_msg3_body()) {
      mutable_msg3_body()->::protobuf_sgx_dh_msg3_body_t::MergeFrom(from.msg3_body());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_sgx_dh_msg3_t::CopyFrom(const protobuf_sgx_dh_msg3_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_sgx_dh_msg3_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  if (has_msg3_body()) {
    if (!this->msg3_body().IsInitialized()) return false;
  }
  return true;
}

void protobuf_sgx_dh_msg3_t::Swap(protobuf_sgx_dh_msg3_t* other) {
  if (other != this) {
    std::swap(msg3_body_, other->msg3_body_);
    cmac_.Swap(&other->cmac_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_sgx_dh_msg3_t::GetTypeName() const {
  return "protobuf_sgx_dh_msg3_t";
}


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

#ifndef _MSC_VER
const int protobuf_post_LA_encrypted_msg_t::kMsgFieldNumber;
#endif  // !_MSC_VER

protobuf_post_LA_encrypted_msg_t::protobuf_post_LA_encrypted_msg_t()
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protobuf_post_LA_encrypted_msg_t)
}

void protobuf_post_LA_encrypted_msg_t::InitAsDefaultInstance() {
}

protobuf_post_LA_encrypted_msg_t::protobuf_post_LA_encrypted_msg_t(const protobuf_post_LA_encrypted_msg_t& from)
  : ::google::protobuf::MessageLite() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protobuf_post_LA_encrypted_msg_t)
}

void protobuf_post_LA_encrypted_msg_t::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  msg_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

protobuf_post_LA_encrypted_msg_t::~protobuf_post_LA_encrypted_msg_t() {
  // @@protoc_insertion_point(destructor:protobuf_post_LA_encrypted_msg_t)
  SharedDtor();
}

void protobuf_post_LA_encrypted_msg_t::SharedDtor() {
  if (msg_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete msg_;
  }
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  if (this != &default_instance()) {
  #else
  if (this != default_instance_) {
  #endif
  }
}

void protobuf_post_LA_encrypted_msg_t::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const protobuf_post_LA_encrypted_msg_t& protobuf_post_LA_encrypted_msg_t::default_instance() {
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  protobuf_AddDesc_ProtobufLAMessages_2eproto();
#else
  if (default_instance_ == NULL) protobuf_AddDesc_ProtobufLAMessages_2eproto();
#endif
  return *default_instance_;
}

protobuf_post_LA_encrypted_msg_t* protobuf_post_LA_encrypted_msg_t::default_instance_ = NULL;

protobuf_post_LA_encrypted_msg_t* protobuf_post_LA_encrypted_msg_t::New() const {
  return new protobuf_post_LA_encrypted_msg_t;
}

void protobuf_post_LA_encrypted_msg_t::Clear() {
  if (has_msg()) {
    if (msg_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      msg_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->clear();
}

bool protobuf_post_LA_encrypted_msg_t::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  ::google::protobuf::io::StringOutputStream unknown_fields_string(
      mutable_unknown_fields());
  ::google::protobuf::io::CodedOutputStream unknown_fields_stream(
      &unknown_fields_string);
  // @@protoc_insertion_point(parse_start:protobuf_post_LA_encrypted_msg_t)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required bytes msg = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_msg()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(
            input, tag, &unknown_fields_stream));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protobuf_post_LA_encrypted_msg_t)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protobuf_post_LA_encrypted_msg_t)
  return false;
#undef DO_
}

void protobuf_post_LA_encrypted_msg_t::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protobuf_post_LA_encrypted_msg_t)
  // required bytes msg = 1;
  if (has_msg()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->msg(), output);
  }

  output->WriteRaw(unknown_fields().data(),
                   unknown_fields().size());
  // @@protoc_insertion_point(serialize_end:protobuf_post_LA_encrypted_msg_t)
}

int protobuf_post_LA_encrypted_msg_t::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required bytes msg = 1;
    if (has_msg()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->msg());
    }

  }
  total_size += unknown_fields().size();

  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void protobuf_post_LA_encrypted_msg_t::CheckTypeAndMergeFrom(
    const ::google::protobuf::MessageLite& from) {
  MergeFrom(*::google::protobuf::down_cast<const protobuf_post_LA_encrypted_msg_t*>(&from));
}

void protobuf_post_LA_encrypted_msg_t::MergeFrom(const protobuf_post_LA_encrypted_msg_t& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_msg()) {
      set_msg(from.msg());
    }
  }
  mutable_unknown_fields()->append(from.unknown_fields());
}

void protobuf_post_LA_encrypted_msg_t::CopyFrom(const protobuf_post_LA_encrypted_msg_t& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool protobuf_post_LA_encrypted_msg_t::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  return true;
}

void protobuf_post_LA_encrypted_msg_t::Swap(protobuf_post_LA_encrypted_msg_t* other) {
  if (other != this) {
    std::swap(msg_, other->msg_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.swap(other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::std::string protobuf_post_LA_encrypted_msg_t::GetTypeName() const {
  return "protobuf_post_LA_encrypted_msg_t";
}


// @@protoc_insertion_point(namespace_scope)

// @@protoc_insertion_point(global_scope)
