// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/unittest.proto

#ifndef PROTOBUF_google_2fprotobuf_2funittest_2eproto__INCLUDED
#define PROTOBUF_google_2fprotobuf_2funittest_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2004000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2004001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/service.h>
#include "google/protobuf/unittest_import.pb.h"
// @@protoc_insertion_point(includes)

namespace protobuf_unittest {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();

class TestAllTypes;
class TestAllTypes_NestedMessage;
class TestAllTypes_OptionalGroup;
class TestAllTypes_RepeatedGroup;
class TestDeprecatedFields;
class ForeignMessage;
class TestAllExtensions;
class OptionalGroup_extension;
class RepeatedGroup_extension;
class TestNestedExtension;
class TestRequired;
class TestRequiredForeign;
class TestForeignNested;
class TestEmptyMessage;
class TestEmptyMessageWithExtensions;
class TestMultipleExtensionRanges;
class TestReallyLargeTagNumber;
class TestRecursiveMessage;
class TestMutualRecursionA;
class TestMutualRecursionB;
class TestDupFieldNumber;
class TestDupFieldNumber_Foo;
class TestDupFieldNumber_Bar;
class TestNestedMessageHasBits;
class TestNestedMessageHasBits_NestedMessage;
class TestCamelCaseFieldNames;
class TestFieldOrderings;
class TestExtremeDefaultValues;
class SparseEnumMessage;
class OneString;
class OneBytes;
class TestPackedTypes;
class TestUnpackedTypes;
class TestPackedExtensions;
class TestDynamicExtensions;
class TestDynamicExtensions_DynamicMessageType;
class TestRepeatedScalarDifferentTagSizes;
class FooRequest;
class FooResponse;
class BarRequest;
class BarResponse;

enum TestAllTypes_NestedEnum {
  TestAllTypes_NestedEnum_FOO = 1,
  TestAllTypes_NestedEnum_BAR = 2,
  TestAllTypes_NestedEnum_BAZ = 3
};
bool TestAllTypes_NestedEnum_IsValid(int value);
const TestAllTypes_NestedEnum TestAllTypes_NestedEnum_NestedEnum_MIN = TestAllTypes_NestedEnum_FOO;
const TestAllTypes_NestedEnum TestAllTypes_NestedEnum_NestedEnum_MAX = TestAllTypes_NestedEnum_BAZ;
const int TestAllTypes_NestedEnum_NestedEnum_ARRAYSIZE = TestAllTypes_NestedEnum_NestedEnum_MAX + 1;

const ::google::protobuf::EnumDescriptor* TestAllTypes_NestedEnum_descriptor();
inline const ::std::string& TestAllTypes_NestedEnum_Name(TestAllTypes_NestedEnum value) {
  return ::google::protobuf::internal::NameOfEnum(
    TestAllTypes_NestedEnum_descriptor(), value);
}
inline bool TestAllTypes_NestedEnum_Parse(
    const ::std::string& name, TestAllTypes_NestedEnum* value) {
  return ::google::protobuf::internal::ParseNamedEnum<TestAllTypes_NestedEnum>(
    TestAllTypes_NestedEnum_descriptor(), name, value);
}
enum TestDynamicExtensions_DynamicEnumType {
  TestDynamicExtensions_DynamicEnumType_DYNAMIC_FOO = 2200,
  TestDynamicExtensions_DynamicEnumType_DYNAMIC_BAR = 2201,
  TestDynamicExtensions_DynamicEnumType_DYNAMIC_BAZ = 2202
};
bool TestDynamicExtensions_DynamicEnumType_IsValid(int value);
const TestDynamicExtensions_DynamicEnumType TestDynamicExtensions_DynamicEnumType_DynamicEnumType_MIN = TestDynamicExtensions_DynamicEnumType_DYNAMIC_FOO;
const TestDynamicExtensions_DynamicEnumType TestDynamicExtensions_DynamicEnumType_DynamicEnumType_MAX = TestDynamicExtensions_DynamicEnumType_DYNAMIC_BAZ;
const int TestDynamicExtensions_DynamicEnumType_DynamicEnumType_ARRAYSIZE = TestDynamicExtensions_DynamicEnumType_DynamicEnumType_MAX + 1;

const ::google::protobuf::EnumDescriptor* TestDynamicExtensions_DynamicEnumType_descriptor();
inline const ::std::string& TestDynamicExtensions_DynamicEnumType_Name(TestDynamicExtensions_DynamicEnumType value) {
  return ::google::protobuf::internal::NameOfEnum(
    TestDynamicExtensions_DynamicEnumType_descriptor(), value);
}
inline bool TestDynamicExtensions_DynamicEnumType_Parse(
    const ::std::string& name, TestDynamicExtensions_DynamicEnumType* value) {
  return ::google::protobuf::internal::ParseNamedEnum<TestDynamicExtensions_DynamicEnumType>(
    TestDynamicExtensions_DynamicEnumType_descriptor(), name, value);
}
enum ForeignEnum {
  FOREIGN_FOO = 4,
  FOREIGN_BAR = 5,
  FOREIGN_BAZ = 6
};
bool ForeignEnum_IsValid(int value);
const ForeignEnum ForeignEnum_MIN = FOREIGN_FOO;
const ForeignEnum ForeignEnum_MAX = FOREIGN_BAZ;
const int ForeignEnum_ARRAYSIZE = ForeignEnum_MAX + 1;

const ::google::protobuf::EnumDescriptor* ForeignEnum_descriptor();
inline const ::std::string& ForeignEnum_Name(ForeignEnum value) {
  return ::google::protobuf::internal::NameOfEnum(
    ForeignEnum_descriptor(), value);
}
inline bool ForeignEnum_Parse(
    const ::std::string& name, ForeignEnum* value) {
  return ::google::protobuf::internal::ParseNamedEnum<ForeignEnum>(
    ForeignEnum_descriptor(), name, value);
}
enum TestEnumWithDupValue {
  FOO1 = 1,
  BAR1 = 2,
  BAZ = 3,
  FOO2 = 1,
  BAR2 = 2
};
bool TestEnumWithDupValue_IsValid(int value);
const TestEnumWithDupValue TestEnumWithDupValue_MIN = FOO1;
const TestEnumWithDupValue TestEnumWithDupValue_MAX = BAZ;
const int TestEnumWithDupValue_ARRAYSIZE = TestEnumWithDupValue_MAX + 1;

const ::google::protobuf::EnumDescriptor* TestEnumWithDupValue_descriptor();
inline const ::std::string& TestEnumWithDupValue_Name(TestEnumWithDupValue value) {
  return ::google::protobuf::internal::NameOfEnum(
    TestEnumWithDupValue_descriptor(), value);
}
inline bool TestEnumWithDupValue_Parse(
    const ::std::string& name, TestEnumWithDupValue* value) {
  return ::google::protobuf::internal::ParseNamedEnum<TestEnumWithDupValue>(
    TestEnumWithDupValue_descriptor(), name, value);
}
enum TestSparseEnum {
  SPARSE_A = 123,
  SPARSE_B = 62374,
  SPARSE_C = 12589234,
  SPARSE_D = -15,
  SPARSE_E = -53452,
  SPARSE_F = 0,
  SPARSE_G = 2
};
bool TestSparseEnum_IsValid(int value);
const TestSparseEnum TestSparseEnum_MIN = SPARSE_E;
const TestSparseEnum TestSparseEnum_MAX = SPARSE_C;
const int TestSparseEnum_ARRAYSIZE = TestSparseEnum_MAX + 1;

const ::google::protobuf::EnumDescriptor* TestSparseEnum_descriptor();
inline const ::std::string& TestSparseEnum_Name(TestSparseEnum value) {
  return ::google::protobuf::internal::NameOfEnum(
    TestSparseEnum_descriptor(), value);
}
inline bool TestSparseEnum_Parse(
    const ::std::string& name, TestSparseEnum* value) {
  return ::google::protobuf::internal::ParseNamedEnum<TestSparseEnum>(
    TestSparseEnum_descriptor(), name, value);
}
// ===================================================================

class TestAllTypes_NestedMessage : public ::google::protobuf::Message {
 public:
  TestAllTypes_NestedMessage();
  virtual ~TestAllTypes_NestedMessage();
  
  TestAllTypes_NestedMessage(const TestAllTypes_NestedMessage& from);
  
  inline TestAllTypes_NestedMessage& operator=(const TestAllTypes_NestedMessage& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestAllTypes_NestedMessage& default_instance();
  
  void Swap(TestAllTypes_NestedMessage* other);
  
  // implements Message ----------------------------------------------
  
  TestAllTypes_NestedMessage* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestAllTypes_NestedMessage& from);
  void MergeFrom(const TestAllTypes_NestedMessage& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 bb = 1;
  inline bool has_bb() const;
  inline void clear_bb();
  static const int kBbFieldNumber = 1;
  inline ::google::protobuf::int32 bb() const;
  inline void set_bb(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes.NestedMessage)
 private:
  inline void set_has_bb();
  inline void clear_has_bb();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 bb_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestAllTypes_NestedMessage* default_instance_;
};
// -------------------------------------------------------------------

class TestAllTypes_OptionalGroup : public ::google::protobuf::Message {
 public:
  TestAllTypes_OptionalGroup();
  virtual ~TestAllTypes_OptionalGroup();
  
  TestAllTypes_OptionalGroup(const TestAllTypes_OptionalGroup& from);
  
  inline TestAllTypes_OptionalGroup& operator=(const TestAllTypes_OptionalGroup& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestAllTypes_OptionalGroup& default_instance();
  
  void Swap(TestAllTypes_OptionalGroup* other);
  
  // implements Message ----------------------------------------------
  
  TestAllTypes_OptionalGroup* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestAllTypes_OptionalGroup& from);
  void MergeFrom(const TestAllTypes_OptionalGroup& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 17;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 17;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes.OptionalGroup)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestAllTypes_OptionalGroup* default_instance_;
};
// -------------------------------------------------------------------

class TestAllTypes_RepeatedGroup : public ::google::protobuf::Message {
 public:
  TestAllTypes_RepeatedGroup();
  virtual ~TestAllTypes_RepeatedGroup();
  
  TestAllTypes_RepeatedGroup(const TestAllTypes_RepeatedGroup& from);
  
  inline TestAllTypes_RepeatedGroup& operator=(const TestAllTypes_RepeatedGroup& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestAllTypes_RepeatedGroup& default_instance();
  
  void Swap(TestAllTypes_RepeatedGroup* other);
  
  // implements Message ----------------------------------------------
  
  TestAllTypes_RepeatedGroup* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestAllTypes_RepeatedGroup& from);
  void MergeFrom(const TestAllTypes_RepeatedGroup& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 47;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 47;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes.RepeatedGroup)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestAllTypes_RepeatedGroup* default_instance_;
};
// -------------------------------------------------------------------

class TestAllTypes : public ::google::protobuf::Message {
 public:
  TestAllTypes();
  virtual ~TestAllTypes();
  
  TestAllTypes(const TestAllTypes& from);
  
  inline TestAllTypes& operator=(const TestAllTypes& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestAllTypes& default_instance();
  
  void Swap(TestAllTypes* other);
  
  // implements Message ----------------------------------------------
  
  TestAllTypes* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestAllTypes& from);
  void MergeFrom(const TestAllTypes& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  typedef TestAllTypes_NestedMessage NestedMessage;
  typedef TestAllTypes_OptionalGroup OptionalGroup;
  typedef TestAllTypes_RepeatedGroup RepeatedGroup;
  
  typedef TestAllTypes_NestedEnum NestedEnum;
  static const NestedEnum FOO = TestAllTypes_NestedEnum_FOO;
  static const NestedEnum BAR = TestAllTypes_NestedEnum_BAR;
  static const NestedEnum BAZ = TestAllTypes_NestedEnum_BAZ;
  static inline bool NestedEnum_IsValid(int value) {
    return TestAllTypes_NestedEnum_IsValid(value);
  }
  static const NestedEnum NestedEnum_MIN =
    TestAllTypes_NestedEnum_NestedEnum_MIN;
  static const NestedEnum NestedEnum_MAX =
    TestAllTypes_NestedEnum_NestedEnum_MAX;
  static const int NestedEnum_ARRAYSIZE =
    TestAllTypes_NestedEnum_NestedEnum_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  NestedEnum_descriptor() {
    return TestAllTypes_NestedEnum_descriptor();
  }
  static inline const ::std::string& NestedEnum_Name(NestedEnum value) {
    return TestAllTypes_NestedEnum_Name(value);
  }
  static inline bool NestedEnum_Parse(const ::std::string& name,
      NestedEnum* value) {
    return TestAllTypes_NestedEnum_Parse(name, value);
  }
  
  // accessors -------------------------------------------------------
  
  // optional int32 optional_int32 = 1;
  inline bool has_optional_int32() const;
  inline void clear_optional_int32();
  static const int kOptionalInt32FieldNumber = 1;
  inline ::google::protobuf::int32 optional_int32() const;
  inline void set_optional_int32(::google::protobuf::int32 value);
  
  // optional int64 optional_int64 = 2;
  inline bool has_optional_int64() const;
  inline void clear_optional_int64();
  static const int kOptionalInt64FieldNumber = 2;
  inline ::google::protobuf::int64 optional_int64() const;
  inline void set_optional_int64(::google::protobuf::int64 value);
  
  // optional uint32 optional_uint32 = 3;
  inline bool has_optional_uint32() const;
  inline void clear_optional_uint32();
  static const int kOptionalUint32FieldNumber = 3;
  inline ::google::protobuf::uint32 optional_uint32() const;
  inline void set_optional_uint32(::google::protobuf::uint32 value);
  
  // optional uint64 optional_uint64 = 4;
  inline bool has_optional_uint64() const;
  inline void clear_optional_uint64();
  static const int kOptionalUint64FieldNumber = 4;
  inline ::google::protobuf::uint64 optional_uint64() const;
  inline void set_optional_uint64(::google::protobuf::uint64 value);
  
  // optional sint32 optional_sint32 = 5;
  inline bool has_optional_sint32() const;
  inline void clear_optional_sint32();
  static const int kOptionalSint32FieldNumber = 5;
  inline ::google::protobuf::int32 optional_sint32() const;
  inline void set_optional_sint32(::google::protobuf::int32 value);
  
  // optional sint64 optional_sint64 = 6;
  inline bool has_optional_sint64() const;
  inline void clear_optional_sint64();
  static const int kOptionalSint64FieldNumber = 6;
  inline ::google::protobuf::int64 optional_sint64() const;
  inline void set_optional_sint64(::google::protobuf::int64 value);
  
  // optional fixed32 optional_fixed32 = 7;
  inline bool has_optional_fixed32() const;
  inline void clear_optional_fixed32();
  static const int kOptionalFixed32FieldNumber = 7;
  inline ::google::protobuf::uint32 optional_fixed32() const;
  inline void set_optional_fixed32(::google::protobuf::uint32 value);
  
  // optional fixed64 optional_fixed64 = 8;
  inline bool has_optional_fixed64() const;
  inline void clear_optional_fixed64();
  static const int kOptionalFixed64FieldNumber = 8;
  inline ::google::protobuf::uint64 optional_fixed64() const;
  inline void set_optional_fixed64(::google::protobuf::uint64 value);
  
  // optional sfixed32 optional_sfixed32 = 9;
  inline bool has_optional_sfixed32() const;
  inline void clear_optional_sfixed32();
  static const int kOptionalSfixed32FieldNumber = 9;
  inline ::google::protobuf::int32 optional_sfixed32() const;
  inline void set_optional_sfixed32(::google::protobuf::int32 value);
  
  // optional sfixed64 optional_sfixed64 = 10;
  inline bool has_optional_sfixed64() const;
  inline void clear_optional_sfixed64();
  static const int kOptionalSfixed64FieldNumber = 10;
  inline ::google::protobuf::int64 optional_sfixed64() const;
  inline void set_optional_sfixed64(::google::protobuf::int64 value);
  
  // optional float optional_float = 11;
  inline bool has_optional_float() const;
  inline void clear_optional_float();
  static const int kOptionalFloatFieldNumber = 11;
  inline float optional_float() const;
  inline void set_optional_float(float value);
  
  // optional double optional_double = 12;
  inline bool has_optional_double() const;
  inline void clear_optional_double();
  static const int kOptionalDoubleFieldNumber = 12;
  inline double optional_double() const;
  inline void set_optional_double(double value);
  
  // optional bool optional_bool = 13;
  inline bool has_optional_bool() const;
  inline void clear_optional_bool();
  static const int kOptionalBoolFieldNumber = 13;
  inline bool optional_bool() const;
  inline void set_optional_bool(bool value);
  
  // optional string optional_string = 14;
  inline bool has_optional_string() const;
  inline void clear_optional_string();
  static const int kOptionalStringFieldNumber = 14;
  inline const ::std::string& optional_string() const;
  inline void set_optional_string(const ::std::string& value);
  inline void set_optional_string(const char* value);
  inline void set_optional_string(const char* value, size_t size);
  inline ::std::string* mutable_optional_string();
  inline ::std::string* release_optional_string();
  
  // optional bytes optional_bytes = 15;
  inline bool has_optional_bytes() const;
  inline void clear_optional_bytes();
  static const int kOptionalBytesFieldNumber = 15;
  inline const ::std::string& optional_bytes() const;
  inline void set_optional_bytes(const ::std::string& value);
  inline void set_optional_bytes(const char* value);
  inline void set_optional_bytes(const void* value, size_t size);
  inline ::std::string* mutable_optional_bytes();
  inline ::std::string* release_optional_bytes();
  
  // optional group OptionalGroup = 16 {
  inline bool has_optionalgroup() const;
  inline void clear_optionalgroup();
  static const int kOptionalgroupFieldNumber = 16;
  inline const ::protobuf_unittest::TestAllTypes_OptionalGroup& optionalgroup() const;
  inline ::protobuf_unittest::TestAllTypes_OptionalGroup* mutable_optionalgroup();
  inline ::protobuf_unittest::TestAllTypes_OptionalGroup* release_optionalgroup();
  
  // optional .protobuf_unittest.TestAllTypes.NestedMessage optional_nested_message = 18;
  inline bool has_optional_nested_message() const;
  inline void clear_optional_nested_message();
  static const int kOptionalNestedMessageFieldNumber = 18;
  inline const ::protobuf_unittest::TestAllTypes_NestedMessage& optional_nested_message() const;
  inline ::protobuf_unittest::TestAllTypes_NestedMessage* mutable_optional_nested_message();
  inline ::protobuf_unittest::TestAllTypes_NestedMessage* release_optional_nested_message();
  
  // optional .protobuf_unittest.ForeignMessage optional_foreign_message = 19;
  inline bool has_optional_foreign_message() const;
  inline void clear_optional_foreign_message();
  static const int kOptionalForeignMessageFieldNumber = 19;
  inline const ::protobuf_unittest::ForeignMessage& optional_foreign_message() const;
  inline ::protobuf_unittest::ForeignMessage* mutable_optional_foreign_message();
  inline ::protobuf_unittest::ForeignMessage* release_optional_foreign_message();
  
  // optional .protobuf_unittest_import.ImportMessage optional_import_message = 20;
  inline bool has_optional_import_message() const;
  inline void clear_optional_import_message();
  static const int kOptionalImportMessageFieldNumber = 20;
  inline const ::protobuf_unittest_import::ImportMessage& optional_import_message() const;
  inline ::protobuf_unittest_import::ImportMessage* mutable_optional_import_message();
  inline ::protobuf_unittest_import::ImportMessage* release_optional_import_message();
  
  // optional .protobuf_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21;
  inline bool has_optional_nested_enum() const;
  inline void clear_optional_nested_enum();
  static const int kOptionalNestedEnumFieldNumber = 21;
  inline ::protobuf_unittest::TestAllTypes_NestedEnum optional_nested_enum() const;
  inline void set_optional_nested_enum(::protobuf_unittest::TestAllTypes_NestedEnum value);
  
  // optional .protobuf_unittest.ForeignEnum optional_foreign_enum = 22;
  inline bool has_optional_foreign_enum() const;
  inline void clear_optional_foreign_enum();
  static const int kOptionalForeignEnumFieldNumber = 22;
  inline protobuf_unittest::ForeignEnum optional_foreign_enum() const;
  inline void set_optional_foreign_enum(protobuf_unittest::ForeignEnum value);
  
  // optional .protobuf_unittest_import.ImportEnum optional_import_enum = 23;
  inline bool has_optional_import_enum() const;
  inline void clear_optional_import_enum();
  static const int kOptionalImportEnumFieldNumber = 23;
  inline protobuf_unittest_import::ImportEnum optional_import_enum() const;
  inline void set_optional_import_enum(protobuf_unittest_import::ImportEnum value);
  
  // optional string optional_string_piece = 24 [ctype = STRING_PIECE];
  inline bool has_optional_string_piece() const;
  inline void clear_optional_string_piece();
  static const int kOptionalStringPieceFieldNumber = 24;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& optional_string_piece() const;
  inline void set_optional_string_piece(const ::std::string& value);
  inline void set_optional_string_piece(const char* value);
  inline void set_optional_string_piece(const char* value, size_t size);
  inline ::std::string* mutable_optional_string_piece();
  inline ::std::string* release_optional_string_piece();
 public:
  
  // optional string optional_cord = 25 [ctype = CORD];
  inline bool has_optional_cord() const;
  inline void clear_optional_cord();
  static const int kOptionalCordFieldNumber = 25;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& optional_cord() const;
  inline void set_optional_cord(const ::std::string& value);
  inline void set_optional_cord(const char* value);
  inline void set_optional_cord(const char* value, size_t size);
  inline ::std::string* mutable_optional_cord();
  inline ::std::string* release_optional_cord();
 public:
  
  // repeated int32 repeated_int32 = 31;
  inline int repeated_int32_size() const;
  inline void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 31;
  inline ::google::protobuf::int32 repeated_int32(int index) const;
  inline void set_repeated_int32(int index, ::google::protobuf::int32 value);
  inline void add_repeated_int32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();
  
  // repeated int64 repeated_int64 = 32;
  inline int repeated_int64_size() const;
  inline void clear_repeated_int64();
  static const int kRepeatedInt64FieldNumber = 32;
  inline ::google::protobuf::int64 repeated_int64(int index) const;
  inline void set_repeated_int64(int index, ::google::protobuf::int64 value);
  inline void add_repeated_int64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_int64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_int64();
  
  // repeated uint32 repeated_uint32 = 33;
  inline int repeated_uint32_size() const;
  inline void clear_repeated_uint32();
  static const int kRepeatedUint32FieldNumber = 33;
  inline ::google::protobuf::uint32 repeated_uint32(int index) const;
  inline void set_repeated_uint32(int index, ::google::protobuf::uint32 value);
  inline void add_repeated_uint32(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_uint32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_uint32();
  
  // repeated uint64 repeated_uint64 = 34;
  inline int repeated_uint64_size() const;
  inline void clear_repeated_uint64();
  static const int kRepeatedUint64FieldNumber = 34;
  inline ::google::protobuf::uint64 repeated_uint64(int index) const;
  inline void set_repeated_uint64(int index, ::google::protobuf::uint64 value);
  inline void add_repeated_uint64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_uint64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_uint64();
  
  // repeated sint32 repeated_sint32 = 35;
  inline int repeated_sint32_size() const;
  inline void clear_repeated_sint32();
  static const int kRepeatedSint32FieldNumber = 35;
  inline ::google::protobuf::int32 repeated_sint32(int index) const;
  inline void set_repeated_sint32(int index, ::google::protobuf::int32 value);
  inline void add_repeated_sint32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sint32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sint32();
  
  // repeated sint64 repeated_sint64 = 36;
  inline int repeated_sint64_size() const;
  inline void clear_repeated_sint64();
  static const int kRepeatedSint64FieldNumber = 36;
  inline ::google::protobuf::int64 repeated_sint64(int index) const;
  inline void set_repeated_sint64(int index, ::google::protobuf::int64 value);
  inline void add_repeated_sint64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sint64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sint64();
  
  // repeated fixed32 repeated_fixed32 = 37;
  inline int repeated_fixed32_size() const;
  inline void clear_repeated_fixed32();
  static const int kRepeatedFixed32FieldNumber = 37;
  inline ::google::protobuf::uint32 repeated_fixed32(int index) const;
  inline void set_repeated_fixed32(int index, ::google::protobuf::uint32 value);
  inline void add_repeated_fixed32(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_fixed32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_fixed32();
  
  // repeated fixed64 repeated_fixed64 = 38;
  inline int repeated_fixed64_size() const;
  inline void clear_repeated_fixed64();
  static const int kRepeatedFixed64FieldNumber = 38;
  inline ::google::protobuf::uint64 repeated_fixed64(int index) const;
  inline void set_repeated_fixed64(int index, ::google::protobuf::uint64 value);
  inline void add_repeated_fixed64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_fixed64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_fixed64();
  
  // repeated sfixed32 repeated_sfixed32 = 39;
  inline int repeated_sfixed32_size() const;
  inline void clear_repeated_sfixed32();
  static const int kRepeatedSfixed32FieldNumber = 39;
  inline ::google::protobuf::int32 repeated_sfixed32(int index) const;
  inline void set_repeated_sfixed32(int index, ::google::protobuf::int32 value);
  inline void add_repeated_sfixed32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sfixed32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sfixed32();
  
  // repeated sfixed64 repeated_sfixed64 = 40;
  inline int repeated_sfixed64_size() const;
  inline void clear_repeated_sfixed64();
  static const int kRepeatedSfixed64FieldNumber = 40;
  inline ::google::protobuf::int64 repeated_sfixed64(int index) const;
  inline void set_repeated_sfixed64(int index, ::google::protobuf::int64 value);
  inline void add_repeated_sfixed64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sfixed64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sfixed64();
  
  // repeated float repeated_float = 41;
  inline int repeated_float_size() const;
  inline void clear_repeated_float();
  static const int kRepeatedFloatFieldNumber = 41;
  inline float repeated_float(int index) const;
  inline void set_repeated_float(int index, float value);
  inline void add_repeated_float(float value);
  inline const ::google::protobuf::RepeatedField< float >&
      repeated_float() const;
  inline ::google::protobuf::RepeatedField< float >*
      mutable_repeated_float();
  
  // repeated double repeated_double = 42;
  inline int repeated_double_size() const;
  inline void clear_repeated_double();
  static const int kRepeatedDoubleFieldNumber = 42;
  inline double repeated_double(int index) const;
  inline void set_repeated_double(int index, double value);
  inline void add_repeated_double(double value);
  inline const ::google::protobuf::RepeatedField< double >&
      repeated_double() const;
  inline ::google::protobuf::RepeatedField< double >*
      mutable_repeated_double();
  
  // repeated bool repeated_bool = 43;
  inline int repeated_bool_size() const;
  inline void clear_repeated_bool();
  static const int kRepeatedBoolFieldNumber = 43;
  inline bool repeated_bool(int index) const;
  inline void set_repeated_bool(int index, bool value);
  inline void add_repeated_bool(bool value);
  inline const ::google::protobuf::RepeatedField< bool >&
      repeated_bool() const;
  inline ::google::protobuf::RepeatedField< bool >*
      mutable_repeated_bool();
  
  // repeated string repeated_string = 44;
  inline int repeated_string_size() const;
  inline void clear_repeated_string();
  static const int kRepeatedStringFieldNumber = 44;
  inline const ::std::string& repeated_string(int index) const;
  inline ::std::string* mutable_repeated_string(int index);
  inline void set_repeated_string(int index, const ::std::string& value);
  inline void set_repeated_string(int index, const char* value);
  inline void set_repeated_string(int index, const char* value, size_t size);
  inline ::std::string* add_repeated_string();
  inline void add_repeated_string(const ::std::string& value);
  inline void add_repeated_string(const char* value);
  inline void add_repeated_string(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string();
  
  // repeated bytes repeated_bytes = 45;
  inline int repeated_bytes_size() const;
  inline void clear_repeated_bytes();
  static const int kRepeatedBytesFieldNumber = 45;
  inline const ::std::string& repeated_bytes(int index) const;
  inline ::std::string* mutable_repeated_bytes(int index);
  inline void set_repeated_bytes(int index, const ::std::string& value);
  inline void set_repeated_bytes(int index, const char* value);
  inline void set_repeated_bytes(int index, const void* value, size_t size);
  inline ::std::string* add_repeated_bytes();
  inline void add_repeated_bytes(const ::std::string& value);
  inline void add_repeated_bytes(const char* value);
  inline void add_repeated_bytes(const void* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_bytes() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_bytes();
  
  // repeated group RepeatedGroup = 46 {
  inline int repeatedgroup_size() const;
  inline void clear_repeatedgroup();
  static const int kRepeatedgroupFieldNumber = 46;
  inline const ::protobuf_unittest::TestAllTypes_RepeatedGroup& repeatedgroup(int index) const;
  inline ::protobuf_unittest::TestAllTypes_RepeatedGroup* mutable_repeatedgroup(int index);
  inline ::protobuf_unittest::TestAllTypes_RepeatedGroup* add_repeatedgroup();
  inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_RepeatedGroup >&
      repeatedgroup() const;
  inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_RepeatedGroup >*
      mutable_repeatedgroup();
  
  // repeated .protobuf_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48;
  inline int repeated_nested_message_size() const;
  inline void clear_repeated_nested_message();
  static const int kRepeatedNestedMessageFieldNumber = 48;
  inline const ::protobuf_unittest::TestAllTypes_NestedMessage& repeated_nested_message(int index) const;
  inline ::protobuf_unittest::TestAllTypes_NestedMessage* mutable_repeated_nested_message(int index);
  inline ::protobuf_unittest::TestAllTypes_NestedMessage* add_repeated_nested_message();
  inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_NestedMessage >&
      repeated_nested_message() const;
  inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_NestedMessage >*
      mutable_repeated_nested_message();
  
  // repeated .protobuf_unittest.ForeignMessage repeated_foreign_message = 49;
  inline int repeated_foreign_message_size() const;
  inline void clear_repeated_foreign_message();
  static const int kRepeatedForeignMessageFieldNumber = 49;
  inline const ::protobuf_unittest::ForeignMessage& repeated_foreign_message(int index) const;
  inline ::protobuf_unittest::ForeignMessage* mutable_repeated_foreign_message(int index);
  inline ::protobuf_unittest::ForeignMessage* add_repeated_foreign_message();
  inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >&
      repeated_foreign_message() const;
  inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >*
      mutable_repeated_foreign_message();
  
  // repeated .protobuf_unittest_import.ImportMessage repeated_import_message = 50;
  inline int repeated_import_message_size() const;
  inline void clear_repeated_import_message();
  static const int kRepeatedImportMessageFieldNumber = 50;
  inline const ::protobuf_unittest_import::ImportMessage& repeated_import_message(int index) const;
  inline ::protobuf_unittest_import::ImportMessage* mutable_repeated_import_message(int index);
  inline ::protobuf_unittest_import::ImportMessage* add_repeated_import_message();
  inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >&
      repeated_import_message() const;
  inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >*
      mutable_repeated_import_message();
  
  // repeated .protobuf_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51;
  inline int repeated_nested_enum_size() const;
  inline void clear_repeated_nested_enum();
  static const int kRepeatedNestedEnumFieldNumber = 51;
  inline ::protobuf_unittest::TestAllTypes_NestedEnum repeated_nested_enum(int index) const;
  inline void set_repeated_nested_enum(int index, ::protobuf_unittest::TestAllTypes_NestedEnum value);
  inline void add_repeated_nested_enum(::protobuf_unittest::TestAllTypes_NestedEnum value);
  inline const ::google::protobuf::RepeatedField<int>& repeated_nested_enum() const;
  inline ::google::protobuf::RepeatedField<int>* mutable_repeated_nested_enum();
  
  // repeated .protobuf_unittest.ForeignEnum repeated_foreign_enum = 52;
  inline int repeated_foreign_enum_size() const;
  inline void clear_repeated_foreign_enum();
  static const int kRepeatedForeignEnumFieldNumber = 52;
  inline protobuf_unittest::ForeignEnum repeated_foreign_enum(int index) const;
  inline void set_repeated_foreign_enum(int index, protobuf_unittest::ForeignEnum value);
  inline void add_repeated_foreign_enum(protobuf_unittest::ForeignEnum value);
  inline const ::google::protobuf::RepeatedField<int>& repeated_foreign_enum() const;
  inline ::google::protobuf::RepeatedField<int>* mutable_repeated_foreign_enum();
  
  // repeated .protobuf_unittest_import.ImportEnum repeated_import_enum = 53;
  inline int repeated_import_enum_size() const;
  inline void clear_repeated_import_enum();
  static const int kRepeatedImportEnumFieldNumber = 53;
  inline protobuf_unittest_import::ImportEnum repeated_import_enum(int index) const;
  inline void set_repeated_import_enum(int index, protobuf_unittest_import::ImportEnum value);
  inline void add_repeated_import_enum(protobuf_unittest_import::ImportEnum value);
  inline const ::google::protobuf::RepeatedField<int>& repeated_import_enum() const;
  inline ::google::protobuf::RepeatedField<int>* mutable_repeated_import_enum();
  
  // repeated string repeated_string_piece = 54 [ctype = STRING_PIECE];
  inline int repeated_string_piece_size() const;
  inline void clear_repeated_string_piece();
  static const int kRepeatedStringPieceFieldNumber = 54;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& repeated_string_piece(int index) const;
  inline ::std::string* mutable_repeated_string_piece(int index);
  inline void set_repeated_string_piece(int index, const ::std::string& value);
  inline void set_repeated_string_piece(int index, const char* value);
  inline void set_repeated_string_piece(int index, const char* value, size_t size);
  inline ::std::string* add_repeated_string_piece();
  inline void add_repeated_string_piece(const ::std::string& value);
  inline void add_repeated_string_piece(const char* value);
  inline void add_repeated_string_piece(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string_piece() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string_piece();
 public:
  
  // repeated string repeated_cord = 55 [ctype = CORD];
  inline int repeated_cord_size() const;
  inline void clear_repeated_cord();
  static const int kRepeatedCordFieldNumber = 55;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& repeated_cord(int index) const;
  inline ::std::string* mutable_repeated_cord(int index);
  inline void set_repeated_cord(int index, const ::std::string& value);
  inline void set_repeated_cord(int index, const char* value);
  inline void set_repeated_cord(int index, const char* value, size_t size);
  inline ::std::string* add_repeated_cord();
  inline void add_repeated_cord(const ::std::string& value);
  inline void add_repeated_cord(const char* value);
  inline void add_repeated_cord(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_cord() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_cord();
 public:
  
  // optional int32 default_int32 = 61 [default = 41];
  inline bool has_default_int32() const;
  inline void clear_default_int32();
  static const int kDefaultInt32FieldNumber = 61;
  inline ::google::protobuf::int32 default_int32() const;
  inline void set_default_int32(::google::protobuf::int32 value);
  
  // optional int64 default_int64 = 62 [default = 42];
  inline bool has_default_int64() const;
  inline void clear_default_int64();
  static const int kDefaultInt64FieldNumber = 62;
  inline ::google::protobuf::int64 default_int64() const;
  inline void set_default_int64(::google::protobuf::int64 value);
  
  // optional uint32 default_uint32 = 63 [default = 43];
  inline bool has_default_uint32() const;
  inline void clear_default_uint32();
  static const int kDefaultUint32FieldNumber = 63;
  inline ::google::protobuf::uint32 default_uint32() const;
  inline void set_default_uint32(::google::protobuf::uint32 value);
  
  // optional uint64 default_uint64 = 64 [default = 44];
  inline bool has_default_uint64() const;
  inline void clear_default_uint64();
  static const int kDefaultUint64FieldNumber = 64;
  inline ::google::protobuf::uint64 default_uint64() const;
  inline void set_default_uint64(::google::protobuf::uint64 value);
  
  // optional sint32 default_sint32 = 65 [default = -45];
  inline bool has_default_sint32() const;
  inline void clear_default_sint32();
  static const int kDefaultSint32FieldNumber = 65;
  inline ::google::protobuf::int32 default_sint32() const;
  inline void set_default_sint32(::google::protobuf::int32 value);
  
  // optional sint64 default_sint64 = 66 [default = 46];
  inline bool has_default_sint64() const;
  inline void clear_default_sint64();
  static const int kDefaultSint64FieldNumber = 66;
  inline ::google::protobuf::int64 default_sint64() const;
  inline void set_default_sint64(::google::protobuf::int64 value);
  
  // optional fixed32 default_fixed32 = 67 [default = 47];
  inline bool has_default_fixed32() const;
  inline void clear_default_fixed32();
  static const int kDefaultFixed32FieldNumber = 67;
  inline ::google::protobuf::uint32 default_fixed32() const;
  inline void set_default_fixed32(::google::protobuf::uint32 value);
  
  // optional fixed64 default_fixed64 = 68 [default = 48];
  inline bool has_default_fixed64() const;
  inline void clear_default_fixed64();
  static const int kDefaultFixed64FieldNumber = 68;
  inline ::google::protobuf::uint64 default_fixed64() const;
  inline void set_default_fixed64(::google::protobuf::uint64 value);
  
  // optional sfixed32 default_sfixed32 = 69 [default = 49];
  inline bool has_default_sfixed32() const;
  inline void clear_default_sfixed32();
  static const int kDefaultSfixed32FieldNumber = 69;
  inline ::google::protobuf::int32 default_sfixed32() const;
  inline void set_default_sfixed32(::google::protobuf::int32 value);
  
  // optional sfixed64 default_sfixed64 = 70 [default = -50];
  inline bool has_default_sfixed64() const;
  inline void clear_default_sfixed64();
  static const int kDefaultSfixed64FieldNumber = 70;
  inline ::google::protobuf::int64 default_sfixed64() const;
  inline void set_default_sfixed64(::google::protobuf::int64 value);
  
  // optional float default_float = 71 [default = 51.5];
  inline bool has_default_float() const;
  inline void clear_default_float();
  static const int kDefaultFloatFieldNumber = 71;
  inline float default_float() const;
  inline void set_default_float(float value);
  
  // optional double default_double = 72 [default = 52000];
  inline bool has_default_double() const;
  inline void clear_default_double();
  static const int kDefaultDoubleFieldNumber = 72;
  inline double default_double() const;
  inline void set_default_double(double value);
  
  // optional bool default_bool = 73 [default = true];
  inline bool has_default_bool() const;
  inline void clear_default_bool();
  static const int kDefaultBoolFieldNumber = 73;
  inline bool default_bool() const;
  inline void set_default_bool(bool value);
  
  // optional string default_string = 74 [default = "hello"];
  inline bool has_default_string() const;
  inline void clear_default_string();
  static const int kDefaultStringFieldNumber = 74;
  inline const ::std::string& default_string() const;
  inline void set_default_string(const ::std::string& value);
  inline void set_default_string(const char* value);
  inline void set_default_string(const char* value, size_t size);
  inline ::std::string* mutable_default_string();
  inline ::std::string* release_default_string();
  
  // optional bytes default_bytes = 75 [default = "world"];
  inline bool has_default_bytes() const;
  inline void clear_default_bytes();
  static const int kDefaultBytesFieldNumber = 75;
  inline const ::std::string& default_bytes() const;
  inline void set_default_bytes(const ::std::string& value);
  inline void set_default_bytes(const char* value);
  inline void set_default_bytes(const void* value, size_t size);
  inline ::std::string* mutable_default_bytes();
  inline ::std::string* release_default_bytes();
  
  // optional .protobuf_unittest.TestAllTypes.NestedEnum default_nested_enum = 81 [default = BAR];
  inline bool has_default_nested_enum() const;
  inline void clear_default_nested_enum();
  static const int kDefaultNestedEnumFieldNumber = 81;
  inline ::protobuf_unittest::TestAllTypes_NestedEnum default_nested_enum() const;
  inline void set_default_nested_enum(::protobuf_unittest::TestAllTypes_NestedEnum value);
  
  // optional .protobuf_unittest.ForeignEnum default_foreign_enum = 82 [default = FOREIGN_BAR];
  inline bool has_default_foreign_enum() const;
  inline void clear_default_foreign_enum();
  static const int kDefaultForeignEnumFieldNumber = 82;
  inline protobuf_unittest::ForeignEnum default_foreign_enum() const;
  inline void set_default_foreign_enum(protobuf_unittest::ForeignEnum value);
  
  // optional .protobuf_unittest_import.ImportEnum default_import_enum = 83 [default = IMPORT_BAR];
  inline bool has_default_import_enum() const;
  inline void clear_default_import_enum();
  static const int kDefaultImportEnumFieldNumber = 83;
  inline protobuf_unittest_import::ImportEnum default_import_enum() const;
  inline void set_default_import_enum(protobuf_unittest_import::ImportEnum value);
  
  // optional string default_string_piece = 84 [default = "abc", ctype = STRING_PIECE];
  inline bool has_default_string_piece() const;
  inline void clear_default_string_piece();
  static const int kDefaultStringPieceFieldNumber = 84;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& default_string_piece() const;
  inline void set_default_string_piece(const ::std::string& value);
  inline void set_default_string_piece(const char* value);
  inline void set_default_string_piece(const char* value, size_t size);
  inline ::std::string* mutable_default_string_piece();
  inline ::std::string* release_default_string_piece();
 public:
  
  // optional string default_cord = 85 [default = "123", ctype = CORD];
  inline bool has_default_cord() const;
  inline void clear_default_cord();
  static const int kDefaultCordFieldNumber = 85;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& default_cord() const;
  inline void set_default_cord(const ::std::string& value);
  inline void set_default_cord(const char* value);
  inline void set_default_cord(const char* value, size_t size);
  inline ::std::string* mutable_default_cord();
  inline ::std::string* release_default_cord();
 public:
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes)
 private:
  inline void set_has_optional_int32();
  inline void clear_has_optional_int32();
  inline void set_has_optional_int64();
  inline void clear_has_optional_int64();
  inline void set_has_optional_uint32();
  inline void clear_has_optional_uint32();
  inline void set_has_optional_uint64();
  inline void clear_has_optional_uint64();
  inline void set_has_optional_sint32();
  inline void clear_has_optional_sint32();
  inline void set_has_optional_sint64();
  inline void clear_has_optional_sint64();
  inline void set_has_optional_fixed32();
  inline void clear_has_optional_fixed32();
  inline void set_has_optional_fixed64();
  inline void clear_has_optional_fixed64();
  inline void set_has_optional_sfixed32();
  inline void clear_has_optional_sfixed32();
  inline void set_has_optional_sfixed64();
  inline void clear_has_optional_sfixed64();
  inline void set_has_optional_float();
  inline void clear_has_optional_float();
  inline void set_has_optional_double();
  inline void clear_has_optional_double();
  inline void set_has_optional_bool();
  inline void clear_has_optional_bool();
  inline void set_has_optional_string();
  inline void clear_has_optional_string();
  inline void set_has_optional_bytes();
  inline void clear_has_optional_bytes();
  inline void set_has_optionalgroup();
  inline void clear_has_optionalgroup();
  inline void set_has_optional_nested_message();
  inline void clear_has_optional_nested_message();
  inline void set_has_optional_foreign_message();
  inline void clear_has_optional_foreign_message();
  inline void set_has_optional_import_message();
  inline void clear_has_optional_import_message();
  inline void set_has_optional_nested_enum();
  inline void clear_has_optional_nested_enum();
  inline void set_has_optional_foreign_enum();
  inline void clear_has_optional_foreign_enum();
  inline void set_has_optional_import_enum();
  inline void clear_has_optional_import_enum();
  inline void set_has_optional_string_piece();
  inline void clear_has_optional_string_piece();
  inline void set_has_optional_cord();
  inline void clear_has_optional_cord();
  inline void set_has_default_int32();
  inline void clear_has_default_int32();
  inline void set_has_default_int64();
  inline void clear_has_default_int64();
  inline void set_has_default_uint32();
  inline void clear_has_default_uint32();
  inline void set_has_default_uint64();
  inline void clear_has_default_uint64();
  inline void set_has_default_sint32();
  inline void clear_has_default_sint32();
  inline void set_has_default_sint64();
  inline void clear_has_default_sint64();
  inline void set_has_default_fixed32();
  inline void clear_has_default_fixed32();
  inline void set_has_default_fixed64();
  inline void clear_has_default_fixed64();
  inline void set_has_default_sfixed32();
  inline void clear_has_default_sfixed32();
  inline void set_has_default_sfixed64();
  inline void clear_has_default_sfixed64();
  inline void set_has_default_float();
  inline void clear_has_default_float();
  inline void set_has_default_double();
  inline void clear_has_default_double();
  inline void set_has_default_bool();
  inline void clear_has_default_bool();
  inline void set_has_default_string();
  inline void clear_has_default_string();
  inline void set_has_default_bytes();
  inline void clear_has_default_bytes();
  inline void set_has_default_nested_enum();
  inline void clear_has_default_nested_enum();
  inline void set_has_default_foreign_enum();
  inline void clear_has_default_foreign_enum();
  inline void set_has_default_import_enum();
  inline void clear_has_default_import_enum();
  inline void set_has_default_string_piece();
  inline void clear_has_default_string_piece();
  inline void set_has_default_cord();
  inline void clear_has_default_cord();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 optional_int32_;
  ::google::protobuf::uint32 optional_uint32_;
  ::google::protobuf::int64 optional_int64_;
  ::google::protobuf::uint64 optional_uint64_;
  ::google::protobuf::int32 optional_sint32_;
  ::google::protobuf::uint32 optional_fixed32_;
  ::google::protobuf::int64 optional_sint64_;
  ::google::protobuf::uint64 optional_fixed64_;
  ::google::protobuf::int32 optional_sfixed32_;
  float optional_float_;
  ::google::protobuf::int64 optional_sfixed64_;
  double optional_double_;
  ::std::string* optional_string_;
  ::std::string* optional_bytes_;
  ::protobuf_unittest::TestAllTypes_OptionalGroup* optionalgroup_;
  ::protobuf_unittest::TestAllTypes_NestedMessage* optional_nested_message_;
  ::protobuf_unittest::ForeignMessage* optional_foreign_message_;
  ::protobuf_unittest_import::ImportMessage* optional_import_message_;
  int optional_nested_enum_;
  int optional_foreign_enum_;
  ::std::string* optional_string_piece_;
  ::std::string* optional_cord_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_int64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_uint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_uint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_fixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_fixed64_;
  int optional_import_enum_;
  bool optional_bool_;
  bool default_bool_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sfixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sfixed64_;
  ::google::protobuf::RepeatedField< float > repeated_float_;
  ::google::protobuf::RepeatedField< double > repeated_double_;
  ::google::protobuf::RepeatedField< bool > repeated_bool_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_string_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_bytes_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_RepeatedGroup > repeatedgroup_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_NestedMessage > repeated_nested_message_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage > repeated_foreign_message_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage > repeated_import_message_;
  ::google::protobuf::RepeatedField<int> repeated_nested_enum_;
  ::google::protobuf::RepeatedField<int> repeated_foreign_enum_;
  ::google::protobuf::RepeatedField<int> repeated_import_enum_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_string_piece_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_cord_;
  ::google::protobuf::int64 default_int64_;
  ::google::protobuf::int32 default_int32_;
  ::google::protobuf::uint32 default_uint32_;
  ::google::protobuf::uint64 default_uint64_;
  ::google::protobuf::int32 default_sint32_;
  ::google::protobuf::uint32 default_fixed32_;
  ::google::protobuf::int64 default_sint64_;
  ::google::protobuf::uint64 default_fixed64_;
  ::google::protobuf::int32 default_sfixed32_;
  float default_float_;
  ::google::protobuf::int64 default_sfixed64_;
  double default_double_;
  ::std::string* default_string_;
  static const ::std::string _default_default_string_;
  ::std::string* default_bytes_;
  static const ::std::string _default_default_bytes_;
  int default_nested_enum_;
  int default_foreign_enum_;
  ::std::string* default_string_piece_;
  static const ::std::string _default_default_string_piece_;
  ::std::string* default_cord_;
  static const ::std::string _default_default_cord_;
  int default_import_enum_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(68 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestAllTypes* default_instance_;
};
// -------------------------------------------------------------------

class TestDeprecatedFields : public ::google::protobuf::Message {
 public:
  TestDeprecatedFields();
  virtual ~TestDeprecatedFields();
  
  TestDeprecatedFields(const TestDeprecatedFields& from);
  
  inline TestDeprecatedFields& operator=(const TestDeprecatedFields& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestDeprecatedFields& default_instance();
  
  void Swap(TestDeprecatedFields* other);
  
  // implements Message ----------------------------------------------
  
  TestDeprecatedFields* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestDeprecatedFields& from);
  void MergeFrom(const TestDeprecatedFields& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 deprecated_int32 = 1 [deprecated = true];
  inline bool has_deprecated_int32() const PROTOBUF_DEPRECATED;
  inline void clear_deprecated_int32() PROTOBUF_DEPRECATED;
  static const int kDeprecatedInt32FieldNumber = 1;
  inline ::google::protobuf::int32 deprecated_int32() const PROTOBUF_DEPRECATED;
  inline void set_deprecated_int32(::google::protobuf::int32 value) PROTOBUF_DEPRECATED;
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestDeprecatedFields)
 private:
  inline void set_has_deprecated_int32();
  inline void clear_has_deprecated_int32();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 deprecated_int32_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestDeprecatedFields* default_instance_;
};
// -------------------------------------------------------------------

class ForeignMessage : public ::google::protobuf::Message {
 public:
  ForeignMessage();
  virtual ~ForeignMessage();
  
  ForeignMessage(const ForeignMessage& from);
  
  inline ForeignMessage& operator=(const ForeignMessage& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const ForeignMessage& default_instance();
  
  void Swap(ForeignMessage* other);
  
  // implements Message ----------------------------------------------
  
  ForeignMessage* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ForeignMessage& from);
  void MergeFrom(const ForeignMessage& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 c = 1;
  inline bool has_c() const;
  inline void clear_c();
  static const int kCFieldNumber = 1;
  inline ::google::protobuf::int32 c() const;
  inline void set_c(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.ForeignMessage)
 private:
  inline void set_has_c();
  inline void clear_has_c();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 c_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static ForeignMessage* default_instance_;
};
// -------------------------------------------------------------------

class TestAllExtensions : public ::google::protobuf::Message {
 public:
  TestAllExtensions();
  virtual ~TestAllExtensions();
  
  TestAllExtensions(const TestAllExtensions& from);
  
  inline TestAllExtensions& operator=(const TestAllExtensions& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestAllExtensions& default_instance();
  
  void Swap(TestAllExtensions* other);
  
  // implements Message ----------------------------------------------
  
  TestAllExtensions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestAllExtensions& from);
  void MergeFrom(const TestAllExtensions& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestAllExtensions)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllExtensions)
 private:
  
  ::google::protobuf::internal::ExtensionSet _extensions_;
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestAllExtensions* default_instance_;
};
// -------------------------------------------------------------------

class OptionalGroup_extension : public ::google::protobuf::Message {
 public:
  OptionalGroup_extension();
  virtual ~OptionalGroup_extension();
  
  OptionalGroup_extension(const OptionalGroup_extension& from);
  
  inline OptionalGroup_extension& operator=(const OptionalGroup_extension& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const OptionalGroup_extension& default_instance();
  
  void Swap(OptionalGroup_extension* other);
  
  // implements Message ----------------------------------------------
  
  OptionalGroup_extension* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OptionalGroup_extension& from);
  void MergeFrom(const OptionalGroup_extension& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 17;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 17;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.OptionalGroup_extension)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static OptionalGroup_extension* default_instance_;
};
// -------------------------------------------------------------------

class RepeatedGroup_extension : public ::google::protobuf::Message {
 public:
  RepeatedGroup_extension();
  virtual ~RepeatedGroup_extension();
  
  RepeatedGroup_extension(const RepeatedGroup_extension& from);
  
  inline RepeatedGroup_extension& operator=(const RepeatedGroup_extension& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const RepeatedGroup_extension& default_instance();
  
  void Swap(RepeatedGroup_extension* other);
  
  // implements Message ----------------------------------------------
  
  RepeatedGroup_extension* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RepeatedGroup_extension& from);
  void MergeFrom(const RepeatedGroup_extension& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 47;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 47;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.RepeatedGroup_extension)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static RepeatedGroup_extension* default_instance_;
};
// -------------------------------------------------------------------

class TestNestedExtension : public ::google::protobuf::Message {
 public:
  TestNestedExtension();
  virtual ~TestNestedExtension();
  
  TestNestedExtension(const TestNestedExtension& from);
  
  inline TestNestedExtension& operator=(const TestNestedExtension& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestNestedExtension& default_instance();
  
  void Swap(TestNestedExtension* other);
  
  // implements Message ----------------------------------------------
  
  TestNestedExtension* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestNestedExtension& from);
  void MergeFrom(const TestNestedExtension& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  static const int kTestFieldNumber = 1002;
  static ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
      ::google::protobuf::internal::StringTypeTraits, 9, false >
    test;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestNestedExtension)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestNestedExtension* default_instance_;
};
// -------------------------------------------------------------------

class TestRequired : public ::google::protobuf::Message {
 public:
  TestRequired();
  virtual ~TestRequired();
  
  TestRequired(const TestRequired& from);
  
  inline TestRequired& operator=(const TestRequired& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestRequired& default_instance();
  
  void Swap(TestRequired* other);
  
  // implements Message ----------------------------------------------
  
  TestRequired* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestRequired& from);
  void MergeFrom(const TestRequired& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // required int32 a = 1;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 1;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // optional int32 dummy2 = 2;
  inline bool has_dummy2() const;
  inline void clear_dummy2();
  static const int kDummy2FieldNumber = 2;
  inline ::google::protobuf::int32 dummy2() const;
  inline void set_dummy2(::google::protobuf::int32 value);
  
  // required int32 b = 3;
  inline bool has_b() const;
  inline void clear_b();
  static const int kBFieldNumber = 3;
  inline ::google::protobuf::int32 b() const;
  inline void set_b(::google::protobuf::int32 value);
  
  // optional int32 dummy4 = 4;
  inline bool has_dummy4() const;
  inline void clear_dummy4();
  static const int kDummy4FieldNumber = 4;
  inline ::google::protobuf::int32 dummy4() const;
  inline void set_dummy4(::google::protobuf::int32 value);
  
  // optional int32 dummy5 = 5;
  inline bool has_dummy5() const;
  inline void clear_dummy5();
  static const int kDummy5FieldNumber = 5;
  inline ::google::protobuf::int32 dummy5() const;
  inline void set_dummy5(::google::protobuf::int32 value);
  
  // optional int32 dummy6 = 6;
  inline bool has_dummy6() const;
  inline void clear_dummy6();
  static const int kDummy6FieldNumber = 6;
  inline ::google::protobuf::int32 dummy6() const;
  inline void set_dummy6(::google::protobuf::int32 value);
  
  // optional int32 dummy7 = 7;
  inline bool has_dummy7() const;
  inline void clear_dummy7();
  static const int kDummy7FieldNumber = 7;
  inline ::google::protobuf::int32 dummy7() const;
  inline void set_dummy7(::google::protobuf::int32 value);
  
  // optional int32 dummy8 = 8;
  inline bool has_dummy8() const;
  inline void clear_dummy8();
  static const int kDummy8FieldNumber = 8;
  inline ::google::protobuf::int32 dummy8() const;
  inline void set_dummy8(::google::protobuf::int32 value);
  
  // optional int32 dummy9 = 9;
  inline bool has_dummy9() const;
  inline void clear_dummy9();
  static const int kDummy9FieldNumber = 9;
  inline ::google::protobuf::int32 dummy9() const;
  inline void set_dummy9(::google::protobuf::int32 value);
  
  // optional int32 dummy10 = 10;
  inline bool has_dummy10() const;
  inline void clear_dummy10();
  static const int kDummy10FieldNumber = 10;
  inline ::google::protobuf::int32 dummy10() const;
  inline void set_dummy10(::google::protobuf::int32 value);
  
  // optional int32 dummy11 = 11;
  inline bool has_dummy11() const;
  inline void clear_dummy11();
  static const int kDummy11FieldNumber = 11;
  inline ::google::protobuf::int32 dummy11() const;
  inline void set_dummy11(::google::protobuf::int32 value);
  
  // optional int32 dummy12 = 12;
  inline bool has_dummy12() const;
  inline void clear_dummy12();
  static const int kDummy12FieldNumber = 12;
  inline ::google::protobuf::int32 dummy12() const;
  inline void set_dummy12(::google::protobuf::int32 value);
  
  // optional int32 dummy13 = 13;
  inline bool has_dummy13() const;
  inline void clear_dummy13();
  static const int kDummy13FieldNumber = 13;
  inline ::google::protobuf::int32 dummy13() const;
  inline void set_dummy13(::google::protobuf::int32 value);
  
  // optional int32 dummy14 = 14;
  inline bool has_dummy14() const;
  inline void clear_dummy14();
  static const int kDummy14FieldNumber = 14;
  inline ::google::protobuf::int32 dummy14() const;
  inline void set_dummy14(::google::protobuf::int32 value);
  
  // optional int32 dummy15 = 15;
  inline bool has_dummy15() const;
  inline void clear_dummy15();
  static const int kDummy15FieldNumber = 15;
  inline ::google::protobuf::int32 dummy15() const;
  inline void set_dummy15(::google::protobuf::int32 value);
  
  // optional int32 dummy16 = 16;
  inline bool has_dummy16() const;
  inline void clear_dummy16();
  static const int kDummy16FieldNumber = 16;
  inline ::google::protobuf::int32 dummy16() const;
  inline void set_dummy16(::google::protobuf::int32 value);
  
  // optional int32 dummy17 = 17;
  inline bool has_dummy17() const;
  inline void clear_dummy17();
  static const int kDummy17FieldNumber = 17;
  inline ::google::protobuf::int32 dummy17() const;
  inline void set_dummy17(::google::protobuf::int32 value);
  
  // optional int32 dummy18 = 18;
  inline bool has_dummy18() const;
  inline void clear_dummy18();
  static const int kDummy18FieldNumber = 18;
  inline ::google::protobuf::int32 dummy18() const;
  inline void set_dummy18(::google::protobuf::int32 value);
  
  // optional int32 dummy19 = 19;
  inline bool has_dummy19() const;
  inline void clear_dummy19();
  static const int kDummy19FieldNumber = 19;
  inline ::google::protobuf::int32 dummy19() const;
  inline void set_dummy19(::google::protobuf::int32 value);
  
  // optional int32 dummy20 = 20;
  inline bool has_dummy20() const;
  inline void clear_dummy20();
  static const int kDummy20FieldNumber = 20;
  inline ::google::protobuf::int32 dummy20() const;
  inline void set_dummy20(::google::protobuf::int32 value);
  
  // optional int32 dummy21 = 21;
  inline bool has_dummy21() const;
  inline void clear_dummy21();
  static const int kDummy21FieldNumber = 21;
  inline ::google::protobuf::int32 dummy21() const;
  inline void set_dummy21(::google::protobuf::int32 value);
  
  // optional int32 dummy22 = 22;
  inline bool has_dummy22() const;
  inline void clear_dummy22();
  static const int kDummy22FieldNumber = 22;
  inline ::google::protobuf::int32 dummy22() const;
  inline void set_dummy22(::google::protobuf::int32 value);
  
  // optional int32 dummy23 = 23;
  inline bool has_dummy23() const;
  inline void clear_dummy23();
  static const int kDummy23FieldNumber = 23;
  inline ::google::protobuf::int32 dummy23() const;
  inline void set_dummy23(::google::protobuf::int32 value);
  
  // optional int32 dummy24 = 24;
  inline bool has_dummy24() const;
  inline void clear_dummy24();
  static const int kDummy24FieldNumber = 24;
  inline ::google::protobuf::int32 dummy24() const;
  inline void set_dummy24(::google::protobuf::int32 value);
  
  // optional int32 dummy25 = 25;
  inline bool has_dummy25() const;
  inline void clear_dummy25();
  static const int kDummy25FieldNumber = 25;
  inline ::google::protobuf::int32 dummy25() const;
  inline void set_dummy25(::google::protobuf::int32 value);
  
  // optional int32 dummy26 = 26;
  inline bool has_dummy26() const;
  inline void clear_dummy26();
  static const int kDummy26FieldNumber = 26;
  inline ::google::protobuf::int32 dummy26() const;
  inline void set_dummy26(::google::protobuf::int32 value);
  
  // optional int32 dummy27 = 27;
  inline bool has_dummy27() const;
  inline void clear_dummy27();
  static const int kDummy27FieldNumber = 27;
  inline ::google::protobuf::int32 dummy27() const;
  inline void set_dummy27(::google::protobuf::int32 value);
  
  // optional int32 dummy28 = 28;
  inline bool has_dummy28() const;
  inline void clear_dummy28();
  static const int kDummy28FieldNumber = 28;
  inline ::google::protobuf::int32 dummy28() const;
  inline void set_dummy28(::google::protobuf::int32 value);
  
  // optional int32 dummy29 = 29;
  inline bool has_dummy29() const;
  inline void clear_dummy29();
  static const int kDummy29FieldNumber = 29;
  inline ::google::protobuf::int32 dummy29() const;
  inline void set_dummy29(::google::protobuf::int32 value);
  
  // optional int32 dummy30 = 30;
  inline bool has_dummy30() const;
  inline void clear_dummy30();
  static const int kDummy30FieldNumber = 30;
  inline ::google::protobuf::int32 dummy30() const;
  inline void set_dummy30(::google::protobuf::int32 value);
  
  // optional int32 dummy31 = 31;
  inline bool has_dummy31() const;
  inline void clear_dummy31();
  static const int kDummy31FieldNumber = 31;
  inline ::google::protobuf::int32 dummy31() const;
  inline void set_dummy31(::google::protobuf::int32 value);
  
  // optional int32 dummy32 = 32;
  inline bool has_dummy32() const;
  inline void clear_dummy32();
  static const int kDummy32FieldNumber = 32;
  inline ::google::protobuf::int32 dummy32() const;
  inline void set_dummy32(::google::protobuf::int32 value);
  
  // required int32 c = 33;
  inline bool has_c() const;
  inline void clear_c();
  static const int kCFieldNumber = 33;
  inline ::google::protobuf::int32 c() const;
  inline void set_c(::google::protobuf::int32 value);
  
  static const int kSingleFieldNumber = 1000;
  static ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
      ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::TestRequired >, 11, false >
    single;
  static const int kMultiFieldNumber = 1001;
  static ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
      ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::TestRequired >, 11, false >
    multi;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequired)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  inline void set_has_dummy2();
  inline void clear_has_dummy2();
  inline void set_has_b();
  inline void clear_has_b();
  inline void set_has_dummy4();
  inline void clear_has_dummy4();
  inline void set_has_dummy5();
  inline void clear_has_dummy5();
  inline void set_has_dummy6();
  inline void clear_has_dummy6();
  inline void set_has_dummy7();
  inline void clear_has_dummy7();
  inline void set_has_dummy8();
  inline void clear_has_dummy8();
  inline void set_has_dummy9();
  inline void clear_has_dummy9();
  inline void set_has_dummy10();
  inline void clear_has_dummy10();
  inline void set_has_dummy11();
  inline void clear_has_dummy11();
  inline void set_has_dummy12();
  inline void clear_has_dummy12();
  inline void set_has_dummy13();
  inline void clear_has_dummy13();
  inline void set_has_dummy14();
  inline void clear_has_dummy14();
  inline void set_has_dummy15();
  inline void clear_has_dummy15();
  inline void set_has_dummy16();
  inline void clear_has_dummy16();
  inline void set_has_dummy17();
  inline void clear_has_dummy17();
  inline void set_has_dummy18();
  inline void clear_has_dummy18();
  inline void set_has_dummy19();
  inline void clear_has_dummy19();
  inline void set_has_dummy20();
  inline void clear_has_dummy20();
  inline void set_has_dummy21();
  inline void clear_has_dummy21();
  inline void set_has_dummy22();
  inline void clear_has_dummy22();
  inline void set_has_dummy23();
  inline void clear_has_dummy23();
  inline void set_has_dummy24();
  inline void clear_has_dummy24();
  inline void set_has_dummy25();
  inline void clear_has_dummy25();
  inline void set_has_dummy26();
  inline void clear_has_dummy26();
  inline void set_has_dummy27();
  inline void clear_has_dummy27();
  inline void set_has_dummy28();
  inline void clear_has_dummy28();
  inline void set_has_dummy29();
  inline void clear_has_dummy29();
  inline void set_has_dummy30();
  inline void clear_has_dummy30();
  inline void set_has_dummy31();
  inline void clear_has_dummy31();
  inline void set_has_dummy32();
  inline void clear_has_dummy32();
  inline void set_has_c();
  inline void clear_has_c();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  ::google::protobuf::int32 dummy2_;
  ::google::protobuf::int32 b_;
  ::google::protobuf::int32 dummy4_;
  ::google::protobuf::int32 dummy5_;
  ::google::protobuf::int32 dummy6_;
  ::google::protobuf::int32 dummy7_;
  ::google::protobuf::int32 dummy8_;
  ::google::protobuf::int32 dummy9_;
  ::google::protobuf::int32 dummy10_;
  ::google::protobuf::int32 dummy11_;
  ::google::protobuf::int32 dummy12_;
  ::google::protobuf::int32 dummy13_;
  ::google::protobuf::int32 dummy14_;
  ::google::protobuf::int32 dummy15_;
  ::google::protobuf::int32 dummy16_;
  ::google::protobuf::int32 dummy17_;
  ::google::protobuf::int32 dummy18_;
  ::google::protobuf::int32 dummy19_;
  ::google::protobuf::int32 dummy20_;
  ::google::protobuf::int32 dummy21_;
  ::google::protobuf::int32 dummy22_;
  ::google::protobuf::int32 dummy23_;
  ::google::protobuf::int32 dummy24_;
  ::google::protobuf::int32 dummy25_;
  ::google::protobuf::int32 dummy26_;
  ::google::protobuf::int32 dummy27_;
  ::google::protobuf::int32 dummy28_;
  ::google::protobuf::int32 dummy29_;
  ::google::protobuf::int32 dummy30_;
  ::google::protobuf::int32 dummy31_;
  ::google::protobuf::int32 dummy32_;
  ::google::protobuf::int32 c_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(33 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestRequired* default_instance_;
};
// -------------------------------------------------------------------

class TestRequiredForeign : public ::google::protobuf::Message {
 public:
  TestRequiredForeign();
  virtual ~TestRequiredForeign();
  
  TestRequiredForeign(const TestRequiredForeign& from);
  
  inline TestRequiredForeign& operator=(const TestRequiredForeign& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestRequiredForeign& default_instance();
  
  void Swap(TestRequiredForeign* other);
  
  // implements Message ----------------------------------------------
  
  TestRequiredForeign* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestRequiredForeign& from);
  void MergeFrom(const TestRequiredForeign& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional .protobuf_unittest.TestRequired optional_message = 1;
  inline bool has_optional_message() const;
  inline void clear_optional_message();
  static const int kOptionalMessageFieldNumber = 1;
  inline const ::protobuf_unittest::TestRequired& optional_message() const;
  inline ::protobuf_unittest::TestRequired* mutable_optional_message();
  inline ::protobuf_unittest::TestRequired* release_optional_message();
  
  // repeated .protobuf_unittest.TestRequired repeated_message = 2;
  inline int repeated_message_size() const;
  inline void clear_repeated_message();
  static const int kRepeatedMessageFieldNumber = 2;
  inline const ::protobuf_unittest::TestRequired& repeated_message(int index) const;
  inline ::protobuf_unittest::TestRequired* mutable_repeated_message(int index);
  inline ::protobuf_unittest::TestRequired* add_repeated_message();
  inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestRequired >&
      repeated_message() const;
  inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestRequired >*
      mutable_repeated_message();
  
  // optional int32 dummy = 3;
  inline bool has_dummy() const;
  inline void clear_dummy();
  static const int kDummyFieldNumber = 3;
  inline ::google::protobuf::int32 dummy() const;
  inline void set_dummy(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredForeign)
 private:
  inline void set_has_optional_message();
  inline void clear_has_optional_message();
  inline void set_has_dummy();
  inline void clear_has_dummy();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::protobuf_unittest::TestRequired* optional_message_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestRequired > repeated_message_;
  ::google::protobuf::int32 dummy_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestRequiredForeign* default_instance_;
};
// -------------------------------------------------------------------

class TestForeignNested : public ::google::protobuf::Message {
 public:
  TestForeignNested();
  virtual ~TestForeignNested();
  
  TestForeignNested(const TestForeignNested& from);
  
  inline TestForeignNested& operator=(const TestForeignNested& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestForeignNested& default_instance();
  
  void Swap(TestForeignNested* other);
  
  // implements Message ----------------------------------------------
  
  TestForeignNested* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestForeignNested& from);
  void MergeFrom(const TestForeignNested& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional .protobuf_unittest.TestAllTypes.NestedMessage foreign_nested = 1;
  inline bool has_foreign_nested() const;
  inline void clear_foreign_nested();
  static const int kForeignNestedFieldNumber = 1;
  inline const ::protobuf_unittest::TestAllTypes_NestedMessage& foreign_nested() const;
  inline ::protobuf_unittest::TestAllTypes_NestedMessage* mutable_foreign_nested();
  inline ::protobuf_unittest::TestAllTypes_NestedMessage* release_foreign_nested();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestForeignNested)
 private:
  inline void set_has_foreign_nested();
  inline void clear_has_foreign_nested();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::protobuf_unittest::TestAllTypes_NestedMessage* foreign_nested_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestForeignNested* default_instance_;
};
// -------------------------------------------------------------------

class TestEmptyMessage : public ::google::protobuf::Message {
 public:
  TestEmptyMessage();
  virtual ~TestEmptyMessage();
  
  TestEmptyMessage(const TestEmptyMessage& from);
  
  inline TestEmptyMessage& operator=(const TestEmptyMessage& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestEmptyMessage& default_instance();
  
  void Swap(TestEmptyMessage* other);
  
  // implements Message ----------------------------------------------
  
  TestEmptyMessage* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestEmptyMessage& from);
  void MergeFrom(const TestEmptyMessage& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestEmptyMessage)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestEmptyMessage* default_instance_;
};
// -------------------------------------------------------------------

class TestEmptyMessageWithExtensions : public ::google::protobuf::Message {
 public:
  TestEmptyMessageWithExtensions();
  virtual ~TestEmptyMessageWithExtensions();
  
  TestEmptyMessageWithExtensions(const TestEmptyMessageWithExtensions& from);
  
  inline TestEmptyMessageWithExtensions& operator=(const TestEmptyMessageWithExtensions& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestEmptyMessageWithExtensions& default_instance();
  
  void Swap(TestEmptyMessageWithExtensions* other);
  
  // implements Message ----------------------------------------------
  
  TestEmptyMessageWithExtensions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestEmptyMessageWithExtensions& from);
  void MergeFrom(const TestEmptyMessageWithExtensions& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestEmptyMessageWithExtensions)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestEmptyMessageWithExtensions)
 private:
  
  ::google::protobuf::internal::ExtensionSet _extensions_;
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestEmptyMessageWithExtensions* default_instance_;
};
// -------------------------------------------------------------------

class TestMultipleExtensionRanges : public ::google::protobuf::Message {
 public:
  TestMultipleExtensionRanges();
  virtual ~TestMultipleExtensionRanges();
  
  TestMultipleExtensionRanges(const TestMultipleExtensionRanges& from);
  
  inline TestMultipleExtensionRanges& operator=(const TestMultipleExtensionRanges& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestMultipleExtensionRanges& default_instance();
  
  void Swap(TestMultipleExtensionRanges* other);
  
  // implements Message ----------------------------------------------
  
  TestMultipleExtensionRanges* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestMultipleExtensionRanges& from);
  void MergeFrom(const TestMultipleExtensionRanges& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestMultipleExtensionRanges)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestMultipleExtensionRanges)
 private:
  
  ::google::protobuf::internal::ExtensionSet _extensions_;
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestMultipleExtensionRanges* default_instance_;
};
// -------------------------------------------------------------------

class TestReallyLargeTagNumber : public ::google::protobuf::Message {
 public:
  TestReallyLargeTagNumber();
  virtual ~TestReallyLargeTagNumber();
  
  TestReallyLargeTagNumber(const TestReallyLargeTagNumber& from);
  
  inline TestReallyLargeTagNumber& operator=(const TestReallyLargeTagNumber& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestReallyLargeTagNumber& default_instance();
  
  void Swap(TestReallyLargeTagNumber* other);
  
  // implements Message ----------------------------------------------
  
  TestReallyLargeTagNumber* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestReallyLargeTagNumber& from);
  void MergeFrom(const TestReallyLargeTagNumber& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 1;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 1;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // optional int32 bb = 268435455;
  inline bool has_bb() const;
  inline void clear_bb();
  static const int kBbFieldNumber = 268435455;
  inline ::google::protobuf::int32 bb() const;
  inline void set_bb(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestReallyLargeTagNumber)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  inline void set_has_bb();
  inline void clear_has_bb();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  ::google::protobuf::int32 bb_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestReallyLargeTagNumber* default_instance_;
};
// -------------------------------------------------------------------

class TestRecursiveMessage : public ::google::protobuf::Message {
 public:
  TestRecursiveMessage();
  virtual ~TestRecursiveMessage();
  
  TestRecursiveMessage(const TestRecursiveMessage& from);
  
  inline TestRecursiveMessage& operator=(const TestRecursiveMessage& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestRecursiveMessage& default_instance();
  
  void Swap(TestRecursiveMessage* other);
  
  // implements Message ----------------------------------------------
  
  TestRecursiveMessage* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestRecursiveMessage& from);
  void MergeFrom(const TestRecursiveMessage& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional .protobuf_unittest.TestRecursiveMessage a = 1;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 1;
  inline const ::protobuf_unittest::TestRecursiveMessage& a() const;
  inline ::protobuf_unittest::TestRecursiveMessage* mutable_a();
  inline ::protobuf_unittest::TestRecursiveMessage* release_a();
  
  // optional int32 i = 2;
  inline bool has_i() const;
  inline void clear_i();
  static const int kIFieldNumber = 2;
  inline ::google::protobuf::int32 i() const;
  inline void set_i(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestRecursiveMessage)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  inline void set_has_i();
  inline void clear_has_i();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::protobuf_unittest::TestRecursiveMessage* a_;
  ::google::protobuf::int32 i_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestRecursiveMessage* default_instance_;
};
// -------------------------------------------------------------------

class TestMutualRecursionA : public ::google::protobuf::Message {
 public:
  TestMutualRecursionA();
  virtual ~TestMutualRecursionA();
  
  TestMutualRecursionA(const TestMutualRecursionA& from);
  
  inline TestMutualRecursionA& operator=(const TestMutualRecursionA& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestMutualRecursionA& default_instance();
  
  void Swap(TestMutualRecursionA* other);
  
  // implements Message ----------------------------------------------
  
  TestMutualRecursionA* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestMutualRecursionA& from);
  void MergeFrom(const TestMutualRecursionA& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional .protobuf_unittest.TestMutualRecursionB bb = 1;
  inline bool has_bb() const;
  inline void clear_bb();
  static const int kBbFieldNumber = 1;
  inline const ::protobuf_unittest::TestMutualRecursionB& bb() const;
  inline ::protobuf_unittest::TestMutualRecursionB* mutable_bb();
  inline ::protobuf_unittest::TestMutualRecursionB* release_bb();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestMutualRecursionA)
 private:
  inline void set_has_bb();
  inline void clear_has_bb();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::protobuf_unittest::TestMutualRecursionB* bb_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestMutualRecursionA* default_instance_;
};
// -------------------------------------------------------------------

class TestMutualRecursionB : public ::google::protobuf::Message {
 public:
  TestMutualRecursionB();
  virtual ~TestMutualRecursionB();
  
  TestMutualRecursionB(const TestMutualRecursionB& from);
  
  inline TestMutualRecursionB& operator=(const TestMutualRecursionB& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestMutualRecursionB& default_instance();
  
  void Swap(TestMutualRecursionB* other);
  
  // implements Message ----------------------------------------------
  
  TestMutualRecursionB* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestMutualRecursionB& from);
  void MergeFrom(const TestMutualRecursionB& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional .protobuf_unittest.TestMutualRecursionA a = 1;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 1;
  inline const ::protobuf_unittest::TestMutualRecursionA& a() const;
  inline ::protobuf_unittest::TestMutualRecursionA* mutable_a();
  inline ::protobuf_unittest::TestMutualRecursionA* release_a();
  
  // optional int32 optional_int32 = 2;
  inline bool has_optional_int32() const;
  inline void clear_optional_int32();
  static const int kOptionalInt32FieldNumber = 2;
  inline ::google::protobuf::int32 optional_int32() const;
  inline void set_optional_int32(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestMutualRecursionB)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  inline void set_has_optional_int32();
  inline void clear_has_optional_int32();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::protobuf_unittest::TestMutualRecursionA* a_;
  ::google::protobuf::int32 optional_int32_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestMutualRecursionB* default_instance_;
};
// -------------------------------------------------------------------

class TestDupFieldNumber_Foo : public ::google::protobuf::Message {
 public:
  TestDupFieldNumber_Foo();
  virtual ~TestDupFieldNumber_Foo();
  
  TestDupFieldNumber_Foo(const TestDupFieldNumber_Foo& from);
  
  inline TestDupFieldNumber_Foo& operator=(const TestDupFieldNumber_Foo& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestDupFieldNumber_Foo& default_instance();
  
  void Swap(TestDupFieldNumber_Foo* other);
  
  // implements Message ----------------------------------------------
  
  TestDupFieldNumber_Foo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestDupFieldNumber_Foo& from);
  void MergeFrom(const TestDupFieldNumber_Foo& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 1;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 1;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestDupFieldNumber.Foo)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestDupFieldNumber_Foo* default_instance_;
};
// -------------------------------------------------------------------

class TestDupFieldNumber_Bar : public ::google::protobuf::Message {
 public:
  TestDupFieldNumber_Bar();
  virtual ~TestDupFieldNumber_Bar();
  
  TestDupFieldNumber_Bar(const TestDupFieldNumber_Bar& from);
  
  inline TestDupFieldNumber_Bar& operator=(const TestDupFieldNumber_Bar& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestDupFieldNumber_Bar& default_instance();
  
  void Swap(TestDupFieldNumber_Bar* other);
  
  // implements Message ----------------------------------------------
  
  TestDupFieldNumber_Bar* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestDupFieldNumber_Bar& from);
  void MergeFrom(const TestDupFieldNumber_Bar& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 1;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 1;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestDupFieldNumber.Bar)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 a_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestDupFieldNumber_Bar* default_instance_;
};
// -------------------------------------------------------------------

class TestDupFieldNumber : public ::google::protobuf::Message {
 public:
  TestDupFieldNumber();
  virtual ~TestDupFieldNumber();
  
  TestDupFieldNumber(const TestDupFieldNumber& from);
  
  inline TestDupFieldNumber& operator=(const TestDupFieldNumber& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestDupFieldNumber& default_instance();
  
  void Swap(TestDupFieldNumber* other);
  
  // implements Message ----------------------------------------------
  
  TestDupFieldNumber* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestDupFieldNumber& from);
  void MergeFrom(const TestDupFieldNumber& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  typedef TestDupFieldNumber_Foo Foo;
  typedef TestDupFieldNumber_Bar Bar;
  
  // accessors -------------------------------------------------------
  
  // optional int32 a = 1;
  inline bool has_a() const;
  inline void clear_a();
  static const int kAFieldNumber = 1;
  inline ::google::protobuf::int32 a() const;
  inline void set_a(::google::protobuf::int32 value);
  
  // optional group Foo = 2 {
  inline bool has_foo() const;
  inline void clear_foo();
  static const int kFooFieldNumber = 2;
  inline const ::protobuf_unittest::TestDupFieldNumber_Foo& foo() const;
  inline ::protobuf_unittest::TestDupFieldNumber_Foo* mutable_foo();
  inline ::protobuf_unittest::TestDupFieldNumber_Foo* release_foo();
  
  // optional group Bar = 3 {
  inline bool has_bar() const;
  inline void clear_bar();
  static const int kBarFieldNumber = 3;
  inline const ::protobuf_unittest::TestDupFieldNumber_Bar& bar() const;
  inline ::protobuf_unittest::TestDupFieldNumber_Bar* mutable_bar();
  inline ::protobuf_unittest::TestDupFieldNumber_Bar* release_bar();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestDupFieldNumber)
 private:
  inline void set_has_a();
  inline void clear_has_a();
  inline void set_has_foo();
  inline void clear_has_foo();
  inline void set_has_bar();
  inline void clear_has_bar();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::protobuf_unittest::TestDupFieldNumber_Foo* foo_;
  ::protobuf_unittest::TestDupFieldNumber_Bar* bar_;
  ::google::protobuf::int32 a_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestDupFieldNumber* default_instance_;
};
// -------------------------------------------------------------------

class TestNestedMessageHasBits_NestedMessage : public ::google::protobuf::Message {
 public:
  TestNestedMessageHasBits_NestedMessage();
  virtual ~TestNestedMessageHasBits_NestedMessage();
  
  TestNestedMessageHasBits_NestedMessage(const TestNestedMessageHasBits_NestedMessage& from);
  
  inline TestNestedMessageHasBits_NestedMessage& operator=(const TestNestedMessageHasBits_NestedMessage& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestNestedMessageHasBits_NestedMessage& default_instance();
  
  void Swap(TestNestedMessageHasBits_NestedMessage* other);
  
  // implements Message ----------------------------------------------
  
  TestNestedMessageHasBits_NestedMessage* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestNestedMessageHasBits_NestedMessage& from);
  void MergeFrom(const TestNestedMessageHasBits_NestedMessage& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // repeated int32 nestedmessage_repeated_int32 = 1;
  inline int nestedmessage_repeated_int32_size() const;
  inline void clear_nestedmessage_repeated_int32();
  static const int kNestedmessageRepeatedInt32FieldNumber = 1;
  inline ::google::protobuf::int32 nestedmessage_repeated_int32(int index) const;
  inline void set_nestedmessage_repeated_int32(int index, ::google::protobuf::int32 value);
  inline void add_nestedmessage_repeated_int32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      nestedmessage_repeated_int32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_nestedmessage_repeated_int32();
  
  // repeated .protobuf_unittest.ForeignMessage nestedmessage_repeated_foreignmessage = 2;
  inline int nestedmessage_repeated_foreignmessage_size() const;
  inline void clear_nestedmessage_repeated_foreignmessage();
  static const int kNestedmessageRepeatedForeignmessageFieldNumber = 2;
  inline const ::protobuf_unittest::ForeignMessage& nestedmessage_repeated_foreignmessage(int index) const;
  inline ::protobuf_unittest::ForeignMessage* mutable_nestedmessage_repeated_foreignmessage(int index);
  inline ::protobuf_unittest::ForeignMessage* add_nestedmessage_repeated_foreignmessage();
  inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >&
      nestedmessage_repeated_foreignmessage() const;
  inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >*
      mutable_nestedmessage_repeated_foreignmessage();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestNestedMessageHasBits.NestedMessage)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > nestedmessage_repeated_int32_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage > nestedmessage_repeated_foreignmessage_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestNestedMessageHasBits_NestedMessage* default_instance_;
};
// -------------------------------------------------------------------

class TestNestedMessageHasBits : public ::google::protobuf::Message {
 public:
  TestNestedMessageHasBits();
  virtual ~TestNestedMessageHasBits();
  
  TestNestedMessageHasBits(const TestNestedMessageHasBits& from);
  
  inline TestNestedMessageHasBits& operator=(const TestNestedMessageHasBits& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestNestedMessageHasBits& default_instance();
  
  void Swap(TestNestedMessageHasBits* other);
  
  // implements Message ----------------------------------------------
  
  TestNestedMessageHasBits* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestNestedMessageHasBits& from);
  void MergeFrom(const TestNestedMessageHasBits& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  typedef TestNestedMessageHasBits_NestedMessage NestedMessage;
  
  // accessors -------------------------------------------------------
  
  // optional .protobuf_unittest.TestNestedMessageHasBits.NestedMessage optional_nested_message = 1;
  inline bool has_optional_nested_message() const;
  inline void clear_optional_nested_message();
  static const int kOptionalNestedMessageFieldNumber = 1;
  inline const ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage& optional_nested_message() const;
  inline ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage* mutable_optional_nested_message();
  inline ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage* release_optional_nested_message();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestNestedMessageHasBits)
 private:
  inline void set_has_optional_nested_message();
  inline void clear_has_optional_nested_message();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage* optional_nested_message_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestNestedMessageHasBits* default_instance_;
};
// -------------------------------------------------------------------

class TestCamelCaseFieldNames : public ::google::protobuf::Message {
 public:
  TestCamelCaseFieldNames();
  virtual ~TestCamelCaseFieldNames();
  
  TestCamelCaseFieldNames(const TestCamelCaseFieldNames& from);
  
  inline TestCamelCaseFieldNames& operator=(const TestCamelCaseFieldNames& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestCamelCaseFieldNames& default_instance();
  
  void Swap(TestCamelCaseFieldNames* other);
  
  // implements Message ----------------------------------------------
  
  TestCamelCaseFieldNames* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestCamelCaseFieldNames& from);
  void MergeFrom(const TestCamelCaseFieldNames& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 PrimitiveField = 1;
  inline bool has_primitivefield() const;
  inline void clear_primitivefield();
  static const int kPrimitiveFieldFieldNumber = 1;
  inline ::google::protobuf::int32 primitivefield() const;
  inline void set_primitivefield(::google::protobuf::int32 value);
  
  // optional string StringField = 2;
  inline bool has_stringfield() const;
  inline void clear_stringfield();
  static const int kStringFieldFieldNumber = 2;
  inline const ::std::string& stringfield() const;
  inline void set_stringfield(const ::std::string& value);
  inline void set_stringfield(const char* value);
  inline void set_stringfield(const char* value, size_t size);
  inline ::std::string* mutable_stringfield();
  inline ::std::string* release_stringfield();
  
  // optional .protobuf_unittest.ForeignEnum EnumField = 3;
  inline bool has_enumfield() const;
  inline void clear_enumfield();
  static const int kEnumFieldFieldNumber = 3;
  inline protobuf_unittest::ForeignEnum enumfield() const;
  inline void set_enumfield(protobuf_unittest::ForeignEnum value);
  
  // optional .protobuf_unittest.ForeignMessage MessageField = 4;
  inline bool has_messagefield() const;
  inline void clear_messagefield();
  static const int kMessageFieldFieldNumber = 4;
  inline const ::protobuf_unittest::ForeignMessage& messagefield() const;
  inline ::protobuf_unittest::ForeignMessage* mutable_messagefield();
  inline ::protobuf_unittest::ForeignMessage* release_messagefield();
  
  // optional string StringPieceField = 5 [ctype = STRING_PIECE];
  inline bool has_stringpiecefield() const;
  inline void clear_stringpiecefield();
  static const int kStringPieceFieldFieldNumber = 5;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& stringpiecefield() const;
  inline void set_stringpiecefield(const ::std::string& value);
  inline void set_stringpiecefield(const char* value);
  inline void set_stringpiecefield(const char* value, size_t size);
  inline ::std::string* mutable_stringpiecefield();
  inline ::std::string* release_stringpiecefield();
 public:
  
  // optional string CordField = 6 [ctype = CORD];
  inline bool has_cordfield() const;
  inline void clear_cordfield();
  static const int kCordFieldFieldNumber = 6;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& cordfield() const;
  inline void set_cordfield(const ::std::string& value);
  inline void set_cordfield(const char* value);
  inline void set_cordfield(const char* value, size_t size);
  inline ::std::string* mutable_cordfield();
  inline ::std::string* release_cordfield();
 public:
  
  // repeated int32 RepeatedPrimitiveField = 7;
  inline int repeatedprimitivefield_size() const;
  inline void clear_repeatedprimitivefield();
  static const int kRepeatedPrimitiveFieldFieldNumber = 7;
  inline ::google::protobuf::int32 repeatedprimitivefield(int index) const;
  inline void set_repeatedprimitivefield(int index, ::google::protobuf::int32 value);
  inline void add_repeatedprimitivefield(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeatedprimitivefield() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeatedprimitivefield();
  
  // repeated string RepeatedStringField = 8;
  inline int repeatedstringfield_size() const;
  inline void clear_repeatedstringfield();
  static const int kRepeatedStringFieldFieldNumber = 8;
  inline const ::std::string& repeatedstringfield(int index) const;
  inline ::std::string* mutable_repeatedstringfield(int index);
  inline void set_repeatedstringfield(int index, const ::std::string& value);
  inline void set_repeatedstringfield(int index, const char* value);
  inline void set_repeatedstringfield(int index, const char* value, size_t size);
  inline ::std::string* add_repeatedstringfield();
  inline void add_repeatedstringfield(const ::std::string& value);
  inline void add_repeatedstringfield(const char* value);
  inline void add_repeatedstringfield(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeatedstringfield() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeatedstringfield();
  
  // repeated .protobuf_unittest.ForeignEnum RepeatedEnumField = 9;
  inline int repeatedenumfield_size() const;
  inline void clear_repeatedenumfield();
  static const int kRepeatedEnumFieldFieldNumber = 9;
  inline protobuf_unittest::ForeignEnum repeatedenumfield(int index) const;
  inline void set_repeatedenumfield(int index, protobuf_unittest::ForeignEnum value);
  inline void add_repeatedenumfield(protobuf_unittest::ForeignEnum value);
  inline const ::google::protobuf::RepeatedField<int>& repeatedenumfield() const;
  inline ::google::protobuf::RepeatedField<int>* mutable_repeatedenumfield();
  
  // repeated .protobuf_unittest.ForeignMessage RepeatedMessageField = 10;
  inline int repeatedmessagefield_size() const;
  inline void clear_repeatedmessagefield();
  static const int kRepeatedMessageFieldFieldNumber = 10;
  inline const ::protobuf_unittest::ForeignMessage& repeatedmessagefield(int index) const;
  inline ::protobuf_unittest::ForeignMessage* mutable_repeatedmessagefield(int index);
  inline ::protobuf_unittest::ForeignMessage* add_repeatedmessagefield();
  inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >&
      repeatedmessagefield() const;
  inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >*
      mutable_repeatedmessagefield();
  
  // repeated string RepeatedStringPieceField = 11 [ctype = STRING_PIECE];
  inline int repeatedstringpiecefield_size() const;
  inline void clear_repeatedstringpiecefield();
  static const int kRepeatedStringPieceFieldFieldNumber = 11;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& repeatedstringpiecefield(int index) const;
  inline ::std::string* mutable_repeatedstringpiecefield(int index);
  inline void set_repeatedstringpiecefield(int index, const ::std::string& value);
  inline void set_repeatedstringpiecefield(int index, const char* value);
  inline void set_repeatedstringpiecefield(int index, const char* value, size_t size);
  inline ::std::string* add_repeatedstringpiecefield();
  inline void add_repeatedstringpiecefield(const ::std::string& value);
  inline void add_repeatedstringpiecefield(const char* value);
  inline void add_repeatedstringpiecefield(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeatedstringpiecefield() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeatedstringpiecefield();
 public:
  
  // repeated string RepeatedCordField = 12 [ctype = CORD];
  inline int repeatedcordfield_size() const;
  inline void clear_repeatedcordfield();
  static const int kRepeatedCordFieldFieldNumber = 12;
 private:
  // Hidden due to unknown ctype option.
  inline const ::std::string& repeatedcordfield(int index) const;
  inline ::std::string* mutable_repeatedcordfield(int index);
  inline void set_repeatedcordfield(int index, const ::std::string& value);
  inline void set_repeatedcordfield(int index, const char* value);
  inline void set_repeatedcordfield(int index, const char* value, size_t size);
  inline ::std::string* add_repeatedcordfield();
  inline void add_repeatedcordfield(const ::std::string& value);
  inline void add_repeatedcordfield(const char* value);
  inline void add_repeatedcordfield(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeatedcordfield() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeatedcordfield();
 public:
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestCamelCaseFieldNames)
 private:
  inline void set_has_primitivefield();
  inline void clear_has_primitivefield();
  inline void set_has_stringfield();
  inline void clear_has_stringfield();
  inline void set_has_enumfield();
  inline void clear_has_enumfield();
  inline void set_has_messagefield();
  inline void clear_has_messagefield();
  inline void set_has_stringpiecefield();
  inline void clear_has_stringpiecefield();
  inline void set_has_cordfield();
  inline void clear_has_cordfield();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::std::string* stringfield_;
  ::google::protobuf::int32 primitivefield_;
  int enumfield_;
  ::protobuf_unittest::ForeignMessage* messagefield_;
  ::std::string* stringpiecefield_;
  ::std::string* cordfield_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeatedprimitivefield_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeatedstringfield_;
  ::google::protobuf::RepeatedField<int> repeatedenumfield_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage > repeatedmessagefield_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeatedstringpiecefield_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeatedcordfield_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(12 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestCamelCaseFieldNames* default_instance_;
};
// -------------------------------------------------------------------

class TestFieldOrderings : public ::google::protobuf::Message {
 public:
  TestFieldOrderings();
  virtual ~TestFieldOrderings();
  
  TestFieldOrderings(const TestFieldOrderings& from);
  
  inline TestFieldOrderings& operator=(const TestFieldOrderings& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestFieldOrderings& default_instance();
  
  void Swap(TestFieldOrderings* other);
  
  // implements Message ----------------------------------------------
  
  TestFieldOrderings* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestFieldOrderings& from);
  void MergeFrom(const TestFieldOrderings& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional string my_string = 11;
  inline bool has_my_string() const;
  inline void clear_my_string();
  static const int kMyStringFieldNumber = 11;
  inline const ::std::string& my_string() const;
  inline void set_my_string(const ::std::string& value);
  inline void set_my_string(const char* value);
  inline void set_my_string(const char* value, size_t size);
  inline ::std::string* mutable_my_string();
  inline ::std::string* release_my_string();
  
  // optional int64 my_int = 1;
  inline bool has_my_int() const;
  inline void clear_my_int();
  static const int kMyIntFieldNumber = 1;
  inline ::google::protobuf::int64 my_int() const;
  inline void set_my_int(::google::protobuf::int64 value);
  
  // optional float my_float = 101;
  inline bool has_my_float() const;
  inline void clear_my_float();
  static const int kMyFloatFieldNumber = 101;
  inline float my_float() const;
  inline void set_my_float(float value);
  
  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestFieldOrderings)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestFieldOrderings)
 private:
  inline void set_has_my_string();
  inline void clear_has_my_string();
  inline void set_has_my_int();
  inline void clear_has_my_int();
  inline void set_has_my_float();
  inline void clear_has_my_float();
  
  ::google::protobuf::internal::ExtensionSet _extensions_;
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::std::string* my_string_;
  ::google::protobuf::int64 my_int_;
  float my_float_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestFieldOrderings* default_instance_;
};
// -------------------------------------------------------------------

class TestExtremeDefaultValues : public ::google::protobuf::Message {
 public:
  TestExtremeDefaultValues();
  virtual ~TestExtremeDefaultValues();
  
  TestExtremeDefaultValues(const TestExtremeDefaultValues& from);
  
  inline TestExtremeDefaultValues& operator=(const TestExtremeDefaultValues& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestExtremeDefaultValues& default_instance();
  
  void Swap(TestExtremeDefaultValues* other);
  
  // implements Message ----------------------------------------------
  
  TestExtremeDefaultValues* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestExtremeDefaultValues& from);
  void MergeFrom(const TestExtremeDefaultValues& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional bytes escaped_bytes = 1 [default = "\000\001\007\010\014\n\r\t\013\\\'\"\376"];
  inline bool has_escaped_bytes() const;
  inline void clear_escaped_bytes();
  static const int kEscapedBytesFieldNumber = 1;
  inline const ::std::string& escaped_bytes() const;
  inline void set_escaped_bytes(const ::std::string& value);
  inline void set_escaped_bytes(const char* value);
  inline void set_escaped_bytes(const void* value, size_t size);
  inline ::std::string* mutable_escaped_bytes();
  inline ::std::string* release_escaped_bytes();
  
  // optional uint32 large_uint32 = 2 [default = 4294967295];
  inline bool has_large_uint32() const;
  inline void clear_large_uint32();
  static const int kLargeUint32FieldNumber = 2;
  inline ::google::protobuf::uint32 large_uint32() const;
  inline void set_large_uint32(::google::protobuf::uint32 value);
  
  // optional uint64 large_uint64 = 3 [default = 18446744073709551615];
  inline bool has_large_uint64() const;
  inline void clear_large_uint64();
  static const int kLargeUint64FieldNumber = 3;
  inline ::google::protobuf::uint64 large_uint64() const;
  inline void set_large_uint64(::google::protobuf::uint64 value);
  
  // optional int32 small_int32 = 4 [default = -2147483647];
  inline bool has_small_int32() const;
  inline void clear_small_int32();
  static const int kSmallInt32FieldNumber = 4;
  inline ::google::protobuf::int32 small_int32() const;
  inline void set_small_int32(::google::protobuf::int32 value);
  
  // optional int64 small_int64 = 5 [default = -9223372036854775807];
  inline bool has_small_int64() const;
  inline void clear_small_int64();
  static const int kSmallInt64FieldNumber = 5;
  inline ::google::protobuf::int64 small_int64() const;
  inline void set_small_int64(::google::protobuf::int64 value);
  
  // optional string utf8_string = 6 [default = "\341\210\264"];
  inline bool has_utf8_string() const;
  inline void clear_utf8_string();
  static const int kUtf8StringFieldNumber = 6;
  inline const ::std::string& utf8_string() const;
  inline void set_utf8_string(const ::std::string& value);
  inline void set_utf8_string(const char* value);
  inline void set_utf8_string(const char* value, size_t size);
  inline ::std::string* mutable_utf8_string();
  inline ::std::string* release_utf8_string();
  
  // optional float zero_float = 7 [default = 0];
  inline bool has_zero_float() const;
  inline void clear_zero_float();
  static const int kZeroFloatFieldNumber = 7;
  inline float zero_float() const;
  inline void set_zero_float(float value);
  
  // optional float one_float = 8 [default = 1];
  inline bool has_one_float() const;
  inline void clear_one_float();
  static const int kOneFloatFieldNumber = 8;
  inline float one_float() const;
  inline void set_one_float(float value);
  
  // optional float small_float = 9 [default = 1.5];
  inline bool has_small_float() const;
  inline void clear_small_float();
  static const int kSmallFloatFieldNumber = 9;
  inline float small_float() const;
  inline void set_small_float(float value);
  
  // optional float negative_one_float = 10 [default = -1];
  inline bool has_negative_one_float() const;
  inline void clear_negative_one_float();
  static const int kNegativeOneFloatFieldNumber = 10;
  inline float negative_one_float() const;
  inline void set_negative_one_float(float value);
  
  // optional float negative_float = 11 [default = -1.5];
  inline bool has_negative_float() const;
  inline void clear_negative_float();
  static const int kNegativeFloatFieldNumber = 11;
  inline float negative_float() const;
  inline void set_negative_float(float value);
  
  // optional float large_float = 12 [default = 2e+08];
  inline bool has_large_float() const;
  inline void clear_large_float();
  static const int kLargeFloatFieldNumber = 12;
  inline float large_float() const;
  inline void set_large_float(float value);
  
  // optional float small_negative_float = 13 [default = -8e-28];
  inline bool has_small_negative_float() const;
  inline void clear_small_negative_float();
  static const int kSmallNegativeFloatFieldNumber = 13;
  inline float small_negative_float() const;
  inline void set_small_negative_float(float value);
  
  // optional double inf_double = 14 [default = inf];
  inline bool has_inf_double() const;
  inline void clear_inf_double();
  static const int kInfDoubleFieldNumber = 14;
  inline double inf_double() const;
  inline void set_inf_double(double value);
  
  // optional double neg_inf_double = 15 [default = -inf];
  inline bool has_neg_inf_double() const;
  inline void clear_neg_inf_double();
  static const int kNegInfDoubleFieldNumber = 15;
  inline double neg_inf_double() const;
  inline void set_neg_inf_double(double value);
  
  // optional double nan_double = 16 [default = nan];
  inline bool has_nan_double() const;
  inline void clear_nan_double();
  static const int kNanDoubleFieldNumber = 16;
  inline double nan_double() const;
  inline void set_nan_double(double value);
  
  // optional float inf_float = 17 [default = inf];
  inline bool has_inf_float() const;
  inline void clear_inf_float();
  static const int kInfFloatFieldNumber = 17;
  inline float inf_float() const;
  inline void set_inf_float(float value);
  
  // optional float neg_inf_float = 18 [default = -inf];
  inline bool has_neg_inf_float() const;
  inline void clear_neg_inf_float();
  static const int kNegInfFloatFieldNumber = 18;
  inline float neg_inf_float() const;
  inline void set_neg_inf_float(float value);
  
  // optional float nan_float = 19 [default = nan];
  inline bool has_nan_float() const;
  inline void clear_nan_float();
  static const int kNanFloatFieldNumber = 19;
  inline float nan_float() const;
  inline void set_nan_float(float value);
  
  // optional string cpp_trigraph = 20 [default = "? ? ?? ?? ??? ??/ ??-"];
  inline bool has_cpp_trigraph() const;
  inline void clear_cpp_trigraph();
  static const int kCppTrigraphFieldNumber = 20;
  inline const ::std::string& cpp_trigraph() const;
  inline void set_cpp_trigraph(const ::std::string& value);
  inline void set_cpp_trigraph(const char* value);
  inline void set_cpp_trigraph(const char* value, size_t size);
  inline ::std::string* mutable_cpp_trigraph();
  inline ::std::string* release_cpp_trigraph();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestExtremeDefaultValues)
 private:
  inline void set_has_escaped_bytes();
  inline void clear_has_escaped_bytes();
  inline void set_has_large_uint32();
  inline void clear_has_large_uint32();
  inline void set_has_large_uint64();
  inline void clear_has_large_uint64();
  inline void set_has_small_int32();
  inline void clear_has_small_int32();
  inline void set_has_small_int64();
  inline void clear_has_small_int64();
  inline void set_has_utf8_string();
  inline void clear_has_utf8_string();
  inline void set_has_zero_float();
  inline void clear_has_zero_float();
  inline void set_has_one_float();
  inline void clear_has_one_float();
  inline void set_has_small_float();
  inline void clear_has_small_float();
  inline void set_has_negative_one_float();
  inline void clear_has_negative_one_float();
  inline void set_has_negative_float();
  inline void clear_has_negative_float();
  inline void set_has_large_float();
  inline void clear_has_large_float();
  inline void set_has_small_negative_float();
  inline void clear_has_small_negative_float();
  inline void set_has_inf_double();
  inline void clear_has_inf_double();
  inline void set_has_neg_inf_double();
  inline void clear_has_neg_inf_double();
  inline void set_has_nan_double();
  inline void clear_has_nan_double();
  inline void set_has_inf_float();
  inline void clear_has_inf_float();
  inline void set_has_neg_inf_float();
  inline void clear_has_neg_inf_float();
  inline void set_has_nan_float();
  inline void clear_has_nan_float();
  inline void set_has_cpp_trigraph();
  inline void clear_has_cpp_trigraph();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::std::string* escaped_bytes_;
  static const ::std::string _default_escaped_bytes_;
  ::google::protobuf::uint64 large_uint64_;
  ::google::protobuf::uint32 large_uint32_;
  ::google::protobuf::int32 small_int32_;
  ::google::protobuf::int64 small_int64_;
  ::std::string* utf8_string_;
  static const ::std::string _default_utf8_string_;
  float zero_float_;
  float one_float_;
  float small_float_;
  float negative_one_float_;
  float negative_float_;
  float large_float_;
  double inf_double_;
  double neg_inf_double_;
  float small_negative_float_;
  float inf_float_;
  double nan_double_;
  float neg_inf_float_;
  float nan_float_;
  ::std::string* cpp_trigraph_;
  static const ::std::string _default_cpp_trigraph_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(20 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestExtremeDefaultValues* default_instance_;
};
// -------------------------------------------------------------------

class SparseEnumMessage : public ::google::protobuf::Message {
 public:
  SparseEnumMessage();
  virtual ~SparseEnumMessage();
  
  SparseEnumMessage(const SparseEnumMessage& from);
  
  inline SparseEnumMessage& operator=(const SparseEnumMessage& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const SparseEnumMessage& default_instance();
  
  void Swap(SparseEnumMessage* other);
  
  // implements Message ----------------------------------------------
  
  SparseEnumMessage* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SparseEnumMessage& from);
  void MergeFrom(const SparseEnumMessage& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional .protobuf_unittest.TestSparseEnum sparse_enum = 1;
  inline bool has_sparse_enum() const;
  inline void clear_sparse_enum();
  static const int kSparseEnumFieldNumber = 1;
  inline protobuf_unittest::TestSparseEnum sparse_enum() const;
  inline void set_sparse_enum(protobuf_unittest::TestSparseEnum value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.SparseEnumMessage)
 private:
  inline void set_has_sparse_enum();
  inline void clear_has_sparse_enum();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  int sparse_enum_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static SparseEnumMessage* default_instance_;
};
// -------------------------------------------------------------------

class OneString : public ::google::protobuf::Message {
 public:
  OneString();
  virtual ~OneString();
  
  OneString(const OneString& from);
  
  inline OneString& operator=(const OneString& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const OneString& default_instance();
  
  void Swap(OneString* other);
  
  // implements Message ----------------------------------------------
  
  OneString* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OneString& from);
  void MergeFrom(const OneString& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional string data = 1;
  inline bool has_data() const;
  inline void clear_data();
  static const int kDataFieldNumber = 1;
  inline const ::std::string& data() const;
  inline void set_data(const ::std::string& value);
  inline void set_data(const char* value);
  inline void set_data(const char* value, size_t size);
  inline ::std::string* mutable_data();
  inline ::std::string* release_data();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.OneString)
 private:
  inline void set_has_data();
  inline void clear_has_data();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::std::string* data_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static OneString* default_instance_;
};
// -------------------------------------------------------------------

class OneBytes : public ::google::protobuf::Message {
 public:
  OneBytes();
  virtual ~OneBytes();
  
  OneBytes(const OneBytes& from);
  
  inline OneBytes& operator=(const OneBytes& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const OneBytes& default_instance();
  
  void Swap(OneBytes* other);
  
  // implements Message ----------------------------------------------
  
  OneBytes* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OneBytes& from);
  void MergeFrom(const OneBytes& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional bytes data = 1;
  inline bool has_data() const;
  inline void clear_data();
  static const int kDataFieldNumber = 1;
  inline const ::std::string& data() const;
  inline void set_data(const ::std::string& value);
  inline void set_data(const char* value);
  inline void set_data(const void* value, size_t size);
  inline ::std::string* mutable_data();
  inline ::std::string* release_data();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.OneBytes)
 private:
  inline void set_has_data();
  inline void clear_has_data();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::std::string* data_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static OneBytes* default_instance_;
};
// -------------------------------------------------------------------

class TestPackedTypes : public ::google::protobuf::Message {
 public:
  TestPackedTypes();
  virtual ~TestPackedTypes();
  
  TestPackedTypes(const TestPackedTypes& from);
  
  inline TestPackedTypes& operator=(const TestPackedTypes& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestPackedTypes& default_instance();
  
  void Swap(TestPackedTypes* other);
  
  // implements Message ----------------------------------------------
  
  TestPackedTypes* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestPackedTypes& from);
  void MergeFrom(const TestPackedTypes& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // repeated int32 packed_int32 = 90 [packed = true];
  inline int packed_int32_size() const;
  inline void clear_packed_int32();
  static const int kPackedInt32FieldNumber = 90;
  inline ::google::protobuf::int32 packed_int32(int index) const;
  inline void set_packed_int32(int index, ::google::protobuf::int32 value);
  inline void add_packed_int32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_int32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_int32();
  
  // repeated int64 packed_int64 = 91 [packed = true];
  inline int packed_int64_size() const;
  inline void clear_packed_int64();
  static const int kPackedInt64FieldNumber = 91;
  inline ::google::protobuf::int64 packed_int64(int index) const;
  inline void set_packed_int64(int index, ::google::protobuf::int64 value);
  inline void add_packed_int64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_int64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_int64();
  
  // repeated uint32 packed_uint32 = 92 [packed = true];
  inline int packed_uint32_size() const;
  inline void clear_packed_uint32();
  static const int kPackedUint32FieldNumber = 92;
  inline ::google::protobuf::uint32 packed_uint32(int index) const;
  inline void set_packed_uint32(int index, ::google::protobuf::uint32 value);
  inline void add_packed_uint32(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      packed_uint32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_packed_uint32();
  
  // repeated uint64 packed_uint64 = 93 [packed = true];
  inline int packed_uint64_size() const;
  inline void clear_packed_uint64();
  static const int kPackedUint64FieldNumber = 93;
  inline ::google::protobuf::uint64 packed_uint64(int index) const;
  inline void set_packed_uint64(int index, ::google::protobuf::uint64 value);
  inline void add_packed_uint64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      packed_uint64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_packed_uint64();
  
  // repeated sint32 packed_sint32 = 94 [packed = true];
  inline int packed_sint32_size() const;
  inline void clear_packed_sint32();
  static const int kPackedSint32FieldNumber = 94;
  inline ::google::protobuf::int32 packed_sint32(int index) const;
  inline void set_packed_sint32(int index, ::google::protobuf::int32 value);
  inline void add_packed_sint32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_sint32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_sint32();
  
  // repeated sint64 packed_sint64 = 95 [packed = true];
  inline int packed_sint64_size() const;
  inline void clear_packed_sint64();
  static const int kPackedSint64FieldNumber = 95;
  inline ::google::protobuf::int64 packed_sint64(int index) const;
  inline void set_packed_sint64(int index, ::google::protobuf::int64 value);
  inline void add_packed_sint64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_sint64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_sint64();
  
  // repeated fixed32 packed_fixed32 = 96 [packed = true];
  inline int packed_fixed32_size() const;
  inline void clear_packed_fixed32();
  static const int kPackedFixed32FieldNumber = 96;
  inline ::google::protobuf::uint32 packed_fixed32(int index) const;
  inline void set_packed_fixed32(int index, ::google::protobuf::uint32 value);
  inline void add_packed_fixed32(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      packed_fixed32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_packed_fixed32();
  
  // repeated fixed64 packed_fixed64 = 97 [packed = true];
  inline int packed_fixed64_size() const;
  inline void clear_packed_fixed64();
  static const int kPackedFixed64FieldNumber = 97;
  inline ::google::protobuf::uint64 packed_fixed64(int index) const;
  inline void set_packed_fixed64(int index, ::google::protobuf::uint64 value);
  inline void add_packed_fixed64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      packed_fixed64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_packed_fixed64();
  
  // repeated sfixed32 packed_sfixed32 = 98 [packed = true];
  inline int packed_sfixed32_size() const;
  inline void clear_packed_sfixed32();
  static const int kPackedSfixed32FieldNumber = 98;
  inline ::google::protobuf::int32 packed_sfixed32(int index) const;
  inline void set_packed_sfixed32(int index, ::google::protobuf::int32 value);
  inline void add_packed_sfixed32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_sfixed32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_sfixed32();
  
  // repeated sfixed64 packed_sfixed64 = 99 [packed = true];
  inline int packed_sfixed64_size() const;
  inline void clear_packed_sfixed64();
  static const int kPackedSfixed64FieldNumber = 99;
  inline ::google::protobuf::int64 packed_sfixed64(int index) const;
  inline void set_packed_sfixed64(int index, ::google::protobuf::int64 value);
  inline void add_packed_sfixed64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_sfixed64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_sfixed64();
  
  // repeated float packed_float = 100 [packed = true];
  inline int packed_float_size() const;
  inline void clear_packed_float();
  static const int kPackedFloatFieldNumber = 100;
  inline float packed_float(int index) const;
  inline void set_packed_float(int index, float value);
  inline void add_packed_float(float value);
  inline const ::google::protobuf::RepeatedField< float >&
      packed_float() const;
  inline ::google::protobuf::RepeatedField< float >*
      mutable_packed_float();
  
  // repeated double packed_double = 101 [packed = true];
  inline int packed_double_size() const;
  inline void clear_packed_double();
  static const int kPackedDoubleFieldNumber = 101;
  inline double packed_double(int index) const;
  inline void set_packed_double(int index, double value);
  inline void add_packed_double(double value);
  inline const ::google::protobuf::RepeatedField< double >&
      packed_double() const;
  inline ::google::protobuf::RepeatedField< double >*
      mutable_packed_double();
  
  // repeated bool packed_bool = 102 [packed = true];
  inline int packed_bool_size() const;
  inline void clear_packed_bool();
  static const int kPackedBoolFieldNumber = 102;
  inline bool packed_bool(int index) const;
  inline void set_packed_bool(int index, bool value);
  inline void add_packed_bool(bool value);
  inline const ::google::protobuf::RepeatedField< bool >&
      packed_bool() const;
  inline ::google::protobuf::RepeatedField< bool >*
      mutable_packed_bool();
  
  // repeated .protobuf_unittest.ForeignEnum packed_enum = 103 [packed = true];
  inline int packed_enum_size() const;
  inline void clear_packed_enum();
  static const int kPackedEnumFieldNumber = 103;
  inline protobuf_unittest::ForeignEnum packed_enum(int index) const;
  inline void set_packed_enum(int index, protobuf_unittest::ForeignEnum value);
  inline void add_packed_enum(protobuf_unittest::ForeignEnum value);
  inline const ::google::protobuf::RepeatedField<int>& packed_enum() const;
  inline ::google::protobuf::RepeatedField<int>* mutable_packed_enum();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestPackedTypes)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_int32_;
  mutable int _packed_int32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_int64_;
  mutable int _packed_int64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > packed_uint32_;
  mutable int _packed_uint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > packed_uint64_;
  mutable int _packed_uint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_sint32_;
  mutable int _packed_sint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_sint64_;
  mutable int _packed_sint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > packed_fixed32_;
  mutable int _packed_fixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > packed_fixed64_;
  mutable int _packed_fixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_sfixed32_;
  mutable int _packed_sfixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_sfixed64_;
  mutable int _packed_sfixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< float > packed_float_;
  mutable int _packed_float_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > packed_double_;
  mutable int _packed_double_cached_byte_size_;
  ::google::protobuf::RepeatedField< bool > packed_bool_;
  mutable int _packed_bool_cached_byte_size_;
  ::google::protobuf::RepeatedField<int> packed_enum_;
  mutable int _packed_enum_cached_byte_size_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(14 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestPackedTypes* default_instance_;
};
// -------------------------------------------------------------------

class TestUnpackedTypes : public ::google::protobuf::Message {
 public:
  TestUnpackedTypes();
  virtual ~TestUnpackedTypes();
  
  TestUnpackedTypes(const TestUnpackedTypes& from);
  
  inline TestUnpackedTypes& operator=(const TestUnpackedTypes& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestUnpackedTypes& default_instance();
  
  void Swap(TestUnpackedTypes* other);
  
  // implements Message ----------------------------------------------
  
  TestUnpackedTypes* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestUnpackedTypes& from);
  void MergeFrom(const TestUnpackedTypes& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // repeated int32 unpacked_int32 = 90 [packed = false];
  inline int unpacked_int32_size() const;
  inline void clear_unpacked_int32();
  static const int kUnpackedInt32FieldNumber = 90;
  inline ::google::protobuf::int32 unpacked_int32(int index) const;
  inline void set_unpacked_int32(int index, ::google::protobuf::int32 value);
  inline void add_unpacked_int32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      unpacked_int32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_unpacked_int32();
  
  // repeated int64 unpacked_int64 = 91 [packed = false];
  inline int unpacked_int64_size() const;
  inline void clear_unpacked_int64();
  static const int kUnpackedInt64FieldNumber = 91;
  inline ::google::protobuf::int64 unpacked_int64(int index) const;
  inline void set_unpacked_int64(int index, ::google::protobuf::int64 value);
  inline void add_unpacked_int64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      unpacked_int64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_unpacked_int64();
  
  // repeated uint32 unpacked_uint32 = 92 [packed = false];
  inline int unpacked_uint32_size() const;
  inline void clear_unpacked_uint32();
  static const int kUnpackedUint32FieldNumber = 92;
  inline ::google::protobuf::uint32 unpacked_uint32(int index) const;
  inline void set_unpacked_uint32(int index, ::google::protobuf::uint32 value);
  inline void add_unpacked_uint32(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      unpacked_uint32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_unpacked_uint32();
  
  // repeated uint64 unpacked_uint64 = 93 [packed = false];
  inline int unpacked_uint64_size() const;
  inline void clear_unpacked_uint64();
  static const int kUnpackedUint64FieldNumber = 93;
  inline ::google::protobuf::uint64 unpacked_uint64(int index) const;
  inline void set_unpacked_uint64(int index, ::google::protobuf::uint64 value);
  inline void add_unpacked_uint64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      unpacked_uint64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_unpacked_uint64();
  
  // repeated sint32 unpacked_sint32 = 94 [packed = false];
  inline int unpacked_sint32_size() const;
  inline void clear_unpacked_sint32();
  static const int kUnpackedSint32FieldNumber = 94;
  inline ::google::protobuf::int32 unpacked_sint32(int index) const;
  inline void set_unpacked_sint32(int index, ::google::protobuf::int32 value);
  inline void add_unpacked_sint32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      unpacked_sint32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_unpacked_sint32();
  
  // repeated sint64 unpacked_sint64 = 95 [packed = false];
  inline int unpacked_sint64_size() const;
  inline void clear_unpacked_sint64();
  static const int kUnpackedSint64FieldNumber = 95;
  inline ::google::protobuf::int64 unpacked_sint64(int index) const;
  inline void set_unpacked_sint64(int index, ::google::protobuf::int64 value);
  inline void add_unpacked_sint64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      unpacked_sint64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_unpacked_sint64();
  
  // repeated fixed32 unpacked_fixed32 = 96 [packed = false];
  inline int unpacked_fixed32_size() const;
  inline void clear_unpacked_fixed32();
  static const int kUnpackedFixed32FieldNumber = 96;
  inline ::google::protobuf::uint32 unpacked_fixed32(int index) const;
  inline void set_unpacked_fixed32(int index, ::google::protobuf::uint32 value);
  inline void add_unpacked_fixed32(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      unpacked_fixed32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_unpacked_fixed32();
  
  // repeated fixed64 unpacked_fixed64 = 97 [packed = false];
  inline int unpacked_fixed64_size() const;
  inline void clear_unpacked_fixed64();
  static const int kUnpackedFixed64FieldNumber = 97;
  inline ::google::protobuf::uint64 unpacked_fixed64(int index) const;
  inline void set_unpacked_fixed64(int index, ::google::protobuf::uint64 value);
  inline void add_unpacked_fixed64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      unpacked_fixed64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_unpacked_fixed64();
  
  // repeated sfixed32 unpacked_sfixed32 = 98 [packed = false];
  inline int unpacked_sfixed32_size() const;
  inline void clear_unpacked_sfixed32();
  static const int kUnpackedSfixed32FieldNumber = 98;
  inline ::google::protobuf::int32 unpacked_sfixed32(int index) const;
  inline void set_unpacked_sfixed32(int index, ::google::protobuf::int32 value);
  inline void add_unpacked_sfixed32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      unpacked_sfixed32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_unpacked_sfixed32();
  
  // repeated sfixed64 unpacked_sfixed64 = 99 [packed = false];
  inline int unpacked_sfixed64_size() const;
  inline void clear_unpacked_sfixed64();
  static const int kUnpackedSfixed64FieldNumber = 99;
  inline ::google::protobuf::int64 unpacked_sfixed64(int index) const;
  inline void set_unpacked_sfixed64(int index, ::google::protobuf::int64 value);
  inline void add_unpacked_sfixed64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      unpacked_sfixed64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_unpacked_sfixed64();
  
  // repeated float unpacked_float = 100 [packed = false];
  inline int unpacked_float_size() const;
  inline void clear_unpacked_float();
  static const int kUnpackedFloatFieldNumber = 100;
  inline float unpacked_float(int index) const;
  inline void set_unpacked_float(int index, float value);
  inline void add_unpacked_float(float value);
  inline const ::google::protobuf::RepeatedField< float >&
      unpacked_float() const;
  inline ::google::protobuf::RepeatedField< float >*
      mutable_unpacked_float();
  
  // repeated double unpacked_double = 101 [packed = false];
  inline int unpacked_double_size() const;
  inline void clear_unpacked_double();
  static const int kUnpackedDoubleFieldNumber = 101;
  inline double unpacked_double(int index) const;
  inline void set_unpacked_double(int index, double value);
  inline void add_unpacked_double(double value);
  inline const ::google::protobuf::RepeatedField< double >&
      unpacked_double() const;
  inline ::google::protobuf::RepeatedField< double >*
      mutable_unpacked_double();
  
  // repeated bool unpacked_bool = 102 [packed = false];
  inline int unpacked_bool_size() const;
  inline void clear_unpacked_bool();
  static const int kUnpackedBoolFieldNumber = 102;
  inline bool unpacked_bool(int index) const;
  inline void set_unpacked_bool(int index, bool value);
  inline void add_unpacked_bool(bool value);
  inline const ::google::protobuf::RepeatedField< bool >&
      unpacked_bool() const;
  inline ::google::protobuf::RepeatedField< bool >*
      mutable_unpacked_bool();
  
  // repeated .protobuf_unittest.ForeignEnum unpacked_enum = 103 [packed = false];
  inline int unpacked_enum_size() const;
  inline void clear_unpacked_enum();
  static const int kUnpackedEnumFieldNumber = 103;
  inline protobuf_unittest::ForeignEnum unpacked_enum(int index) const;
  inline void set_unpacked_enum(int index, protobuf_unittest::ForeignEnum value);
  inline void add_unpacked_enum(protobuf_unittest::ForeignEnum value);
  inline const ::google::protobuf::RepeatedField<int>& unpacked_enum() const;
  inline ::google::protobuf::RepeatedField<int>* mutable_unpacked_enum();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestUnpackedTypes)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > unpacked_int32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > unpacked_int64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > unpacked_uint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > unpacked_uint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > unpacked_sint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > unpacked_sint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > unpacked_fixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > unpacked_fixed64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > unpacked_sfixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > unpacked_sfixed64_;
  ::google::protobuf::RepeatedField< float > unpacked_float_;
  ::google::protobuf::RepeatedField< double > unpacked_double_;
  ::google::protobuf::RepeatedField< bool > unpacked_bool_;
  ::google::protobuf::RepeatedField<int> unpacked_enum_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(14 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestUnpackedTypes* default_instance_;
};
// -------------------------------------------------------------------

class TestPackedExtensions : public ::google::protobuf::Message {
 public:
  TestPackedExtensions();
  virtual ~TestPackedExtensions();
  
  TestPackedExtensions(const TestPackedExtensions& from);
  
  inline TestPackedExtensions& operator=(const TestPackedExtensions& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestPackedExtensions& default_instance();
  
  void Swap(TestPackedExtensions* other);
  
  // implements Message ----------------------------------------------
  
  TestPackedExtensions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestPackedExtensions& from);
  void MergeFrom(const TestPackedExtensions& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestPackedExtensions)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestPackedExtensions)
 private:
  
  ::google::protobuf::internal::ExtensionSet _extensions_;
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestPackedExtensions* default_instance_;
};
// -------------------------------------------------------------------

class TestDynamicExtensions_DynamicMessageType : public ::google::protobuf::Message {
 public:
  TestDynamicExtensions_DynamicMessageType();
  virtual ~TestDynamicExtensions_DynamicMessageType();
  
  TestDynamicExtensions_DynamicMessageType(const TestDynamicExtensions_DynamicMessageType& from);
  
  inline TestDynamicExtensions_DynamicMessageType& operator=(const TestDynamicExtensions_DynamicMessageType& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestDynamicExtensions_DynamicMessageType& default_instance();
  
  void Swap(TestDynamicExtensions_DynamicMessageType* other);
  
  // implements Message ----------------------------------------------
  
  TestDynamicExtensions_DynamicMessageType* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestDynamicExtensions_DynamicMessageType& from);
  void MergeFrom(const TestDynamicExtensions_DynamicMessageType& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional int32 dynamic_field = 2100;
  inline bool has_dynamic_field() const;
  inline void clear_dynamic_field();
  static const int kDynamicFieldFieldNumber = 2100;
  inline ::google::protobuf::int32 dynamic_field() const;
  inline void set_dynamic_field(::google::protobuf::int32 value);
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestDynamicExtensions.DynamicMessageType)
 private:
  inline void set_has_dynamic_field();
  inline void clear_has_dynamic_field();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::int32 dynamic_field_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestDynamicExtensions_DynamicMessageType* default_instance_;
};
// -------------------------------------------------------------------

class TestDynamicExtensions : public ::google::protobuf::Message {
 public:
  TestDynamicExtensions();
  virtual ~TestDynamicExtensions();
  
  TestDynamicExtensions(const TestDynamicExtensions& from);
  
  inline TestDynamicExtensions& operator=(const TestDynamicExtensions& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestDynamicExtensions& default_instance();
  
  void Swap(TestDynamicExtensions* other);
  
  // implements Message ----------------------------------------------
  
  TestDynamicExtensions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestDynamicExtensions& from);
  void MergeFrom(const TestDynamicExtensions& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  typedef TestDynamicExtensions_DynamicMessageType DynamicMessageType;
  
  typedef TestDynamicExtensions_DynamicEnumType DynamicEnumType;
  static const DynamicEnumType DYNAMIC_FOO = TestDynamicExtensions_DynamicEnumType_DYNAMIC_FOO;
  static const DynamicEnumType DYNAMIC_BAR = TestDynamicExtensions_DynamicEnumType_DYNAMIC_BAR;
  static const DynamicEnumType DYNAMIC_BAZ = TestDynamicExtensions_DynamicEnumType_DYNAMIC_BAZ;
  static inline bool DynamicEnumType_IsValid(int value) {
    return TestDynamicExtensions_DynamicEnumType_IsValid(value);
  }
  static const DynamicEnumType DynamicEnumType_MIN =
    TestDynamicExtensions_DynamicEnumType_DynamicEnumType_MIN;
  static const DynamicEnumType DynamicEnumType_MAX =
    TestDynamicExtensions_DynamicEnumType_DynamicEnumType_MAX;
  static const int DynamicEnumType_ARRAYSIZE =
    TestDynamicExtensions_DynamicEnumType_DynamicEnumType_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  DynamicEnumType_descriptor() {
    return TestDynamicExtensions_DynamicEnumType_descriptor();
  }
  static inline const ::std::string& DynamicEnumType_Name(DynamicEnumType value) {
    return TestDynamicExtensions_DynamicEnumType_Name(value);
  }
  static inline bool DynamicEnumType_Parse(const ::std::string& name,
      DynamicEnumType* value) {
    return TestDynamicExtensions_DynamicEnumType_Parse(name, value);
  }
  
  // accessors -------------------------------------------------------
  
  // optional fixed32 scalar_extension = 2000;
  inline bool has_scalar_extension() const;
  inline void clear_scalar_extension();
  static const int kScalarExtensionFieldNumber = 2000;
  inline ::google::protobuf::uint32 scalar_extension() const;
  inline void set_scalar_extension(::google::protobuf::uint32 value);
  
  // optional .protobuf_unittest.ForeignEnum enum_extension = 2001;
  inline bool has_enum_extension() const;
  inline void clear_enum_extension();
  static const int kEnumExtensionFieldNumber = 2001;
  inline protobuf_unittest::ForeignEnum enum_extension() const;
  inline void set_enum_extension(protobuf_unittest::ForeignEnum value);
  
  // optional .protobuf_unittest.TestDynamicExtensions.DynamicEnumType dynamic_enum_extension = 2002;
  inline bool has_dynamic_enum_extension() const;
  inline void clear_dynamic_enum_extension();
  static const int kDynamicEnumExtensionFieldNumber = 2002;
  inline ::protobuf_unittest::TestDynamicExtensions_DynamicEnumType dynamic_enum_extension() const;
  inline void set_dynamic_enum_extension(::protobuf_unittest::TestDynamicExtensions_DynamicEnumType value);
  
  // optional .protobuf_unittest.ForeignMessage message_extension = 2003;
  inline bool has_message_extension() const;
  inline void clear_message_extension();
  static const int kMessageExtensionFieldNumber = 2003;
  inline const ::protobuf_unittest::ForeignMessage& message_extension() const;
  inline ::protobuf_unittest::ForeignMessage* mutable_message_extension();
  inline ::protobuf_unittest::ForeignMessage* release_message_extension();
  
  // optional .protobuf_unittest.TestDynamicExtensions.DynamicMessageType dynamic_message_extension = 2004;
  inline bool has_dynamic_message_extension() const;
  inline void clear_dynamic_message_extension();
  static const int kDynamicMessageExtensionFieldNumber = 2004;
  inline const ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType& dynamic_message_extension() const;
  inline ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType* mutable_dynamic_message_extension();
  inline ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType* release_dynamic_message_extension();
  
  // repeated string repeated_extension = 2005;
  inline int repeated_extension_size() const;
  inline void clear_repeated_extension();
  static const int kRepeatedExtensionFieldNumber = 2005;
  inline const ::std::string& repeated_extension(int index) const;
  inline ::std::string* mutable_repeated_extension(int index);
  inline void set_repeated_extension(int index, const ::std::string& value);
  inline void set_repeated_extension(int index, const char* value);
  inline void set_repeated_extension(int index, const char* value, size_t size);
  inline ::std::string* add_repeated_extension();
  inline void add_repeated_extension(const ::std::string& value);
  inline void add_repeated_extension(const char* value);
  inline void add_repeated_extension(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_extension() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_extension();
  
  // repeated sint32 packed_extension = 2006 [packed = true];
  inline int packed_extension_size() const;
  inline void clear_packed_extension();
  static const int kPackedExtensionFieldNumber = 2006;
  inline ::google::protobuf::int32 packed_extension(int index) const;
  inline void set_packed_extension(int index, ::google::protobuf::int32 value);
  inline void add_packed_extension(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_extension() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_extension();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestDynamicExtensions)
 private:
  inline void set_has_scalar_extension();
  inline void clear_has_scalar_extension();
  inline void set_has_enum_extension();
  inline void clear_has_enum_extension();
  inline void set_has_dynamic_enum_extension();
  inline void clear_has_dynamic_enum_extension();
  inline void set_has_message_extension();
  inline void clear_has_message_extension();
  inline void set_has_dynamic_message_extension();
  inline void clear_has_dynamic_message_extension();
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::uint32 scalar_extension_;
  int enum_extension_;
  ::protobuf_unittest::ForeignMessage* message_extension_;
  ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType* dynamic_message_extension_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_extension_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_extension_;
  mutable int _packed_extension_cached_byte_size_;
  int dynamic_enum_extension_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestDynamicExtensions* default_instance_;
};
// -------------------------------------------------------------------

class TestRepeatedScalarDifferentTagSizes : public ::google::protobuf::Message {
 public:
  TestRepeatedScalarDifferentTagSizes();
  virtual ~TestRepeatedScalarDifferentTagSizes();
  
  TestRepeatedScalarDifferentTagSizes(const TestRepeatedScalarDifferentTagSizes& from);
  
  inline TestRepeatedScalarDifferentTagSizes& operator=(const TestRepeatedScalarDifferentTagSizes& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestRepeatedScalarDifferentTagSizes& default_instance();
  
  void Swap(TestRepeatedScalarDifferentTagSizes* other);
  
  // implements Message ----------------------------------------------
  
  TestRepeatedScalarDifferentTagSizes* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TestRepeatedScalarDifferentTagSizes& from);
  void MergeFrom(const TestRepeatedScalarDifferentTagSizes& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // repeated fixed32 repeated_fixed32 = 12;
  inline int repeated_fixed32_size() const;
  inline void clear_repeated_fixed32();
  static const int kRepeatedFixed32FieldNumber = 12;
  inline ::google::protobuf::uint32 repeated_fixed32(int index) const;
  inline void set_repeated_fixed32(int index, ::google::protobuf::uint32 value);
  inline void add_repeated_fixed32(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_fixed32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_fixed32();
  
  // repeated int32 repeated_int32 = 13;
  inline int repeated_int32_size() const;
  inline void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 13;
  inline ::google::protobuf::int32 repeated_int32(int index) const;
  inline void set_repeated_int32(int index, ::google::protobuf::int32 value);
  inline void add_repeated_int32(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();
  
  // repeated fixed64 repeated_fixed64 = 2046;
  inline int repeated_fixed64_size() const;
  inline void clear_repeated_fixed64();
  static const int kRepeatedFixed64FieldNumber = 2046;
  inline ::google::protobuf::uint64 repeated_fixed64(int index) const;
  inline void set_repeated_fixed64(int index, ::google::protobuf::uint64 value);
  inline void add_repeated_fixed64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_fixed64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_fixed64();
  
  // repeated int64 repeated_int64 = 2047;
  inline int repeated_int64_size() const;
  inline void clear_repeated_int64();
  static const int kRepeatedInt64FieldNumber = 2047;
  inline ::google::protobuf::int64 repeated_int64(int index) const;
  inline void set_repeated_int64(int index, ::google::protobuf::int64 value);
  inline void add_repeated_int64(::google::protobuf::int64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_int64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_int64();
  
  // repeated float repeated_float = 262142;
  inline int repeated_float_size() const;
  inline void clear_repeated_float();
  static const int kRepeatedFloatFieldNumber = 262142;
  inline float repeated_float(int index) const;
  inline void set_repeated_float(int index, float value);
  inline void add_repeated_float(float value);
  inline const ::google::protobuf::RepeatedField< float >&
      repeated_float() const;
  inline ::google::protobuf::RepeatedField< float >*
      mutable_repeated_float();
  
  // repeated uint64 repeated_uint64 = 262143;
  inline int repeated_uint64_size() const;
  inline void clear_repeated_uint64();
  static const int kRepeatedUint64FieldNumber = 262143;
  inline ::google::protobuf::uint64 repeated_uint64(int index) const;
  inline void set_repeated_uint64(int index, ::google::protobuf::uint64 value);
  inline void add_repeated_uint64(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_uint64() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_uint64();
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestRepeatedScalarDifferentTagSizes)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_fixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_fixed64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_int64_;
  ::google::protobuf::RepeatedField< float > repeated_float_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_uint64_;
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static TestRepeatedScalarDifferentTagSizes* default_instance_;
};
// -------------------------------------------------------------------

class FooRequest : public ::google::protobuf::Message {
 public:
  FooRequest();
  virtual ~FooRequest();
  
  FooRequest(const FooRequest& from);
  
  inline FooRequest& operator=(const FooRequest& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const FooRequest& default_instance();
  
  void Swap(FooRequest* other);
  
  // implements Message ----------------------------------------------
  
  FooRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const FooRequest& from);
  void MergeFrom(const FooRequest& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.FooRequest)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static FooRequest* default_instance_;
};
// -------------------------------------------------------------------

class FooResponse : public ::google::protobuf::Message {
 public:
  FooResponse();
  virtual ~FooResponse();
  
  FooResponse(const FooResponse& from);
  
  inline FooResponse& operator=(const FooResponse& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const FooResponse& default_instance();
  
  void Swap(FooResponse* other);
  
  // implements Message ----------------------------------------------
  
  FooResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const FooResponse& from);
  void MergeFrom(const FooResponse& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.FooResponse)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static FooResponse* default_instance_;
};
// -------------------------------------------------------------------

class BarRequest : public ::google::protobuf::Message {
 public:
  BarRequest();
  virtual ~BarRequest();
  
  BarRequest(const BarRequest& from);
  
  inline BarRequest& operator=(const BarRequest& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const BarRequest& default_instance();
  
  void Swap(BarRequest* other);
  
  // implements Message ----------------------------------------------
  
  BarRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const BarRequest& from);
  void MergeFrom(const BarRequest& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.BarRequest)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static BarRequest* default_instance_;
};
// -------------------------------------------------------------------

class BarResponse : public ::google::protobuf::Message {
 public:
  BarResponse();
  virtual ~BarResponse();
  
  BarResponse(const BarResponse& from);
  
  inline BarResponse& operator=(const BarResponse& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const BarResponse& default_instance();
  
  void Swap(BarResponse* other);
  
  // implements Message ----------------------------------------------
  
  BarResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const BarResponse& from);
  void MergeFrom(const BarResponse& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // @@protoc_insertion_point(class_scope:protobuf_unittest.BarResponse)
 private:
  
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
  
  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[1];
  
  friend void  protobuf_AddDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_AssignDesc_google_2fprotobuf_2funittest_2eproto();
  friend void protobuf_ShutdownFile_google_2fprotobuf_2funittest_2eproto();
  
  void InitAsDefaultInstance();
  static BarResponse* default_instance_;
};
// ===================================================================

class TestService_Stub;

class TestService : public ::google::protobuf::Service {
 protected:
  // This class should be treated as an abstract interface.
  inline TestService() {};
 public:
  virtual ~TestService();
  
  typedef TestService_Stub Stub;
  
  static const ::google::protobuf::ServiceDescriptor* descriptor();
  
  virtual void Foo(::google::protobuf::RpcController* controller,
                       const ::protobuf_unittest::FooRequest* request,
                       ::protobuf_unittest::FooResponse* response,
                       ::google::protobuf::Closure* done);
  virtual void Bar(::google::protobuf::RpcController* controller,
                       const ::protobuf_unittest::BarRequest* request,
                       ::protobuf_unittest::BarResponse* response,
                       ::google::protobuf::Closure* done);
  
  // implements Service ----------------------------------------------
  
  const ::google::protobuf::ServiceDescriptor* GetDescriptor();
  void CallMethod(const ::google::protobuf::MethodDescriptor* method,
                  ::google::protobuf::RpcController* controller,
                  const ::google::protobuf::Message* request,
                  ::google::protobuf::Message* response,
                  ::google::protobuf::Closure* done);
  const ::google::protobuf::Message& GetRequestPrototype(
    const ::google::protobuf::MethodDescriptor* method) const;
  const ::google::protobuf::Message& GetResponsePrototype(
    const ::google::protobuf::MethodDescriptor* method) const;

 private:
  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TestService);
};

class TestService_Stub : public TestService {
 public:
  TestService_Stub(::google::protobuf::RpcChannel* channel);
  TestService_Stub(::google::protobuf::RpcChannel* channel,
                   ::google::protobuf::Service::ChannelOwnership ownership);
  ~TestService_Stub();
  
  inline ::google::protobuf::RpcChannel* channel() { return channel_; }
  
  // implements TestService ------------------------------------------
  
  void Foo(::google::protobuf::RpcController* controller,
                       const ::protobuf_unittest::FooRequest* request,
                       ::protobuf_unittest::FooResponse* response,
                       ::google::protobuf::Closure* done);
  void Bar(::google::protobuf::RpcController* controller,
                       const ::protobuf_unittest::BarRequest* request,
                       ::protobuf_unittest::BarResponse* response,
                       ::google::protobuf::Closure* done);
 private:
  ::google::protobuf::RpcChannel* channel_;
  bool owns_channel_;
  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TestService_Stub);
};


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

static const int kOptionalInt32ExtensionFieldNumber = 1;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
  optional_int32_extension;
static const int kOptionalInt64ExtensionFieldNumber = 2;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 3, false >
  optional_int64_extension;
static const int kOptionalUint32ExtensionFieldNumber = 3;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
  optional_uint32_extension;
static const int kOptionalUint64ExtensionFieldNumber = 4;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, false >
  optional_uint64_extension;
static const int kOptionalSint32ExtensionFieldNumber = 5;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 17, false >
  optional_sint32_extension;
static const int kOptionalSint64ExtensionFieldNumber = 6;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 18, false >
  optional_sint64_extension;
static const int kOptionalFixed32ExtensionFieldNumber = 7;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, false >
  optional_fixed32_extension;
static const int kOptionalFixed64ExtensionFieldNumber = 8;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, false >
  optional_fixed64_extension;
static const int kOptionalSfixed32ExtensionFieldNumber = 9;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 15, false >
  optional_sfixed32_extension;
static const int kOptionalSfixed64ExtensionFieldNumber = 10;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 16, false >
  optional_sfixed64_extension;
static const int kOptionalFloatExtensionFieldNumber = 11;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< float >, 2, false >
  optional_float_extension;
static const int kOptionalDoubleExtensionFieldNumber = 12;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< double >, 1, false >
  optional_double_extension;
static const int kOptionalBoolExtensionFieldNumber = 13;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< bool >, 8, false >
  optional_bool_extension;
static const int kOptionalStringExtensionFieldNumber = 14;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  optional_string_extension;
static const int kOptionalBytesExtensionFieldNumber = 15;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 12, false >
  optional_bytes_extension;
static const int kOptionalgroupExtensionFieldNumber = 16;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::OptionalGroup_extension >, 10, false >
  optionalgroup_extension;
static const int kOptionalNestedMessageExtensionFieldNumber = 18;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::TestAllTypes_NestedMessage >, 11, false >
  optional_nested_message_extension;
static const int kOptionalForeignMessageExtensionFieldNumber = 19;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::ForeignMessage >, 11, false >
  optional_foreign_message_extension;
static const int kOptionalImportMessageExtensionFieldNumber = 20;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest_import::ImportMessage >, 11, false >
  optional_import_message_extension;
static const int kOptionalNestedEnumExtensionFieldNumber = 21;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest::TestAllTypes_NestedEnum, ::protobuf_unittest::TestAllTypes_NestedEnum_IsValid>, 14, false >
  optional_nested_enum_extension;
static const int kOptionalForeignEnumExtensionFieldNumber = 22;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::EnumTypeTraits< protobuf_unittest::ForeignEnum, protobuf_unittest::ForeignEnum_IsValid>, 14, false >
  optional_foreign_enum_extension;
static const int kOptionalImportEnumExtensionFieldNumber = 23;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::EnumTypeTraits< protobuf_unittest_import::ImportEnum, protobuf_unittest_import::ImportEnum_IsValid>, 14, false >
  optional_import_enum_extension;
static const int kOptionalStringPieceExtensionFieldNumber = 24;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  optional_string_piece_extension;
static const int kOptionalCordExtensionFieldNumber = 25;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  optional_cord_extension;
static const int kRepeatedInt32ExtensionFieldNumber = 31;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
  repeated_int32_extension;
static const int kRepeatedInt64ExtensionFieldNumber = 32;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 3, false >
  repeated_int64_extension;
static const int kRepeatedUint32ExtensionFieldNumber = 33;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
  repeated_uint32_extension;
static const int kRepeatedUint64ExtensionFieldNumber = 34;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, false >
  repeated_uint64_extension;
static const int kRepeatedSint32ExtensionFieldNumber = 35;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 17, false >
  repeated_sint32_extension;
static const int kRepeatedSint64ExtensionFieldNumber = 36;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 18, false >
  repeated_sint64_extension;
static const int kRepeatedFixed32ExtensionFieldNumber = 37;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, false >
  repeated_fixed32_extension;
static const int kRepeatedFixed64ExtensionFieldNumber = 38;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, false >
  repeated_fixed64_extension;
static const int kRepeatedSfixed32ExtensionFieldNumber = 39;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 15, false >
  repeated_sfixed32_extension;
static const int kRepeatedSfixed64ExtensionFieldNumber = 40;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 16, false >
  repeated_sfixed64_extension;
static const int kRepeatedFloatExtensionFieldNumber = 41;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< float >, 2, false >
  repeated_float_extension;
static const int kRepeatedDoubleExtensionFieldNumber = 42;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< double >, 1, false >
  repeated_double_extension;
static const int kRepeatedBoolExtensionFieldNumber = 43;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< bool >, 8, false >
  repeated_bool_extension;
static const int kRepeatedStringExtensionFieldNumber = 44;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 9, false >
  repeated_string_extension;
static const int kRepeatedBytesExtensionFieldNumber = 45;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 12, false >
  repeated_bytes_extension;
static const int kRepeatedgroupExtensionFieldNumber = 46;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::RepeatedGroup_extension >, 10, false >
  repeatedgroup_extension;
static const int kRepeatedNestedMessageExtensionFieldNumber = 48;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::TestAllTypes_NestedMessage >, 11, false >
  repeated_nested_message_extension;
static const int kRepeatedForeignMessageExtensionFieldNumber = 49;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::ForeignMessage >, 11, false >
  repeated_foreign_message_extension;
static const int kRepeatedImportMessageExtensionFieldNumber = 50;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest_import::ImportMessage >, 11, false >
  repeated_import_message_extension;
static const int kRepeatedNestedEnumExtensionFieldNumber = 51;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< ::protobuf_unittest::TestAllTypes_NestedEnum, ::protobuf_unittest::TestAllTypes_NestedEnum_IsValid>, 14, false >
  repeated_nested_enum_extension;
static const int kRepeatedForeignEnumExtensionFieldNumber = 52;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< protobuf_unittest::ForeignEnum, protobuf_unittest::ForeignEnum_IsValid>, 14, false >
  repeated_foreign_enum_extension;
static const int kRepeatedImportEnumExtensionFieldNumber = 53;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< protobuf_unittest_import::ImportEnum, protobuf_unittest_import::ImportEnum_IsValid>, 14, false >
  repeated_import_enum_extension;
static const int kRepeatedStringPieceExtensionFieldNumber = 54;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 9, false >
  repeated_string_piece_extension;
static const int kRepeatedCordExtensionFieldNumber = 55;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 9, false >
  repeated_cord_extension;
static const int kDefaultInt32ExtensionFieldNumber = 61;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
  default_int32_extension;
static const int kDefaultInt64ExtensionFieldNumber = 62;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 3, false >
  default_int64_extension;
static const int kDefaultUint32ExtensionFieldNumber = 63;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
  default_uint32_extension;
static const int kDefaultUint64ExtensionFieldNumber = 64;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, false >
  default_uint64_extension;
static const int kDefaultSint32ExtensionFieldNumber = 65;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 17, false >
  default_sint32_extension;
static const int kDefaultSint64ExtensionFieldNumber = 66;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 18, false >
  default_sint64_extension;
static const int kDefaultFixed32ExtensionFieldNumber = 67;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, false >
  default_fixed32_extension;
static const int kDefaultFixed64ExtensionFieldNumber = 68;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, false >
  default_fixed64_extension;
static const int kDefaultSfixed32ExtensionFieldNumber = 69;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 15, false >
  default_sfixed32_extension;
static const int kDefaultSfixed64ExtensionFieldNumber = 70;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 16, false >
  default_sfixed64_extension;
static const int kDefaultFloatExtensionFieldNumber = 71;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< float >, 2, false >
  default_float_extension;
static const int kDefaultDoubleExtensionFieldNumber = 72;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< double >, 1, false >
  default_double_extension;
static const int kDefaultBoolExtensionFieldNumber = 73;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::PrimitiveTypeTraits< bool >, 8, false >
  default_bool_extension;
static const int kDefaultStringExtensionFieldNumber = 74;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  default_string_extension;
static const int kDefaultBytesExtensionFieldNumber = 75;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 12, false >
  default_bytes_extension;
static const int kDefaultNestedEnumExtensionFieldNumber = 81;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest::TestAllTypes_NestedEnum, ::protobuf_unittest::TestAllTypes_NestedEnum_IsValid>, 14, false >
  default_nested_enum_extension;
static const int kDefaultForeignEnumExtensionFieldNumber = 82;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::EnumTypeTraits< protobuf_unittest::ForeignEnum, protobuf_unittest::ForeignEnum_IsValid>, 14, false >
  default_foreign_enum_extension;
static const int kDefaultImportEnumExtensionFieldNumber = 83;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::EnumTypeTraits< protobuf_unittest_import::ImportEnum, protobuf_unittest_import::ImportEnum_IsValid>, 14, false >
  default_import_enum_extension;
static const int kDefaultStringPieceExtensionFieldNumber = 84;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  default_string_piece_extension;
static const int kDefaultCordExtensionFieldNumber = 85;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensions,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  default_cord_extension;
static const int kMyExtensionStringFieldNumber = 50;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestFieldOrderings,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  my_extension_string;
static const int kMyExtensionIntFieldNumber = 5;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestFieldOrderings,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
  my_extension_int;
static const int kPackedInt32ExtensionFieldNumber = 90;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 5, true >
  packed_int32_extension;
static const int kPackedInt64ExtensionFieldNumber = 91;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 3, true >
  packed_int64_extension;
static const int kPackedUint32ExtensionFieldNumber = 92;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, true >
  packed_uint32_extension;
static const int kPackedUint64ExtensionFieldNumber = 93;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, true >
  packed_uint64_extension;
static const int kPackedSint32ExtensionFieldNumber = 94;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 17, true >
  packed_sint32_extension;
static const int kPackedSint64ExtensionFieldNumber = 95;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 18, true >
  packed_sint64_extension;
static const int kPackedFixed32ExtensionFieldNumber = 96;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, true >
  packed_fixed32_extension;
static const int kPackedFixed64ExtensionFieldNumber = 97;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, true >
  packed_fixed64_extension;
static const int kPackedSfixed32ExtensionFieldNumber = 98;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 15, true >
  packed_sfixed32_extension;
static const int kPackedSfixed64ExtensionFieldNumber = 99;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 16, true >
  packed_sfixed64_extension;
static const int kPackedFloatExtensionFieldNumber = 100;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< float >, 2, true >
  packed_float_extension;
static const int kPackedDoubleExtensionFieldNumber = 101;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< double >, 1, true >
  packed_double_extension;
static const int kPackedBoolExtensionFieldNumber = 102;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< bool >, 8, true >
  packed_bool_extension;
static const int kPackedEnumExtensionFieldNumber = 103;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensions,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< protobuf_unittest::ForeignEnum, protobuf_unittest::ForeignEnum_IsValid>, 14, true >
  packed_enum_extension;

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

// TestAllTypes_NestedMessage

// optional int32 bb = 1;
inline bool TestAllTypes_NestedMessage::has_bb() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypes_NestedMessage::set_has_bb() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypes_NestedMessage::clear_has_bb() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypes_NestedMessage::clear_bb() {
  bb_ = 0;
  clear_has_bb();
}
inline ::google::protobuf::int32 TestAllTypes_NestedMessage::bb() const {
  return bb_;
}
inline void TestAllTypes_NestedMessage::set_bb(::google::protobuf::int32 value) {
  set_has_bb();
  bb_ = value;
}

// -------------------------------------------------------------------

// TestAllTypes_OptionalGroup

// optional int32 a = 17;
inline bool TestAllTypes_OptionalGroup::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypes_OptionalGroup::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypes_OptionalGroup::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypes_OptionalGroup::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestAllTypes_OptionalGroup::a() const {
  return a_;
}
inline void TestAllTypes_OptionalGroup::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// -------------------------------------------------------------------

// TestAllTypes_RepeatedGroup

// optional int32 a = 47;
inline bool TestAllTypes_RepeatedGroup::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypes_RepeatedGroup::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypes_RepeatedGroup::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypes_RepeatedGroup::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestAllTypes_RepeatedGroup::a() const {
  return a_;
}
inline void TestAllTypes_RepeatedGroup::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// -------------------------------------------------------------------

// TestAllTypes

// optional int32 optional_int32 = 1;
inline bool TestAllTypes::has_optional_int32() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypes::set_has_optional_int32() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypes::clear_has_optional_int32() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypes::clear_optional_int32() {
  optional_int32_ = 0;
  clear_has_optional_int32();
}
inline ::google::protobuf::int32 TestAllTypes::optional_int32() const {
  return optional_int32_;
}
inline void TestAllTypes::set_optional_int32(::google::protobuf::int32 value) {
  set_has_optional_int32();
  optional_int32_ = value;
}

// optional int64 optional_int64 = 2;
inline bool TestAllTypes::has_optional_int64() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestAllTypes::set_has_optional_int64() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestAllTypes::clear_has_optional_int64() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestAllTypes::clear_optional_int64() {
  optional_int64_ = GOOGLE_LONGLONG(0);
  clear_has_optional_int64();
}
inline ::google::protobuf::int64 TestAllTypes::optional_int64() const {
  return optional_int64_;
}
inline void TestAllTypes::set_optional_int64(::google::protobuf::int64 value) {
  set_has_optional_int64();
  optional_int64_ = value;
}

// optional uint32 optional_uint32 = 3;
inline bool TestAllTypes::has_optional_uint32() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestAllTypes::set_has_optional_uint32() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestAllTypes::clear_has_optional_uint32() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestAllTypes::clear_optional_uint32() {
  optional_uint32_ = 0u;
  clear_has_optional_uint32();
}
inline ::google::protobuf::uint32 TestAllTypes::optional_uint32() const {
  return optional_uint32_;
}
inline void TestAllTypes::set_optional_uint32(::google::protobuf::uint32 value) {
  set_has_optional_uint32();
  optional_uint32_ = value;
}

// optional uint64 optional_uint64 = 4;
inline bool TestAllTypes::has_optional_uint64() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TestAllTypes::set_has_optional_uint64() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TestAllTypes::clear_has_optional_uint64() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TestAllTypes::clear_optional_uint64() {
  optional_uint64_ = GOOGLE_ULONGLONG(0);
  clear_has_optional_uint64();
}
inline ::google::protobuf::uint64 TestAllTypes::optional_uint64() const {
  return optional_uint64_;
}
inline void TestAllTypes::set_optional_uint64(::google::protobuf::uint64 value) {
  set_has_optional_uint64();
  optional_uint64_ = value;
}

// optional sint32 optional_sint32 = 5;
inline bool TestAllTypes::has_optional_sint32() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TestAllTypes::set_has_optional_sint32() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TestAllTypes::clear_has_optional_sint32() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TestAllTypes::clear_optional_sint32() {
  optional_sint32_ = 0;
  clear_has_optional_sint32();
}
inline ::google::protobuf::int32 TestAllTypes::optional_sint32() const {
  return optional_sint32_;
}
inline void TestAllTypes::set_optional_sint32(::google::protobuf::int32 value) {
  set_has_optional_sint32();
  optional_sint32_ = value;
}

// optional sint64 optional_sint64 = 6;
inline bool TestAllTypes::has_optional_sint64() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TestAllTypes::set_has_optional_sint64() {
  _has_bits_[0] |= 0x00000020u;
}
inline void TestAllTypes::clear_has_optional_sint64() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void TestAllTypes::clear_optional_sint64() {
  optional_sint64_ = GOOGLE_LONGLONG(0);
  clear_has_optional_sint64();
}
inline ::google::protobuf::int64 TestAllTypes::optional_sint64() const {
  return optional_sint64_;
}
inline void TestAllTypes::set_optional_sint64(::google::protobuf::int64 value) {
  set_has_optional_sint64();
  optional_sint64_ = value;
}

// optional fixed32 optional_fixed32 = 7;
inline bool TestAllTypes::has_optional_fixed32() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void TestAllTypes::set_has_optional_fixed32() {
  _has_bits_[0] |= 0x00000040u;
}
inline void TestAllTypes::clear_has_optional_fixed32() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void TestAllTypes::clear_optional_fixed32() {
  optional_fixed32_ = 0u;
  clear_has_optional_fixed32();
}
inline ::google::protobuf::uint32 TestAllTypes::optional_fixed32() const {
  return optional_fixed32_;
}
inline void TestAllTypes::set_optional_fixed32(::google::protobuf::uint32 value) {
  set_has_optional_fixed32();
  optional_fixed32_ = value;
}

// optional fixed64 optional_fixed64 = 8;
inline bool TestAllTypes::has_optional_fixed64() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void TestAllTypes::set_has_optional_fixed64() {
  _has_bits_[0] |= 0x00000080u;
}
inline void TestAllTypes::clear_has_optional_fixed64() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void TestAllTypes::clear_optional_fixed64() {
  optional_fixed64_ = GOOGLE_ULONGLONG(0);
  clear_has_optional_fixed64();
}
inline ::google::protobuf::uint64 TestAllTypes::optional_fixed64() const {
  return optional_fixed64_;
}
inline void TestAllTypes::set_optional_fixed64(::google::protobuf::uint64 value) {
  set_has_optional_fixed64();
  optional_fixed64_ = value;
}

// optional sfixed32 optional_sfixed32 = 9;
inline bool TestAllTypes::has_optional_sfixed32() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void TestAllTypes::set_has_optional_sfixed32() {
  _has_bits_[0] |= 0x00000100u;
}
inline void TestAllTypes::clear_has_optional_sfixed32() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void TestAllTypes::clear_optional_sfixed32() {
  optional_sfixed32_ = 0;
  clear_has_optional_sfixed32();
}
inline ::google::protobuf::int32 TestAllTypes::optional_sfixed32() const {
  return optional_sfixed32_;
}
inline void TestAllTypes::set_optional_sfixed32(::google::protobuf::int32 value) {
  set_has_optional_sfixed32();
  optional_sfixed32_ = value;
}

// optional sfixed64 optional_sfixed64 = 10;
inline bool TestAllTypes::has_optional_sfixed64() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void TestAllTypes::set_has_optional_sfixed64() {
  _has_bits_[0] |= 0x00000200u;
}
inline void TestAllTypes::clear_has_optional_sfixed64() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void TestAllTypes::clear_optional_sfixed64() {
  optional_sfixed64_ = GOOGLE_LONGLONG(0);
  clear_has_optional_sfixed64();
}
inline ::google::protobuf::int64 TestAllTypes::optional_sfixed64() const {
  return optional_sfixed64_;
}
inline void TestAllTypes::set_optional_sfixed64(::google::protobuf::int64 value) {
  set_has_optional_sfixed64();
  optional_sfixed64_ = value;
}

// optional float optional_float = 11;
inline bool TestAllTypes::has_optional_float() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void TestAllTypes::set_has_optional_float() {
  _has_bits_[0] |= 0x00000400u;
}
inline void TestAllTypes::clear_has_optional_float() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void TestAllTypes::clear_optional_float() {
  optional_float_ = 0;
  clear_has_optional_float();
}
inline float TestAllTypes::optional_float() const {
  return optional_float_;
}
inline void TestAllTypes::set_optional_float(float value) {
  set_has_optional_float();
  optional_float_ = value;
}

// optional double optional_double = 12;
inline bool TestAllTypes::has_optional_double() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void TestAllTypes::set_has_optional_double() {
  _has_bits_[0] |= 0x00000800u;
}
inline void TestAllTypes::clear_has_optional_double() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void TestAllTypes::clear_optional_double() {
  optional_double_ = 0;
  clear_has_optional_double();
}
inline double TestAllTypes::optional_double() const {
  return optional_double_;
}
inline void TestAllTypes::set_optional_double(double value) {
  set_has_optional_double();
  optional_double_ = value;
}

// optional bool optional_bool = 13;
inline bool TestAllTypes::has_optional_bool() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void TestAllTypes::set_has_optional_bool() {
  _has_bits_[0] |= 0x00001000u;
}
inline void TestAllTypes::clear_has_optional_bool() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void TestAllTypes::clear_optional_bool() {
  optional_bool_ = false;
  clear_has_optional_bool();
}
inline bool TestAllTypes::optional_bool() const {
  return optional_bool_;
}
inline void TestAllTypes::set_optional_bool(bool value) {
  set_has_optional_bool();
  optional_bool_ = value;
}

// optional string optional_string = 14;
inline bool TestAllTypes::has_optional_string() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void TestAllTypes::set_has_optional_string() {
  _has_bits_[0] |= 0x00002000u;
}
inline void TestAllTypes::clear_has_optional_string() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void TestAllTypes::clear_optional_string() {
  if (optional_string_ != &::google::protobuf::internal::kEmptyString) {
    optional_string_->clear();
  }
  clear_has_optional_string();
}
inline const ::std::string& TestAllTypes::optional_string() const {
  return *optional_string_;
}
inline void TestAllTypes::set_optional_string(const ::std::string& value) {
  set_has_optional_string();
  if (optional_string_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_ = new ::std::string;
  }
  optional_string_->assign(value);
}
inline void TestAllTypes::set_optional_string(const char* value) {
  set_has_optional_string();
  if (optional_string_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_ = new ::std::string;
  }
  optional_string_->assign(value);
}
inline void TestAllTypes::set_optional_string(const char* value, size_t size) {
  set_has_optional_string();
  if (optional_string_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_ = new ::std::string;
  }
  optional_string_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_optional_string() {
  set_has_optional_string();
  if (optional_string_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_ = new ::std::string;
  }
  return optional_string_;
}
inline ::std::string* TestAllTypes::release_optional_string() {
  clear_has_optional_string();
  if (optional_string_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = optional_string_;
    optional_string_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// optional bytes optional_bytes = 15;
inline bool TestAllTypes::has_optional_bytes() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void TestAllTypes::set_has_optional_bytes() {
  _has_bits_[0] |= 0x00004000u;
}
inline void TestAllTypes::clear_has_optional_bytes() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void TestAllTypes::clear_optional_bytes() {
  if (optional_bytes_ != &::google::protobuf::internal::kEmptyString) {
    optional_bytes_->clear();
  }
  clear_has_optional_bytes();
}
inline const ::std::string& TestAllTypes::optional_bytes() const {
  return *optional_bytes_;
}
inline void TestAllTypes::set_optional_bytes(const ::std::string& value) {
  set_has_optional_bytes();
  if (optional_bytes_ == &::google::protobuf::internal::kEmptyString) {
    optional_bytes_ = new ::std::string;
  }
  optional_bytes_->assign(value);
}
inline void TestAllTypes::set_optional_bytes(const char* value) {
  set_has_optional_bytes();
  if (optional_bytes_ == &::google::protobuf::internal::kEmptyString) {
    optional_bytes_ = new ::std::string;
  }
  optional_bytes_->assign(value);
}
inline void TestAllTypes::set_optional_bytes(const void* value, size_t size) {
  set_has_optional_bytes();
  if (optional_bytes_ == &::google::protobuf::internal::kEmptyString) {
    optional_bytes_ = new ::std::string;
  }
  optional_bytes_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_optional_bytes() {
  set_has_optional_bytes();
  if (optional_bytes_ == &::google::protobuf::internal::kEmptyString) {
    optional_bytes_ = new ::std::string;
  }
  return optional_bytes_;
}
inline ::std::string* TestAllTypes::release_optional_bytes() {
  clear_has_optional_bytes();
  if (optional_bytes_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = optional_bytes_;
    optional_bytes_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// optional group OptionalGroup = 16 {
inline bool TestAllTypes::has_optionalgroup() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void TestAllTypes::set_has_optionalgroup() {
  _has_bits_[0] |= 0x00008000u;
}
inline void TestAllTypes::clear_has_optionalgroup() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void TestAllTypes::clear_optionalgroup() {
  if (optionalgroup_ != NULL) optionalgroup_->::protobuf_unittest::TestAllTypes_OptionalGroup::Clear();
  clear_has_optionalgroup();
}
inline const ::protobuf_unittest::TestAllTypes_OptionalGroup& TestAllTypes::optionalgroup() const {
  return optionalgroup_ != NULL ? *optionalgroup_ : *default_instance_->optionalgroup_;
}
inline ::protobuf_unittest::TestAllTypes_OptionalGroup* TestAllTypes::mutable_optionalgroup() {
  set_has_optionalgroup();
  if (optionalgroup_ == NULL) optionalgroup_ = new ::protobuf_unittest::TestAllTypes_OptionalGroup;
  return optionalgroup_;
}
inline ::protobuf_unittest::TestAllTypes_OptionalGroup* TestAllTypes::release_optionalgroup() {
  clear_has_optionalgroup();
  ::protobuf_unittest::TestAllTypes_OptionalGroup* temp = optionalgroup_;
  optionalgroup_ = NULL;
  return temp;
}

// optional .protobuf_unittest.TestAllTypes.NestedMessage optional_nested_message = 18;
inline bool TestAllTypes::has_optional_nested_message() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void TestAllTypes::set_has_optional_nested_message() {
  _has_bits_[0] |= 0x00010000u;
}
inline void TestAllTypes::clear_has_optional_nested_message() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void TestAllTypes::clear_optional_nested_message() {
  if (optional_nested_message_ != NULL) optional_nested_message_->::protobuf_unittest::TestAllTypes_NestedMessage::Clear();
  clear_has_optional_nested_message();
}
inline const ::protobuf_unittest::TestAllTypes_NestedMessage& TestAllTypes::optional_nested_message() const {
  return optional_nested_message_ != NULL ? *optional_nested_message_ : *default_instance_->optional_nested_message_;
}
inline ::protobuf_unittest::TestAllTypes_NestedMessage* TestAllTypes::mutable_optional_nested_message() {
  set_has_optional_nested_message();
  if (optional_nested_message_ == NULL) optional_nested_message_ = new ::protobuf_unittest::TestAllTypes_NestedMessage;
  return optional_nested_message_;
}
inline ::protobuf_unittest::TestAllTypes_NestedMessage* TestAllTypes::release_optional_nested_message() {
  clear_has_optional_nested_message();
  ::protobuf_unittest::TestAllTypes_NestedMessage* temp = optional_nested_message_;
  optional_nested_message_ = NULL;
  return temp;
}

// optional .protobuf_unittest.ForeignMessage optional_foreign_message = 19;
inline bool TestAllTypes::has_optional_foreign_message() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void TestAllTypes::set_has_optional_foreign_message() {
  _has_bits_[0] |= 0x00020000u;
}
inline void TestAllTypes::clear_has_optional_foreign_message() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void TestAllTypes::clear_optional_foreign_message() {
  if (optional_foreign_message_ != NULL) optional_foreign_message_->::protobuf_unittest::ForeignMessage::Clear();
  clear_has_optional_foreign_message();
}
inline const ::protobuf_unittest::ForeignMessage& TestAllTypes::optional_foreign_message() const {
  return optional_foreign_message_ != NULL ? *optional_foreign_message_ : *default_instance_->optional_foreign_message_;
}
inline ::protobuf_unittest::ForeignMessage* TestAllTypes::mutable_optional_foreign_message() {
  set_has_optional_foreign_message();
  if (optional_foreign_message_ == NULL) optional_foreign_message_ = new ::protobuf_unittest::ForeignMessage;
  return optional_foreign_message_;
}
inline ::protobuf_unittest::ForeignMessage* TestAllTypes::release_optional_foreign_message() {
  clear_has_optional_foreign_message();
  ::protobuf_unittest::ForeignMessage* temp = optional_foreign_message_;
  optional_foreign_message_ = NULL;
  return temp;
}

// optional .protobuf_unittest_import.ImportMessage optional_import_message = 20;
inline bool TestAllTypes::has_optional_import_message() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void TestAllTypes::set_has_optional_import_message() {
  _has_bits_[0] |= 0x00040000u;
}
inline void TestAllTypes::clear_has_optional_import_message() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void TestAllTypes::clear_optional_import_message() {
  if (optional_import_message_ != NULL) optional_import_message_->::protobuf_unittest_import::ImportMessage::Clear();
  clear_has_optional_import_message();
}
inline const ::protobuf_unittest_import::ImportMessage& TestAllTypes::optional_import_message() const {
  return optional_import_message_ != NULL ? *optional_import_message_ : *default_instance_->optional_import_message_;
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::mutable_optional_import_message() {
  set_has_optional_import_message();
  if (optional_import_message_ == NULL) optional_import_message_ = new ::protobuf_unittest_import::ImportMessage;
  return optional_import_message_;
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::release_optional_import_message() {
  clear_has_optional_import_message();
  ::protobuf_unittest_import::ImportMessage* temp = optional_import_message_;
  optional_import_message_ = NULL;
  return temp;
}

// optional .protobuf_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21;
inline bool TestAllTypes::has_optional_nested_enum() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void TestAllTypes::set_has_optional_nested_enum() {
  _has_bits_[0] |= 0x00080000u;
}
inline void TestAllTypes::clear_has_optional_nested_enum() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void TestAllTypes::clear_optional_nested_enum() {
  optional_nested_enum_ = 1;
  clear_has_optional_nested_enum();
}
inline ::protobuf_unittest::TestAllTypes_NestedEnum TestAllTypes::optional_nested_enum() const {
  return static_cast< ::protobuf_unittest::TestAllTypes_NestedEnum >(optional_nested_enum_);
}
inline void TestAllTypes::set_optional_nested_enum(::protobuf_unittest::TestAllTypes_NestedEnum value) {
  GOOGLE_DCHECK(::protobuf_unittest::TestAllTypes_NestedEnum_IsValid(value));
  set_has_optional_nested_enum();
  optional_nested_enum_ = value;
}

// optional .protobuf_unittest.ForeignEnum optional_foreign_enum = 22;
inline bool TestAllTypes::has_optional_foreign_enum() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void TestAllTypes::set_has_optional_foreign_enum() {
  _has_bits_[0] |= 0x00100000u;
}
inline void TestAllTypes::clear_has_optional_foreign_enum() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void TestAllTypes::clear_optional_foreign_enum() {
  optional_foreign_enum_ = 4;
  clear_has_optional_foreign_enum();
}
inline protobuf_unittest::ForeignEnum TestAllTypes::optional_foreign_enum() const {
  return static_cast< protobuf_unittest::ForeignEnum >(optional_foreign_enum_);
}
inline void TestAllTypes::set_optional_foreign_enum(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  set_has_optional_foreign_enum();
  optional_foreign_enum_ = value;
}

// optional .protobuf_unittest_import.ImportEnum optional_import_enum = 23;
inline bool TestAllTypes::has_optional_import_enum() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void TestAllTypes::set_has_optional_import_enum() {
  _has_bits_[0] |= 0x00200000u;
}
inline void TestAllTypes::clear_has_optional_import_enum() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void TestAllTypes::clear_optional_import_enum() {
  optional_import_enum_ = 7;
  clear_has_optional_import_enum();
}
inline protobuf_unittest_import::ImportEnum TestAllTypes::optional_import_enum() const {
  return static_cast< protobuf_unittest_import::ImportEnum >(optional_import_enum_);
}
inline void TestAllTypes::set_optional_import_enum(protobuf_unittest_import::ImportEnum value) {
  GOOGLE_DCHECK(protobuf_unittest_import::ImportEnum_IsValid(value));
  set_has_optional_import_enum();
  optional_import_enum_ = value;
}

// optional string optional_string_piece = 24 [ctype = STRING_PIECE];
inline bool TestAllTypes::has_optional_string_piece() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void TestAllTypes::set_has_optional_string_piece() {
  _has_bits_[0] |= 0x00400000u;
}
inline void TestAllTypes::clear_has_optional_string_piece() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void TestAllTypes::clear_optional_string_piece() {
  if (optional_string_piece_ != &::google::protobuf::internal::kEmptyString) {
    optional_string_piece_->clear();
  }
  clear_has_optional_string_piece();
}
inline const ::std::string& TestAllTypes::optional_string_piece() const {
  return *optional_string_piece_;
}
inline void TestAllTypes::set_optional_string_piece(const ::std::string& value) {
  set_has_optional_string_piece();
  if (optional_string_piece_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_piece_ = new ::std::string;
  }
  optional_string_piece_->assign(value);
}
inline void TestAllTypes::set_optional_string_piece(const char* value) {
  set_has_optional_string_piece();
  if (optional_string_piece_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_piece_ = new ::std::string;
  }
  optional_string_piece_->assign(value);
}
inline void TestAllTypes::set_optional_string_piece(const char* value, size_t size) {
  set_has_optional_string_piece();
  if (optional_string_piece_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_piece_ = new ::std::string;
  }
  optional_string_piece_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_optional_string_piece() {
  set_has_optional_string_piece();
  if (optional_string_piece_ == &::google::protobuf::internal::kEmptyString) {
    optional_string_piece_ = new ::std::string;
  }
  return optional_string_piece_;
}
inline ::std::string* TestAllTypes::release_optional_string_piece() {
  clear_has_optional_string_piece();
  if (optional_string_piece_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = optional_string_piece_;
    optional_string_piece_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// optional string optional_cord = 25 [ctype = CORD];
inline bool TestAllTypes::has_optional_cord() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void TestAllTypes::set_has_optional_cord() {
  _has_bits_[0] |= 0x00800000u;
}
inline void TestAllTypes::clear_has_optional_cord() {
  _has_bits_[0] &= ~0x00800000u;
}
inline void TestAllTypes::clear_optional_cord() {
  if (optional_cord_ != &::google::protobuf::internal::kEmptyString) {
    optional_cord_->clear();
  }
  clear_has_optional_cord();
}
inline const ::std::string& TestAllTypes::optional_cord() const {
  return *optional_cord_;
}
inline void TestAllTypes::set_optional_cord(const ::std::string& value) {
  set_has_optional_cord();
  if (optional_cord_ == &::google::protobuf::internal::kEmptyString) {
    optional_cord_ = new ::std::string;
  }
  optional_cord_->assign(value);
}
inline void TestAllTypes::set_optional_cord(const char* value) {
  set_has_optional_cord();
  if (optional_cord_ == &::google::protobuf::internal::kEmptyString) {
    optional_cord_ = new ::std::string;
  }
  optional_cord_->assign(value);
}
inline void TestAllTypes::set_optional_cord(const char* value, size_t size) {
  set_has_optional_cord();
  if (optional_cord_ == &::google::protobuf::internal::kEmptyString) {
    optional_cord_ = new ::std::string;
  }
  optional_cord_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_optional_cord() {
  set_has_optional_cord();
  if (optional_cord_ == &::google::protobuf::internal::kEmptyString) {
    optional_cord_ = new ::std::string;
  }
  return optional_cord_;
}
inline ::std::string* TestAllTypes::release_optional_cord() {
  clear_has_optional_cord();
  if (optional_cord_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = optional_cord_;
    optional_cord_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// repeated int32 repeated_int32 = 31;
inline int TestAllTypes::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void TestAllTypes::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypes::repeated_int32(int index) const {
  return repeated_int32_.Get(index);
}
inline void TestAllTypes::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
}
inline void TestAllTypes::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypes::repeated_int32() const {
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypes::mutable_repeated_int32() {
  return &repeated_int32_;
}

// repeated int64 repeated_int64 = 32;
inline int TestAllTypes::repeated_int64_size() const {
  return repeated_int64_.size();
}
inline void TestAllTypes::clear_repeated_int64() {
  repeated_int64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypes::repeated_int64(int index) const {
  return repeated_int64_.Get(index);
}
inline void TestAllTypes::set_repeated_int64(int index, ::google::protobuf::int64 value) {
  repeated_int64_.Set(index, value);
}
inline void TestAllTypes::add_repeated_int64(::google::protobuf::int64 value) {
  repeated_int64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypes::repeated_int64() const {
  return repeated_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypes::mutable_repeated_int64() {
  return &repeated_int64_;
}

// repeated uint32 repeated_uint32 = 33;
inline int TestAllTypes::repeated_uint32_size() const {
  return repeated_uint32_.size();
}
inline void TestAllTypes::clear_repeated_uint32() {
  repeated_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestAllTypes::repeated_uint32(int index) const {
  return repeated_uint32_.Get(index);
}
inline void TestAllTypes::set_repeated_uint32(int index, ::google::protobuf::uint32 value) {
  repeated_uint32_.Set(index, value);
}
inline void TestAllTypes::add_repeated_uint32(::google::protobuf::uint32 value) {
  repeated_uint32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestAllTypes::repeated_uint32() const {
  return repeated_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestAllTypes::mutable_repeated_uint32() {
  return &repeated_uint32_;
}

// repeated uint64 repeated_uint64 = 34;
inline int TestAllTypes::repeated_uint64_size() const {
  return repeated_uint64_.size();
}
inline void TestAllTypes::clear_repeated_uint64() {
  repeated_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestAllTypes::repeated_uint64(int index) const {
  return repeated_uint64_.Get(index);
}
inline void TestAllTypes::set_repeated_uint64(int index, ::google::protobuf::uint64 value) {
  repeated_uint64_.Set(index, value);
}
inline void TestAllTypes::add_repeated_uint64(::google::protobuf::uint64 value) {
  repeated_uint64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestAllTypes::repeated_uint64() const {
  return repeated_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestAllTypes::mutable_repeated_uint64() {
  return &repeated_uint64_;
}

// repeated sint32 repeated_sint32 = 35;
inline int TestAllTypes::repeated_sint32_size() const {
  return repeated_sint32_.size();
}
inline void TestAllTypes::clear_repeated_sint32() {
  repeated_sint32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypes::repeated_sint32(int index) const {
  return repeated_sint32_.Get(index);
}
inline void TestAllTypes::set_repeated_sint32(int index, ::google::protobuf::int32 value) {
  repeated_sint32_.Set(index, value);
}
inline void TestAllTypes::add_repeated_sint32(::google::protobuf::int32 value) {
  repeated_sint32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypes::repeated_sint32() const {
  return repeated_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypes::mutable_repeated_sint32() {
  return &repeated_sint32_;
}

// repeated sint64 repeated_sint64 = 36;
inline int TestAllTypes::repeated_sint64_size() const {
  return repeated_sint64_.size();
}
inline void TestAllTypes::clear_repeated_sint64() {
  repeated_sint64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypes::repeated_sint64(int index) const {
  return repeated_sint64_.Get(index);
}
inline void TestAllTypes::set_repeated_sint64(int index, ::google::protobuf::int64 value) {
  repeated_sint64_.Set(index, value);
}
inline void TestAllTypes::add_repeated_sint64(::google::protobuf::int64 value) {
  repeated_sint64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypes::repeated_sint64() const {
  return repeated_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypes::mutable_repeated_sint64() {
  return &repeated_sint64_;
}

// repeated fixed32 repeated_fixed32 = 37;
inline int TestAllTypes::repeated_fixed32_size() const {
  return repeated_fixed32_.size();
}
inline void TestAllTypes::clear_repeated_fixed32() {
  repeated_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestAllTypes::repeated_fixed32(int index) const {
  return repeated_fixed32_.Get(index);
}
inline void TestAllTypes::set_repeated_fixed32(int index, ::google::protobuf::uint32 value) {
  repeated_fixed32_.Set(index, value);
}
inline void TestAllTypes::add_repeated_fixed32(::google::protobuf::uint32 value) {
  repeated_fixed32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestAllTypes::repeated_fixed32() const {
  return repeated_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestAllTypes::mutable_repeated_fixed32() {
  return &repeated_fixed32_;
}

// repeated fixed64 repeated_fixed64 = 38;
inline int TestAllTypes::repeated_fixed64_size() const {
  return repeated_fixed64_.size();
}
inline void TestAllTypes::clear_repeated_fixed64() {
  repeated_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestAllTypes::repeated_fixed64(int index) const {
  return repeated_fixed64_.Get(index);
}
inline void TestAllTypes::set_repeated_fixed64(int index, ::google::protobuf::uint64 value) {
  repeated_fixed64_.Set(index, value);
}
inline void TestAllTypes::add_repeated_fixed64(::google::protobuf::uint64 value) {
  repeated_fixed64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestAllTypes::repeated_fixed64() const {
  return repeated_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestAllTypes::mutable_repeated_fixed64() {
  return &repeated_fixed64_;
}

// repeated sfixed32 repeated_sfixed32 = 39;
inline int TestAllTypes::repeated_sfixed32_size() const {
  return repeated_sfixed32_.size();
}
inline void TestAllTypes::clear_repeated_sfixed32() {
  repeated_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypes::repeated_sfixed32(int index) const {
  return repeated_sfixed32_.Get(index);
}
inline void TestAllTypes::set_repeated_sfixed32(int index, ::google::protobuf::int32 value) {
  repeated_sfixed32_.Set(index, value);
}
inline void TestAllTypes::add_repeated_sfixed32(::google::protobuf::int32 value) {
  repeated_sfixed32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypes::repeated_sfixed32() const {
  return repeated_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypes::mutable_repeated_sfixed32() {
  return &repeated_sfixed32_;
}

// repeated sfixed64 repeated_sfixed64 = 40;
inline int TestAllTypes::repeated_sfixed64_size() const {
  return repeated_sfixed64_.size();
}
inline void TestAllTypes::clear_repeated_sfixed64() {
  repeated_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypes::repeated_sfixed64(int index) const {
  return repeated_sfixed64_.Get(index);
}
inline void TestAllTypes::set_repeated_sfixed64(int index, ::google::protobuf::int64 value) {
  repeated_sfixed64_.Set(index, value);
}
inline void TestAllTypes::add_repeated_sfixed64(::google::protobuf::int64 value) {
  repeated_sfixed64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypes::repeated_sfixed64() const {
  return repeated_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypes::mutable_repeated_sfixed64() {
  return &repeated_sfixed64_;
}

// repeated float repeated_float = 41;
inline int TestAllTypes::repeated_float_size() const {
  return repeated_float_.size();
}
inline void TestAllTypes::clear_repeated_float() {
  repeated_float_.Clear();
}
inline float TestAllTypes::repeated_float(int index) const {
  return repeated_float_.Get(index);
}
inline void TestAllTypes::set_repeated_float(int index, float value) {
  repeated_float_.Set(index, value);
}
inline void TestAllTypes::add_repeated_float(float value) {
  repeated_float_.Add(value);
}
inline const ::google::protobuf::RepeatedField< float >&
TestAllTypes::repeated_float() const {
  return repeated_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestAllTypes::mutable_repeated_float() {
  return &repeated_float_;
}

// repeated double repeated_double = 42;
inline int TestAllTypes::repeated_double_size() const {
  return repeated_double_.size();
}
inline void TestAllTypes::clear_repeated_double() {
  repeated_double_.Clear();
}
inline double TestAllTypes::repeated_double(int index) const {
  return repeated_double_.Get(index);
}
inline void TestAllTypes::set_repeated_double(int index, double value) {
  repeated_double_.Set(index, value);
}
inline void TestAllTypes::add_repeated_double(double value) {
  repeated_double_.Add(value);
}
inline const ::google::protobuf::RepeatedField< double >&
TestAllTypes::repeated_double() const {
  return repeated_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestAllTypes::mutable_repeated_double() {
  return &repeated_double_;
}

// repeated bool repeated_bool = 43;
inline int TestAllTypes::repeated_bool_size() const {
  return repeated_bool_.size();
}
inline void TestAllTypes::clear_repeated_bool() {
  repeated_bool_.Clear();
}
inline bool TestAllTypes::repeated_bool(int index) const {
  return repeated_bool_.Get(index);
}
inline void TestAllTypes::set_repeated_bool(int index, bool value) {
  repeated_bool_.Set(index, value);
}
inline void TestAllTypes::add_repeated_bool(bool value) {
  repeated_bool_.Add(value);
}
inline const ::google::protobuf::RepeatedField< bool >&
TestAllTypes::repeated_bool() const {
  return repeated_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestAllTypes::mutable_repeated_bool() {
  return &repeated_bool_;
}

// repeated string repeated_string = 44;
inline int TestAllTypes::repeated_string_size() const {
  return repeated_string_.size();
}
inline void TestAllTypes::clear_repeated_string() {
  repeated_string_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_string(int index) const {
  return repeated_string_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_string(int index) {
  return repeated_string_.Mutable(index);
}
inline void TestAllTypes::set_repeated_string(int index, const ::std::string& value) {
  repeated_string_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_string(int index, const char* value) {
  repeated_string_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_string(int index, const char* value, size_t size) {
  repeated_string_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::add_repeated_string() {
  return repeated_string_.Add();
}
inline void TestAllTypes::add_repeated_string(const ::std::string& value) {
  repeated_string_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_string(const char* value) {
  repeated_string_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_string(const char* value, size_t size) {
  repeated_string_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_string() const {
  return repeated_string_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_string() {
  return &repeated_string_;
}

// repeated bytes repeated_bytes = 45;
inline int TestAllTypes::repeated_bytes_size() const {
  return repeated_bytes_.size();
}
inline void TestAllTypes::clear_repeated_bytes() {
  repeated_bytes_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_bytes(int index) const {
  return repeated_bytes_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_bytes(int index) {
  return repeated_bytes_.Mutable(index);
}
inline void TestAllTypes::set_repeated_bytes(int index, const ::std::string& value) {
  repeated_bytes_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_bytes(int index, const char* value) {
  repeated_bytes_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_bytes(int index, const void* value, size_t size) {
  repeated_bytes_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::add_repeated_bytes() {
  return repeated_bytes_.Add();
}
inline void TestAllTypes::add_repeated_bytes(const ::std::string& value) {
  repeated_bytes_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_bytes(const char* value) {
  repeated_bytes_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_bytes(const void* value, size_t size) {
  repeated_bytes_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_bytes() const {
  return repeated_bytes_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_bytes() {
  return &repeated_bytes_;
}

// repeated group RepeatedGroup = 46 {
inline int TestAllTypes::repeatedgroup_size() const {
  return repeatedgroup_.size();
}
inline void TestAllTypes::clear_repeatedgroup() {
  repeatedgroup_.Clear();
}
inline const ::protobuf_unittest::TestAllTypes_RepeatedGroup& TestAllTypes::repeatedgroup(int index) const {
  return repeatedgroup_.Get(index);
}
inline ::protobuf_unittest::TestAllTypes_RepeatedGroup* TestAllTypes::mutable_repeatedgroup(int index) {
  return repeatedgroup_.Mutable(index);
}
inline ::protobuf_unittest::TestAllTypes_RepeatedGroup* TestAllTypes::add_repeatedgroup() {
  return repeatedgroup_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_RepeatedGroup >&
TestAllTypes::repeatedgroup() const {
  return repeatedgroup_;
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_RepeatedGroup >*
TestAllTypes::mutable_repeatedgroup() {
  return &repeatedgroup_;
}

// repeated .protobuf_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48;
inline int TestAllTypes::repeated_nested_message_size() const {
  return repeated_nested_message_.size();
}
inline void TestAllTypes::clear_repeated_nested_message() {
  repeated_nested_message_.Clear();
}
inline const ::protobuf_unittest::TestAllTypes_NestedMessage& TestAllTypes::repeated_nested_message(int index) const {
  return repeated_nested_message_.Get(index);
}
inline ::protobuf_unittest::TestAllTypes_NestedMessage* TestAllTypes::mutable_repeated_nested_message(int index) {
  return repeated_nested_message_.Mutable(index);
}
inline ::protobuf_unittest::TestAllTypes_NestedMessage* TestAllTypes::add_repeated_nested_message() {
  return repeated_nested_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_NestedMessage >&
TestAllTypes::repeated_nested_message() const {
  return repeated_nested_message_;
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypes_NestedMessage >*
TestAllTypes::mutable_repeated_nested_message() {
  return &repeated_nested_message_;
}

// repeated .protobuf_unittest.ForeignMessage repeated_foreign_message = 49;
inline int TestAllTypes::repeated_foreign_message_size() const {
  return repeated_foreign_message_.size();
}
inline void TestAllTypes::clear_repeated_foreign_message() {
  repeated_foreign_message_.Clear();
}
inline const ::protobuf_unittest::ForeignMessage& TestAllTypes::repeated_foreign_message(int index) const {
  return repeated_foreign_message_.Get(index);
}
inline ::protobuf_unittest::ForeignMessage* TestAllTypes::mutable_repeated_foreign_message(int index) {
  return repeated_foreign_message_.Mutable(index);
}
inline ::protobuf_unittest::ForeignMessage* TestAllTypes::add_repeated_foreign_message() {
  return repeated_foreign_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >&
TestAllTypes::repeated_foreign_message() const {
  return repeated_foreign_message_;
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >*
TestAllTypes::mutable_repeated_foreign_message() {
  return &repeated_foreign_message_;
}

// repeated .protobuf_unittest_import.ImportMessage repeated_import_message = 50;
inline int TestAllTypes::repeated_import_message_size() const {
  return repeated_import_message_.size();
}
inline void TestAllTypes::clear_repeated_import_message() {
  repeated_import_message_.Clear();
}
inline const ::protobuf_unittest_import::ImportMessage& TestAllTypes::repeated_import_message(int index) const {
  return repeated_import_message_.Get(index);
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::mutable_repeated_import_message(int index) {
  return repeated_import_message_.Mutable(index);
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::add_repeated_import_message() {
  return repeated_import_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >&
TestAllTypes::repeated_import_message() const {
  return repeated_import_message_;
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >*
TestAllTypes::mutable_repeated_import_message() {
  return &repeated_import_message_;
}

// repeated .protobuf_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51;
inline int TestAllTypes::repeated_nested_enum_size() const {
  return repeated_nested_enum_.size();
}
inline void TestAllTypes::clear_repeated_nested_enum() {
  repeated_nested_enum_.Clear();
}
inline ::protobuf_unittest::TestAllTypes_NestedEnum TestAllTypes::repeated_nested_enum(int index) const {
  return static_cast< ::protobuf_unittest::TestAllTypes_NestedEnum >(repeated_nested_enum_.Get(index));
}
inline void TestAllTypes::set_repeated_nested_enum(int index, ::protobuf_unittest::TestAllTypes_NestedEnum value) {
  GOOGLE_DCHECK(::protobuf_unittest::TestAllTypes_NestedEnum_IsValid(value));
  repeated_nested_enum_.Set(index, value);
}
inline void TestAllTypes::add_repeated_nested_enum(::protobuf_unittest::TestAllTypes_NestedEnum value) {
  GOOGLE_DCHECK(::protobuf_unittest::TestAllTypes_NestedEnum_IsValid(value));
  repeated_nested_enum_.Add(value);
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypes::repeated_nested_enum() const {
  return repeated_nested_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypes::mutable_repeated_nested_enum() {
  return &repeated_nested_enum_;
}

// repeated .protobuf_unittest.ForeignEnum repeated_foreign_enum = 52;
inline int TestAllTypes::repeated_foreign_enum_size() const {
  return repeated_foreign_enum_.size();
}
inline void TestAllTypes::clear_repeated_foreign_enum() {
  repeated_foreign_enum_.Clear();
}
inline protobuf_unittest::ForeignEnum TestAllTypes::repeated_foreign_enum(int index) const {
  return static_cast< protobuf_unittest::ForeignEnum >(repeated_foreign_enum_.Get(index));
}
inline void TestAllTypes::set_repeated_foreign_enum(int index, protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  repeated_foreign_enum_.Set(index, value);
}
inline void TestAllTypes::add_repeated_foreign_enum(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  repeated_foreign_enum_.Add(value);
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypes::repeated_foreign_enum() const {
  return repeated_foreign_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypes::mutable_repeated_foreign_enum() {
  return &repeated_foreign_enum_;
}

// repeated .protobuf_unittest_import.ImportEnum repeated_import_enum = 53;
inline int TestAllTypes::repeated_import_enum_size() const {
  return repeated_import_enum_.size();
}
inline void TestAllTypes::clear_repeated_import_enum() {
  repeated_import_enum_.Clear();
}
inline protobuf_unittest_import::ImportEnum TestAllTypes::repeated_import_enum(int index) const {
  return static_cast< protobuf_unittest_import::ImportEnum >(repeated_import_enum_.Get(index));
}
inline void TestAllTypes::set_repeated_import_enum(int index, protobuf_unittest_import::ImportEnum value) {
  GOOGLE_DCHECK(protobuf_unittest_import::ImportEnum_IsValid(value));
  repeated_import_enum_.Set(index, value);
}
inline void TestAllTypes::add_repeated_import_enum(protobuf_unittest_import::ImportEnum value) {
  GOOGLE_DCHECK(protobuf_unittest_import::ImportEnum_IsValid(value));
  repeated_import_enum_.Add(value);
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypes::repeated_import_enum() const {
  return repeated_import_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypes::mutable_repeated_import_enum() {
  return &repeated_import_enum_;
}

// repeated string repeated_string_piece = 54 [ctype = STRING_PIECE];
inline int TestAllTypes::repeated_string_piece_size() const {
  return repeated_string_piece_.size();
}
inline void TestAllTypes::clear_repeated_string_piece() {
  repeated_string_piece_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_string_piece(int index) const {
  return repeated_string_piece_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_string_piece(int index) {
  return repeated_string_piece_.Mutable(index);
}
inline void TestAllTypes::set_repeated_string_piece(int index, const ::std::string& value) {
  repeated_string_piece_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_string_piece(int index, const char* value) {
  repeated_string_piece_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_string_piece(int index, const char* value, size_t size) {
  repeated_string_piece_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::add_repeated_string_piece() {
  return repeated_string_piece_.Add();
}
inline void TestAllTypes::add_repeated_string_piece(const ::std::string& value) {
  repeated_string_piece_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_string_piece(const char* value) {
  repeated_string_piece_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_string_piece(const char* value, size_t size) {
  repeated_string_piece_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_string_piece() const {
  return repeated_string_piece_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_string_piece() {
  return &repeated_string_piece_;
}

// repeated string repeated_cord = 55 [ctype = CORD];
inline int TestAllTypes::repeated_cord_size() const {
  return repeated_cord_.size();
}
inline void TestAllTypes::clear_repeated_cord() {
  repeated_cord_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_cord(int index) const {
  return repeated_cord_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_cord(int index) {
  return repeated_cord_.Mutable(index);
}
inline void TestAllTypes::set_repeated_cord(int index, const ::std::string& value) {
  repeated_cord_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_cord(int index, const char* value) {
  repeated_cord_.Mutable(index)->assign(value);
}
inline void TestAllTypes::set_repeated_cord(int index, const char* value, size_t size) {
  repeated_cord_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::add_repeated_cord() {
  return repeated_cord_.Add();
}
inline void TestAllTypes::add_repeated_cord(const ::std::string& value) {
  repeated_cord_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_cord(const char* value) {
  repeated_cord_.Add()->assign(value);
}
inline void TestAllTypes::add_repeated_cord(const char* value, size_t size) {
  repeated_cord_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_cord() const {
  return repeated_cord_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_cord() {
  return &repeated_cord_;
}

// optional int32 default_int32 = 61 [default = 41];
inline bool TestAllTypes::has_default_int32() const {
  return (_has_bits_[1] & 0x00010000u) != 0;
}
inline void TestAllTypes::set_has_default_int32() {
  _has_bits_[1] |= 0x00010000u;
}
inline void TestAllTypes::clear_has_default_int32() {
  _has_bits_[1] &= ~0x00010000u;
}
inline void TestAllTypes::clear_default_int32() {
  default_int32_ = 41;
  clear_has_default_int32();
}
inline ::google::protobuf::int32 TestAllTypes::default_int32() const {
  return default_int32_;
}
inline void TestAllTypes::set_default_int32(::google::protobuf::int32 value) {
  set_has_default_int32();
  default_int32_ = value;
}

// optional int64 default_int64 = 62 [default = 42];
inline bool TestAllTypes::has_default_int64() const {
  return (_has_bits_[1] & 0x00020000u) != 0;
}
inline void TestAllTypes::set_has_default_int64() {
  _has_bits_[1] |= 0x00020000u;
}
inline void TestAllTypes::clear_has_default_int64() {
  _has_bits_[1] &= ~0x00020000u;
}
inline void TestAllTypes::clear_default_int64() {
  default_int64_ = GOOGLE_LONGLONG(42);
  clear_has_default_int64();
}
inline ::google::protobuf::int64 TestAllTypes::default_int64() const {
  return default_int64_;
}
inline void TestAllTypes::set_default_int64(::google::protobuf::int64 value) {
  set_has_default_int64();
  default_int64_ = value;
}

// optional uint32 default_uint32 = 63 [default = 43];
inline bool TestAllTypes::has_default_uint32() const {
  return (_has_bits_[1] & 0x00040000u) != 0;
}
inline void TestAllTypes::set_has_default_uint32() {
  _has_bits_[1] |= 0x00040000u;
}
inline void TestAllTypes::clear_has_default_uint32() {
  _has_bits_[1] &= ~0x00040000u;
}
inline void TestAllTypes::clear_default_uint32() {
  default_uint32_ = 43u;
  clear_has_default_uint32();
}
inline ::google::protobuf::uint32 TestAllTypes::default_uint32() const {
  return default_uint32_;
}
inline void TestAllTypes::set_default_uint32(::google::protobuf::uint32 value) {
  set_has_default_uint32();
  default_uint32_ = value;
}

// optional uint64 default_uint64 = 64 [default = 44];
inline bool TestAllTypes::has_default_uint64() const {
  return (_has_bits_[1] & 0x00080000u) != 0;
}
inline void TestAllTypes::set_has_default_uint64() {
  _has_bits_[1] |= 0x00080000u;
}
inline void TestAllTypes::clear_has_default_uint64() {
  _has_bits_[1] &= ~0x00080000u;
}
inline void TestAllTypes::clear_default_uint64() {
  default_uint64_ = GOOGLE_ULONGLONG(44);
  clear_has_default_uint64();
}
inline ::google::protobuf::uint64 TestAllTypes::default_uint64() const {
  return default_uint64_;
}
inline void TestAllTypes::set_default_uint64(::google::protobuf::uint64 value) {
  set_has_default_uint64();
  default_uint64_ = value;
}

// optional sint32 default_sint32 = 65 [default = -45];
inline bool TestAllTypes::has_default_sint32() const {
  return (_has_bits_[1] & 0x00100000u) != 0;
}
inline void TestAllTypes::set_has_default_sint32() {
  _has_bits_[1] |= 0x00100000u;
}
inline void TestAllTypes::clear_has_default_sint32() {
  _has_bits_[1] &= ~0x00100000u;
}
inline void TestAllTypes::clear_default_sint32() {
  default_sint32_ = -45;
  clear_has_default_sint32();
}
inline ::google::protobuf::int32 TestAllTypes::default_sint32() const {
  return default_sint32_;
}
inline void TestAllTypes::set_default_sint32(::google::protobuf::int32 value) {
  set_has_default_sint32();
  default_sint32_ = value;
}

// optional sint64 default_sint64 = 66 [default = 46];
inline bool TestAllTypes::has_default_sint64() const {
  return (_has_bits_[1] & 0x00200000u) != 0;
}
inline void TestAllTypes::set_has_default_sint64() {
  _has_bits_[1] |= 0x00200000u;
}
inline void TestAllTypes::clear_has_default_sint64() {
  _has_bits_[1] &= ~0x00200000u;
}
inline void TestAllTypes::clear_default_sint64() {
  default_sint64_ = GOOGLE_LONGLONG(46);
  clear_has_default_sint64();
}
inline ::google::protobuf::int64 TestAllTypes::default_sint64() const {
  return default_sint64_;
}
inline void TestAllTypes::set_default_sint64(::google::protobuf::int64 value) {
  set_has_default_sint64();
  default_sint64_ = value;
}

// optional fixed32 default_fixed32 = 67 [default = 47];
inline bool TestAllTypes::has_default_fixed32() const {
  return (_has_bits_[1] & 0x00400000u) != 0;
}
inline void TestAllTypes::set_has_default_fixed32() {
  _has_bits_[1] |= 0x00400000u;
}
inline void TestAllTypes::clear_has_default_fixed32() {
  _has_bits_[1] &= ~0x00400000u;
}
inline void TestAllTypes::clear_default_fixed32() {
  default_fixed32_ = 47u;
  clear_has_default_fixed32();
}
inline ::google::protobuf::uint32 TestAllTypes::default_fixed32() const {
  return default_fixed32_;
}
inline void TestAllTypes::set_default_fixed32(::google::protobuf::uint32 value) {
  set_has_default_fixed32();
  default_fixed32_ = value;
}

// optional fixed64 default_fixed64 = 68 [default = 48];
inline bool TestAllTypes::has_default_fixed64() const {
  return (_has_bits_[1] & 0x00800000u) != 0;
}
inline void TestAllTypes::set_has_default_fixed64() {
  _has_bits_[1] |= 0x00800000u;
}
inline void TestAllTypes::clear_has_default_fixed64() {
  _has_bits_[1] &= ~0x00800000u;
}
inline void TestAllTypes::clear_default_fixed64() {
  default_fixed64_ = GOOGLE_ULONGLONG(48);
  clear_has_default_fixed64();
}
inline ::google::protobuf::uint64 TestAllTypes::default_fixed64() const {
  return default_fixed64_;
}
inline void TestAllTypes::set_default_fixed64(::google::protobuf::uint64 value) {
  set_has_default_fixed64();
  default_fixed64_ = value;
}

// optional sfixed32 default_sfixed32 = 69 [default = 49];
inline bool TestAllTypes::has_default_sfixed32() const {
  return (_has_bits_[1] & 0x01000000u) != 0;
}
inline void TestAllTypes::set_has_default_sfixed32() {
  _has_bits_[1] |= 0x01000000u;
}
inline void TestAllTypes::clear_has_default_sfixed32() {
  _has_bits_[1] &= ~0x01000000u;
}
inline void TestAllTypes::clear_default_sfixed32() {
  default_sfixed32_ = 49;
  clear_has_default_sfixed32();
}
inline ::google::protobuf::int32 TestAllTypes::default_sfixed32() const {
  return default_sfixed32_;
}
inline void TestAllTypes::set_default_sfixed32(::google::protobuf::int32 value) {
  set_has_default_sfixed32();
  default_sfixed32_ = value;
}

// optional sfixed64 default_sfixed64 = 70 [default = -50];
inline bool TestAllTypes::has_default_sfixed64() const {
  return (_has_bits_[1] & 0x02000000u) != 0;
}
inline void TestAllTypes::set_has_default_sfixed64() {
  _has_bits_[1] |= 0x02000000u;
}
inline void TestAllTypes::clear_has_default_sfixed64() {
  _has_bits_[1] &= ~0x02000000u;
}
inline void TestAllTypes::clear_default_sfixed64() {
  default_sfixed64_ = GOOGLE_LONGLONG(-50);
  clear_has_default_sfixed64();
}
inline ::google::protobuf::int64 TestAllTypes::default_sfixed64() const {
  return default_sfixed64_;
}
inline void TestAllTypes::set_default_sfixed64(::google::protobuf::int64 value) {
  set_has_default_sfixed64();
  default_sfixed64_ = value;
}

// optional float default_float = 71 [default = 51.5];
inline bool TestAllTypes::has_default_float() const {
  return (_has_bits_[1] & 0x04000000u) != 0;
}
inline void TestAllTypes::set_has_default_float() {
  _has_bits_[1] |= 0x04000000u;
}
inline void TestAllTypes::clear_has_default_float() {
  _has_bits_[1] &= ~0x04000000u;
}
inline void TestAllTypes::clear_default_float() {
  default_float_ = 51.5f;
  clear_has_default_float();
}
inline float TestAllTypes::default_float() const {
  return default_float_;
}
inline void TestAllTypes::set_default_float(float value) {
  set_has_default_float();
  default_float_ = value;
}

// optional double default_double = 72 [default = 52000];
inline bool TestAllTypes::has_default_double() const {
  return (_has_bits_[1] & 0x08000000u) != 0;
}
inline void TestAllTypes::set_has_default_double() {
  _has_bits_[1] |= 0x08000000u;
}
inline void TestAllTypes::clear_has_default_double() {
  _has_bits_[1] &= ~0x08000000u;
}
inline void TestAllTypes::clear_default_double() {
  default_double_ = 52000;
  clear_has_default_double();
}
inline double TestAllTypes::default_double() const {
  return default_double_;
}
inline void TestAllTypes::set_default_double(double value) {
  set_has_default_double();
  default_double_ = value;
}

// optional bool default_bool = 73 [default = true];
inline bool TestAllTypes::has_default_bool() const {
  return (_has_bits_[1] & 0x10000000u) != 0;
}
inline void TestAllTypes::set_has_default_bool() {
  _has_bits_[1] |= 0x10000000u;
}
inline void TestAllTypes::clear_has_default_bool() {
  _has_bits_[1] &= ~0x10000000u;
}
inline void TestAllTypes::clear_default_bool() {
  default_bool_ = true;
  clear_has_default_bool();
}
inline bool TestAllTypes::default_bool() const {
  return default_bool_;
}
inline void TestAllTypes::set_default_bool(bool value) {
  set_has_default_bool();
  default_bool_ = value;
}

// optional string default_string = 74 [default = "hello"];
inline bool TestAllTypes::has_default_string() const {
  return (_has_bits_[1] & 0x20000000u) != 0;
}
inline void TestAllTypes::set_has_default_string() {
  _has_bits_[1] |= 0x20000000u;
}
inline void TestAllTypes::clear_has_default_string() {
  _has_bits_[1] &= ~0x20000000u;
}
inline void TestAllTypes::clear_default_string() {
  if (default_string_ != &_default_default_string_) {
    default_string_->assign(_default_default_string_);
  }
  clear_has_default_string();
}
inline const ::std::string& TestAllTypes::default_string() const {
  return *default_string_;
}
inline void TestAllTypes::set_default_string(const ::std::string& value) {
  set_has_default_string();
  if (default_string_ == &_default_default_string_) {
    default_string_ = new ::std::string;
  }
  default_string_->assign(value);
}
inline void TestAllTypes::set_default_string(const char* value) {
  set_has_default_string();
  if (default_string_ == &_default_default_string_) {
    default_string_ = new ::std::string;
  }
  default_string_->assign(value);
}
inline void TestAllTypes::set_default_string(const char* value, size_t size) {
  set_has_default_string();
  if (default_string_ == &_default_default_string_) {
    default_string_ = new ::std::string;
  }
  default_string_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_default_string() {
  set_has_default_string();
  if (default_string_ == &_default_default_string_) {
    default_string_ = new ::std::string(_default_default_string_);
  }
  return default_string_;
}
inline ::std::string* TestAllTypes::release_default_string() {
  clear_has_default_string();
  if (default_string_ == &_default_default_string_) {
    return NULL;
  } else {
    ::std::string* temp = default_string_;
    default_string_ = const_cast< ::std::string*>(&_default_default_string_);
    return temp;
  }
}

// optional bytes default_bytes = 75 [default = "world"];
inline bool TestAllTypes::has_default_bytes() const {
  return (_has_bits_[1] & 0x40000000u) != 0;
}
inline void TestAllTypes::set_has_default_bytes() {
  _has_bits_[1] |= 0x40000000u;
}
inline void TestAllTypes::clear_has_default_bytes() {
  _has_bits_[1] &= ~0x40000000u;
}
inline void TestAllTypes::clear_default_bytes() {
  if (default_bytes_ != &_default_default_bytes_) {
    default_bytes_->assign(_default_default_bytes_);
  }
  clear_has_default_bytes();
}
inline const ::std::string& TestAllTypes::default_bytes() const {
  return *default_bytes_;
}
inline void TestAllTypes::set_default_bytes(const ::std::string& value) {
  set_has_default_bytes();
  if (default_bytes_ == &_default_default_bytes_) {
    default_bytes_ = new ::std::string;
  }
  default_bytes_->assign(value);
}
inline void TestAllTypes::set_default_bytes(const char* value) {
  set_has_default_bytes();
  if (default_bytes_ == &_default_default_bytes_) {
    default_bytes_ = new ::std::string;
  }
  default_bytes_->assign(value);
}
inline void TestAllTypes::set_default_bytes(const void* value, size_t size) {
  set_has_default_bytes();
  if (default_bytes_ == &_default_default_bytes_) {
    default_bytes_ = new ::std::string;
  }
  default_bytes_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_default_bytes() {
  set_has_default_bytes();
  if (default_bytes_ == &_default_default_bytes_) {
    default_bytes_ = new ::std::string(_default_default_bytes_);
  }
  return default_bytes_;
}
inline ::std::string* TestAllTypes::release_default_bytes() {
  clear_has_default_bytes();
  if (default_bytes_ == &_default_default_bytes_) {
    return NULL;
  } else {
    ::std::string* temp = default_bytes_;
    default_bytes_ = const_cast< ::std::string*>(&_default_default_bytes_);
    return temp;
  }
}

// optional .protobuf_unittest.TestAllTypes.NestedEnum default_nested_enum = 81 [default = BAR];
inline bool TestAllTypes::has_default_nested_enum() const {
  return (_has_bits_[1] & 0x80000000u) != 0;
}
inline void TestAllTypes::set_has_default_nested_enum() {
  _has_bits_[1] |= 0x80000000u;
}
inline void TestAllTypes::clear_has_default_nested_enum() {
  _has_bits_[1] &= ~0x80000000u;
}
inline void TestAllTypes::clear_default_nested_enum() {
  default_nested_enum_ = 2;
  clear_has_default_nested_enum();
}
inline ::protobuf_unittest::TestAllTypes_NestedEnum TestAllTypes::default_nested_enum() const {
  return static_cast< ::protobuf_unittest::TestAllTypes_NestedEnum >(default_nested_enum_);
}
inline void TestAllTypes::set_default_nested_enum(::protobuf_unittest::TestAllTypes_NestedEnum value) {
  GOOGLE_DCHECK(::protobuf_unittest::TestAllTypes_NestedEnum_IsValid(value));
  set_has_default_nested_enum();
  default_nested_enum_ = value;
}

// optional .protobuf_unittest.ForeignEnum default_foreign_enum = 82 [default = FOREIGN_BAR];
inline bool TestAllTypes::has_default_foreign_enum() const {
  return (_has_bits_[2] & 0x00000001u) != 0;
}
inline void TestAllTypes::set_has_default_foreign_enum() {
  _has_bits_[2] |= 0x00000001u;
}
inline void TestAllTypes::clear_has_default_foreign_enum() {
  _has_bits_[2] &= ~0x00000001u;
}
inline void TestAllTypes::clear_default_foreign_enum() {
  default_foreign_enum_ = 5;
  clear_has_default_foreign_enum();
}
inline protobuf_unittest::ForeignEnum TestAllTypes::default_foreign_enum() const {
  return static_cast< protobuf_unittest::ForeignEnum >(default_foreign_enum_);
}
inline void TestAllTypes::set_default_foreign_enum(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  set_has_default_foreign_enum();
  default_foreign_enum_ = value;
}

// optional .protobuf_unittest_import.ImportEnum default_import_enum = 83 [default = IMPORT_BAR];
inline bool TestAllTypes::has_default_import_enum() const {
  return (_has_bits_[2] & 0x00000002u) != 0;
}
inline void TestAllTypes::set_has_default_import_enum() {
  _has_bits_[2] |= 0x00000002u;
}
inline void TestAllTypes::clear_has_default_import_enum() {
  _has_bits_[2] &= ~0x00000002u;
}
inline void TestAllTypes::clear_default_import_enum() {
  default_import_enum_ = 8;
  clear_has_default_import_enum();
}
inline protobuf_unittest_import::ImportEnum TestAllTypes::default_import_enum() const {
  return static_cast< protobuf_unittest_import::ImportEnum >(default_import_enum_);
}
inline void TestAllTypes::set_default_import_enum(protobuf_unittest_import::ImportEnum value) {
  GOOGLE_DCHECK(protobuf_unittest_import::ImportEnum_IsValid(value));
  set_has_default_import_enum();
  default_import_enum_ = value;
}

// optional string default_string_piece = 84 [default = "abc", ctype = STRING_PIECE];
inline bool TestAllTypes::has_default_string_piece() const {
  return (_has_bits_[2] & 0x00000004u) != 0;
}
inline void TestAllTypes::set_has_default_string_piece() {
  _has_bits_[2] |= 0x00000004u;
}
inline void TestAllTypes::clear_has_default_string_piece() {
  _has_bits_[2] &= ~0x00000004u;
}
inline void TestAllTypes::clear_default_string_piece() {
  if (default_string_piece_ != &_default_default_string_piece_) {
    default_string_piece_->assign(_default_default_string_piece_);
  }
  clear_has_default_string_piece();
}
inline const ::std::string& TestAllTypes::default_string_piece() const {
  return *default_string_piece_;
}
inline void TestAllTypes::set_default_string_piece(const ::std::string& value) {
  set_has_default_string_piece();
  if (default_string_piece_ == &_default_default_string_piece_) {
    default_string_piece_ = new ::std::string;
  }
  default_string_piece_->assign(value);
}
inline void TestAllTypes::set_default_string_piece(const char* value) {
  set_has_default_string_piece();
  if (default_string_piece_ == &_default_default_string_piece_) {
    default_string_piece_ = new ::std::string;
  }
  default_string_piece_->assign(value);
}
inline void TestAllTypes::set_default_string_piece(const char* value, size_t size) {
  set_has_default_string_piece();
  if (default_string_piece_ == &_default_default_string_piece_) {
    default_string_piece_ = new ::std::string;
  }
  default_string_piece_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_default_string_piece() {
  set_has_default_string_piece();
  if (default_string_piece_ == &_default_default_string_piece_) {
    default_string_piece_ = new ::std::string(_default_default_string_piece_);
  }
  return default_string_piece_;
}
inline ::std::string* TestAllTypes::release_default_string_piece() {
  clear_has_default_string_piece();
  if (default_string_piece_ == &_default_default_string_piece_) {
    return NULL;
  } else {
    ::std::string* temp = default_string_piece_;
    default_string_piece_ = const_cast< ::std::string*>(&_default_default_string_piece_);
    return temp;
  }
}

// optional string default_cord = 85 [default = "123", ctype = CORD];
inline bool TestAllTypes::has_default_cord() const {
  return (_has_bits_[2] & 0x00000008u) != 0;
}
inline void TestAllTypes::set_has_default_cord() {
  _has_bits_[2] |= 0x00000008u;
}
inline void TestAllTypes::clear_has_default_cord() {
  _has_bits_[2] &= ~0x00000008u;
}
inline void TestAllTypes::clear_default_cord() {
  if (default_cord_ != &_default_default_cord_) {
    default_cord_->assign(_default_default_cord_);
  }
  clear_has_default_cord();
}
inline const ::std::string& TestAllTypes::default_cord() const {
  return *default_cord_;
}
inline void TestAllTypes::set_default_cord(const ::std::string& value) {
  set_has_default_cord();
  if (default_cord_ == &_default_default_cord_) {
    default_cord_ = new ::std::string;
  }
  default_cord_->assign(value);
}
inline void TestAllTypes::set_default_cord(const char* value) {
  set_has_default_cord();
  if (default_cord_ == &_default_default_cord_) {
    default_cord_ = new ::std::string;
  }
  default_cord_->assign(value);
}
inline void TestAllTypes::set_default_cord(const char* value, size_t size) {
  set_has_default_cord();
  if (default_cord_ == &_default_default_cord_) {
    default_cord_ = new ::std::string;
  }
  default_cord_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestAllTypes::mutable_default_cord() {
  set_has_default_cord();
  if (default_cord_ == &_default_default_cord_) {
    default_cord_ = new ::std::string(_default_default_cord_);
  }
  return default_cord_;
}
inline ::std::string* TestAllTypes::release_default_cord() {
  clear_has_default_cord();
  if (default_cord_ == &_default_default_cord_) {
    return NULL;
  } else {
    ::std::string* temp = default_cord_;
    default_cord_ = const_cast< ::std::string*>(&_default_default_cord_);
    return temp;
  }
}

// -------------------------------------------------------------------

// TestDeprecatedFields

// optional int32 deprecated_int32 = 1 [deprecated = true];
inline bool TestDeprecatedFields::has_deprecated_int32() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestDeprecatedFields::set_has_deprecated_int32() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestDeprecatedFields::clear_has_deprecated_int32() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestDeprecatedFields::clear_deprecated_int32() {
  deprecated_int32_ = 0;
  clear_has_deprecated_int32();
}
inline ::google::protobuf::int32 TestDeprecatedFields::deprecated_int32() const {
  return deprecated_int32_;
}
inline void TestDeprecatedFields::set_deprecated_int32(::google::protobuf::int32 value) {
  set_has_deprecated_int32();
  deprecated_int32_ = value;
}

// -------------------------------------------------------------------

// ForeignMessage

// optional int32 c = 1;
inline bool ForeignMessage::has_c() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ForeignMessage::set_has_c() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ForeignMessage::clear_has_c() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ForeignMessage::clear_c() {
  c_ = 0;
  clear_has_c();
}
inline ::google::protobuf::int32 ForeignMessage::c() const {
  return c_;
}
inline void ForeignMessage::set_c(::google::protobuf::int32 value) {
  set_has_c();
  c_ = value;
}

// -------------------------------------------------------------------

// TestAllExtensions

// -------------------------------------------------------------------

// OptionalGroup_extension

// optional int32 a = 17;
inline bool OptionalGroup_extension::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void OptionalGroup_extension::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void OptionalGroup_extension::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void OptionalGroup_extension::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 OptionalGroup_extension::a() const {
  return a_;
}
inline void OptionalGroup_extension::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// -------------------------------------------------------------------

// RepeatedGroup_extension

// optional int32 a = 47;
inline bool RepeatedGroup_extension::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RepeatedGroup_extension::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void RepeatedGroup_extension::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void RepeatedGroup_extension::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 RepeatedGroup_extension::a() const {
  return a_;
}
inline void RepeatedGroup_extension::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// -------------------------------------------------------------------

// TestNestedExtension

// -------------------------------------------------------------------

// TestRequired

// required int32 a = 1;
inline bool TestRequired::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestRequired::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestRequired::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestRequired::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestRequired::a() const {
  return a_;
}
inline void TestRequired::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// optional int32 dummy2 = 2;
inline bool TestRequired::has_dummy2() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestRequired::set_has_dummy2() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestRequired::clear_has_dummy2() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestRequired::clear_dummy2() {
  dummy2_ = 0;
  clear_has_dummy2();
}
inline ::google::protobuf::int32 TestRequired::dummy2() const {
  return dummy2_;
}
inline void TestRequired::set_dummy2(::google::protobuf::int32 value) {
  set_has_dummy2();
  dummy2_ = value;
}

// required int32 b = 3;
inline bool TestRequired::has_b() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestRequired::set_has_b() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestRequired::clear_has_b() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestRequired::clear_b() {
  b_ = 0;
  clear_has_b();
}
inline ::google::protobuf::int32 TestRequired::b() const {
  return b_;
}
inline void TestRequired::set_b(::google::protobuf::int32 value) {
  set_has_b();
  b_ = value;
}

// optional int32 dummy4 = 4;
inline bool TestRequired::has_dummy4() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TestRequired::set_has_dummy4() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TestRequired::clear_has_dummy4() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TestRequired::clear_dummy4() {
  dummy4_ = 0;
  clear_has_dummy4();
}
inline ::google::protobuf::int32 TestRequired::dummy4() const {
  return dummy4_;
}
inline void TestRequired::set_dummy4(::google::protobuf::int32 value) {
  set_has_dummy4();
  dummy4_ = value;
}

// optional int32 dummy5 = 5;
inline bool TestRequired::has_dummy5() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TestRequired::set_has_dummy5() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TestRequired::clear_has_dummy5() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TestRequired::clear_dummy5() {
  dummy5_ = 0;
  clear_has_dummy5();
}
inline ::google::protobuf::int32 TestRequired::dummy5() const {
  return dummy5_;
}
inline void TestRequired::set_dummy5(::google::protobuf::int32 value) {
  set_has_dummy5();
  dummy5_ = value;
}

// optional int32 dummy6 = 6;
inline bool TestRequired::has_dummy6() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TestRequired::set_has_dummy6() {
  _has_bits_[0] |= 0x00000020u;
}
inline void TestRequired::clear_has_dummy6() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void TestRequired::clear_dummy6() {
  dummy6_ = 0;
  clear_has_dummy6();
}
inline ::google::protobuf::int32 TestRequired::dummy6() const {
  return dummy6_;
}
inline void TestRequired::set_dummy6(::google::protobuf::int32 value) {
  set_has_dummy6();
  dummy6_ = value;
}

// optional int32 dummy7 = 7;
inline bool TestRequired::has_dummy7() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void TestRequired::set_has_dummy7() {
  _has_bits_[0] |= 0x00000040u;
}
inline void TestRequired::clear_has_dummy7() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void TestRequired::clear_dummy7() {
  dummy7_ = 0;
  clear_has_dummy7();
}
inline ::google::protobuf::int32 TestRequired::dummy7() const {
  return dummy7_;
}
inline void TestRequired::set_dummy7(::google::protobuf::int32 value) {
  set_has_dummy7();
  dummy7_ = value;
}

// optional int32 dummy8 = 8;
inline bool TestRequired::has_dummy8() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void TestRequired::set_has_dummy8() {
  _has_bits_[0] |= 0x00000080u;
}
inline void TestRequired::clear_has_dummy8() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void TestRequired::clear_dummy8() {
  dummy8_ = 0;
  clear_has_dummy8();
}
inline ::google::protobuf::int32 TestRequired::dummy8() const {
  return dummy8_;
}
inline void TestRequired::set_dummy8(::google::protobuf::int32 value) {
  set_has_dummy8();
  dummy8_ = value;
}

// optional int32 dummy9 = 9;
inline bool TestRequired::has_dummy9() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void TestRequired::set_has_dummy9() {
  _has_bits_[0] |= 0x00000100u;
}
inline void TestRequired::clear_has_dummy9() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void TestRequired::clear_dummy9() {
  dummy9_ = 0;
  clear_has_dummy9();
}
inline ::google::protobuf::int32 TestRequired::dummy9() const {
  return dummy9_;
}
inline void TestRequired::set_dummy9(::google::protobuf::int32 value) {
  set_has_dummy9();
  dummy9_ = value;
}

// optional int32 dummy10 = 10;
inline bool TestRequired::has_dummy10() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void TestRequired::set_has_dummy10() {
  _has_bits_[0] |= 0x00000200u;
}
inline void TestRequired::clear_has_dummy10() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void TestRequired::clear_dummy10() {
  dummy10_ = 0;
  clear_has_dummy10();
}
inline ::google::protobuf::int32 TestRequired::dummy10() const {
  return dummy10_;
}
inline void TestRequired::set_dummy10(::google::protobuf::int32 value) {
  set_has_dummy10();
  dummy10_ = value;
}

// optional int32 dummy11 = 11;
inline bool TestRequired::has_dummy11() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void TestRequired::set_has_dummy11() {
  _has_bits_[0] |= 0x00000400u;
}
inline void TestRequired::clear_has_dummy11() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void TestRequired::clear_dummy11() {
  dummy11_ = 0;
  clear_has_dummy11();
}
inline ::google::protobuf::int32 TestRequired::dummy11() const {
  return dummy11_;
}
inline void TestRequired::set_dummy11(::google::protobuf::int32 value) {
  set_has_dummy11();
  dummy11_ = value;
}

// optional int32 dummy12 = 12;
inline bool TestRequired::has_dummy12() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void TestRequired::set_has_dummy12() {
  _has_bits_[0] |= 0x00000800u;
}
inline void TestRequired::clear_has_dummy12() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void TestRequired::clear_dummy12() {
  dummy12_ = 0;
  clear_has_dummy12();
}
inline ::google::protobuf::int32 TestRequired::dummy12() const {
  return dummy12_;
}
inline void TestRequired::set_dummy12(::google::protobuf::int32 value) {
  set_has_dummy12();
  dummy12_ = value;
}

// optional int32 dummy13 = 13;
inline bool TestRequired::has_dummy13() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void TestRequired::set_has_dummy13() {
  _has_bits_[0] |= 0x00001000u;
}
inline void TestRequired::clear_has_dummy13() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void TestRequired::clear_dummy13() {
  dummy13_ = 0;
  clear_has_dummy13();
}
inline ::google::protobuf::int32 TestRequired::dummy13() const {
  return dummy13_;
}
inline void TestRequired::set_dummy13(::google::protobuf::int32 value) {
  set_has_dummy13();
  dummy13_ = value;
}

// optional int32 dummy14 = 14;
inline bool TestRequired::has_dummy14() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void TestRequired::set_has_dummy14() {
  _has_bits_[0] |= 0x00002000u;
}
inline void TestRequired::clear_has_dummy14() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void TestRequired::clear_dummy14() {
  dummy14_ = 0;
  clear_has_dummy14();
}
inline ::google::protobuf::int32 TestRequired::dummy14() const {
  return dummy14_;
}
inline void TestRequired::set_dummy14(::google::protobuf::int32 value) {
  set_has_dummy14();
  dummy14_ = value;
}

// optional int32 dummy15 = 15;
inline bool TestRequired::has_dummy15() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void TestRequired::set_has_dummy15() {
  _has_bits_[0] |= 0x00004000u;
}
inline void TestRequired::clear_has_dummy15() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void TestRequired::clear_dummy15() {
  dummy15_ = 0;
  clear_has_dummy15();
}
inline ::google::protobuf::int32 TestRequired::dummy15() const {
  return dummy15_;
}
inline void TestRequired::set_dummy15(::google::protobuf::int32 value) {
  set_has_dummy15();
  dummy15_ = value;
}

// optional int32 dummy16 = 16;
inline bool TestRequired::has_dummy16() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void TestRequired::set_has_dummy16() {
  _has_bits_[0] |= 0x00008000u;
}
inline void TestRequired::clear_has_dummy16() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void TestRequired::clear_dummy16() {
  dummy16_ = 0;
  clear_has_dummy16();
}
inline ::google::protobuf::int32 TestRequired::dummy16() const {
  return dummy16_;
}
inline void TestRequired::set_dummy16(::google::protobuf::int32 value) {
  set_has_dummy16();
  dummy16_ = value;
}

// optional int32 dummy17 = 17;
inline bool TestRequired::has_dummy17() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void TestRequired::set_has_dummy17() {
  _has_bits_[0] |= 0x00010000u;
}
inline void TestRequired::clear_has_dummy17() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void TestRequired::clear_dummy17() {
  dummy17_ = 0;
  clear_has_dummy17();
}
inline ::google::protobuf::int32 TestRequired::dummy17() const {
  return dummy17_;
}
inline void TestRequired::set_dummy17(::google::protobuf::int32 value) {
  set_has_dummy17();
  dummy17_ = value;
}

// optional int32 dummy18 = 18;
inline bool TestRequired::has_dummy18() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void TestRequired::set_has_dummy18() {
  _has_bits_[0] |= 0x00020000u;
}
inline void TestRequired::clear_has_dummy18() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void TestRequired::clear_dummy18() {
  dummy18_ = 0;
  clear_has_dummy18();
}
inline ::google::protobuf::int32 TestRequired::dummy18() const {
  return dummy18_;
}
inline void TestRequired::set_dummy18(::google::protobuf::int32 value) {
  set_has_dummy18();
  dummy18_ = value;
}

// optional int32 dummy19 = 19;
inline bool TestRequired::has_dummy19() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void TestRequired::set_has_dummy19() {
  _has_bits_[0] |= 0x00040000u;
}
inline void TestRequired::clear_has_dummy19() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void TestRequired::clear_dummy19() {
  dummy19_ = 0;
  clear_has_dummy19();
}
inline ::google::protobuf::int32 TestRequired::dummy19() const {
  return dummy19_;
}
inline void TestRequired::set_dummy19(::google::protobuf::int32 value) {
  set_has_dummy19();
  dummy19_ = value;
}

// optional int32 dummy20 = 20;
inline bool TestRequired::has_dummy20() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void TestRequired::set_has_dummy20() {
  _has_bits_[0] |= 0x00080000u;
}
inline void TestRequired::clear_has_dummy20() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void TestRequired::clear_dummy20() {
  dummy20_ = 0;
  clear_has_dummy20();
}
inline ::google::protobuf::int32 TestRequired::dummy20() const {
  return dummy20_;
}
inline void TestRequired::set_dummy20(::google::protobuf::int32 value) {
  set_has_dummy20();
  dummy20_ = value;
}

// optional int32 dummy21 = 21;
inline bool TestRequired::has_dummy21() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void TestRequired::set_has_dummy21() {
  _has_bits_[0] |= 0x00100000u;
}
inline void TestRequired::clear_has_dummy21() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void TestRequired::clear_dummy21() {
  dummy21_ = 0;
  clear_has_dummy21();
}
inline ::google::protobuf::int32 TestRequired::dummy21() const {
  return dummy21_;
}
inline void TestRequired::set_dummy21(::google::protobuf::int32 value) {
  set_has_dummy21();
  dummy21_ = value;
}

// optional int32 dummy22 = 22;
inline bool TestRequired::has_dummy22() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void TestRequired::set_has_dummy22() {
  _has_bits_[0] |= 0x00200000u;
}
inline void TestRequired::clear_has_dummy22() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void TestRequired::clear_dummy22() {
  dummy22_ = 0;
  clear_has_dummy22();
}
inline ::google::protobuf::int32 TestRequired::dummy22() const {
  return dummy22_;
}
inline void TestRequired::set_dummy22(::google::protobuf::int32 value) {
  set_has_dummy22();
  dummy22_ = value;
}

// optional int32 dummy23 = 23;
inline bool TestRequired::has_dummy23() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void TestRequired::set_has_dummy23() {
  _has_bits_[0] |= 0x00400000u;
}
inline void TestRequired::clear_has_dummy23() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void TestRequired::clear_dummy23() {
  dummy23_ = 0;
  clear_has_dummy23();
}
inline ::google::protobuf::int32 TestRequired::dummy23() const {
  return dummy23_;
}
inline void TestRequired::set_dummy23(::google::protobuf::int32 value) {
  set_has_dummy23();
  dummy23_ = value;
}

// optional int32 dummy24 = 24;
inline bool TestRequired::has_dummy24() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void TestRequired::set_has_dummy24() {
  _has_bits_[0] |= 0x00800000u;
}
inline void TestRequired::clear_has_dummy24() {
  _has_bits_[0] &= ~0x00800000u;
}
inline void TestRequired::clear_dummy24() {
  dummy24_ = 0;
  clear_has_dummy24();
}
inline ::google::protobuf::int32 TestRequired::dummy24() const {
  return dummy24_;
}
inline void TestRequired::set_dummy24(::google::protobuf::int32 value) {
  set_has_dummy24();
  dummy24_ = value;
}

// optional int32 dummy25 = 25;
inline bool TestRequired::has_dummy25() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
inline void TestRequired::set_has_dummy25() {
  _has_bits_[0] |= 0x01000000u;
}
inline void TestRequired::clear_has_dummy25() {
  _has_bits_[0] &= ~0x01000000u;
}
inline void TestRequired::clear_dummy25() {
  dummy25_ = 0;
  clear_has_dummy25();
}
inline ::google::protobuf::int32 TestRequired::dummy25() const {
  return dummy25_;
}
inline void TestRequired::set_dummy25(::google::protobuf::int32 value) {
  set_has_dummy25();
  dummy25_ = value;
}

// optional int32 dummy26 = 26;
inline bool TestRequired::has_dummy26() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
inline void TestRequired::set_has_dummy26() {
  _has_bits_[0] |= 0x02000000u;
}
inline void TestRequired::clear_has_dummy26() {
  _has_bits_[0] &= ~0x02000000u;
}
inline void TestRequired::clear_dummy26() {
  dummy26_ = 0;
  clear_has_dummy26();
}
inline ::google::protobuf::int32 TestRequired::dummy26() const {
  return dummy26_;
}
inline void TestRequired::set_dummy26(::google::protobuf::int32 value) {
  set_has_dummy26();
  dummy26_ = value;
}

// optional int32 dummy27 = 27;
inline bool TestRequired::has_dummy27() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
inline void TestRequired::set_has_dummy27() {
  _has_bits_[0] |= 0x04000000u;
}
inline void TestRequired::clear_has_dummy27() {
  _has_bits_[0] &= ~0x04000000u;
}
inline void TestRequired::clear_dummy27() {
  dummy27_ = 0;
  clear_has_dummy27();
}
inline ::google::protobuf::int32 TestRequired::dummy27() const {
  return dummy27_;
}
inline void TestRequired::set_dummy27(::google::protobuf::int32 value) {
  set_has_dummy27();
  dummy27_ = value;
}

// optional int32 dummy28 = 28;
inline bool TestRequired::has_dummy28() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
inline void TestRequired::set_has_dummy28() {
  _has_bits_[0] |= 0x08000000u;
}
inline void TestRequired::clear_has_dummy28() {
  _has_bits_[0] &= ~0x08000000u;
}
inline void TestRequired::clear_dummy28() {
  dummy28_ = 0;
  clear_has_dummy28();
}
inline ::google::protobuf::int32 TestRequired::dummy28() const {
  return dummy28_;
}
inline void TestRequired::set_dummy28(::google::protobuf::int32 value) {
  set_has_dummy28();
  dummy28_ = value;
}

// optional int32 dummy29 = 29;
inline bool TestRequired::has_dummy29() const {
  return (_has_bits_[0] & 0x10000000u) != 0;
}
inline void TestRequired::set_has_dummy29() {
  _has_bits_[0] |= 0x10000000u;
}
inline void TestRequired::clear_has_dummy29() {
  _has_bits_[0] &= ~0x10000000u;
}
inline void TestRequired::clear_dummy29() {
  dummy29_ = 0;
  clear_has_dummy29();
}
inline ::google::protobuf::int32 TestRequired::dummy29() const {
  return dummy29_;
}
inline void TestRequired::set_dummy29(::google::protobuf::int32 value) {
  set_has_dummy29();
  dummy29_ = value;
}

// optional int32 dummy30 = 30;
inline bool TestRequired::has_dummy30() const {
  return (_has_bits_[0] & 0x20000000u) != 0;
}
inline void TestRequired::set_has_dummy30() {
  _has_bits_[0] |= 0x20000000u;
}
inline void TestRequired::clear_has_dummy30() {
  _has_bits_[0] &= ~0x20000000u;
}
inline void TestRequired::clear_dummy30() {
  dummy30_ = 0;
  clear_has_dummy30();
}
inline ::google::protobuf::int32 TestRequired::dummy30() const {
  return dummy30_;
}
inline void TestRequired::set_dummy30(::google::protobuf::int32 value) {
  set_has_dummy30();
  dummy30_ = value;
}

// optional int32 dummy31 = 31;
inline bool TestRequired::has_dummy31() const {
  return (_has_bits_[0] & 0x40000000u) != 0;
}
inline void TestRequired::set_has_dummy31() {
  _has_bits_[0] |= 0x40000000u;
}
inline void TestRequired::clear_has_dummy31() {
  _has_bits_[0] &= ~0x40000000u;
}
inline void TestRequired::clear_dummy31() {
  dummy31_ = 0;
  clear_has_dummy31();
}
inline ::google::protobuf::int32 TestRequired::dummy31() const {
  return dummy31_;
}
inline void TestRequired::set_dummy31(::google::protobuf::int32 value) {
  set_has_dummy31();
  dummy31_ = value;
}

// optional int32 dummy32 = 32;
inline bool TestRequired::has_dummy32() const {
  return (_has_bits_[0] & 0x80000000u) != 0;
}
inline void TestRequired::set_has_dummy32() {
  _has_bits_[0] |= 0x80000000u;
}
inline void TestRequired::clear_has_dummy32() {
  _has_bits_[0] &= ~0x80000000u;
}
inline void TestRequired::clear_dummy32() {
  dummy32_ = 0;
  clear_has_dummy32();
}
inline ::google::protobuf::int32 TestRequired::dummy32() const {
  return dummy32_;
}
inline void TestRequired::set_dummy32(::google::protobuf::int32 value) {
  set_has_dummy32();
  dummy32_ = value;
}

// required int32 c = 33;
inline bool TestRequired::has_c() const {
  return (_has_bits_[1] & 0x00000001u) != 0;
}
inline void TestRequired::set_has_c() {
  _has_bits_[1] |= 0x00000001u;
}
inline void TestRequired::clear_has_c() {
  _has_bits_[1] &= ~0x00000001u;
}
inline void TestRequired::clear_c() {
  c_ = 0;
  clear_has_c();
}
inline ::google::protobuf::int32 TestRequired::c() const {
  return c_;
}
inline void TestRequired::set_c(::google::protobuf::int32 value) {
  set_has_c();
  c_ = value;
}

// -------------------------------------------------------------------

// TestRequiredForeign

// optional .protobuf_unittest.TestRequired optional_message = 1;
inline bool TestRequiredForeign::has_optional_message() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestRequiredForeign::set_has_optional_message() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestRequiredForeign::clear_has_optional_message() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestRequiredForeign::clear_optional_message() {
  if (optional_message_ != NULL) optional_message_->::protobuf_unittest::TestRequired::Clear();
  clear_has_optional_message();
}
inline const ::protobuf_unittest::TestRequired& TestRequiredForeign::optional_message() const {
  return optional_message_ != NULL ? *optional_message_ : *default_instance_->optional_message_;
}
inline ::protobuf_unittest::TestRequired* TestRequiredForeign::mutable_optional_message() {
  set_has_optional_message();
  if (optional_message_ == NULL) optional_message_ = new ::protobuf_unittest::TestRequired;
  return optional_message_;
}
inline ::protobuf_unittest::TestRequired* TestRequiredForeign::release_optional_message() {
  clear_has_optional_message();
  ::protobuf_unittest::TestRequired* temp = optional_message_;
  optional_message_ = NULL;
  return temp;
}

// repeated .protobuf_unittest.TestRequired repeated_message = 2;
inline int TestRequiredForeign::repeated_message_size() const {
  return repeated_message_.size();
}
inline void TestRequiredForeign::clear_repeated_message() {
  repeated_message_.Clear();
}
inline const ::protobuf_unittest::TestRequired& TestRequiredForeign::repeated_message(int index) const {
  return repeated_message_.Get(index);
}
inline ::protobuf_unittest::TestRequired* TestRequiredForeign::mutable_repeated_message(int index) {
  return repeated_message_.Mutable(index);
}
inline ::protobuf_unittest::TestRequired* TestRequiredForeign::add_repeated_message() {
  return repeated_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestRequired >&
TestRequiredForeign::repeated_message() const {
  return repeated_message_;
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestRequired >*
TestRequiredForeign::mutable_repeated_message() {
  return &repeated_message_;
}

// optional int32 dummy = 3;
inline bool TestRequiredForeign::has_dummy() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestRequiredForeign::set_has_dummy() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestRequiredForeign::clear_has_dummy() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestRequiredForeign::clear_dummy() {
  dummy_ = 0;
  clear_has_dummy();
}
inline ::google::protobuf::int32 TestRequiredForeign::dummy() const {
  return dummy_;
}
inline void TestRequiredForeign::set_dummy(::google::protobuf::int32 value) {
  set_has_dummy();
  dummy_ = value;
}

// -------------------------------------------------------------------

// TestForeignNested

// optional .protobuf_unittest.TestAllTypes.NestedMessage foreign_nested = 1;
inline bool TestForeignNested::has_foreign_nested() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestForeignNested::set_has_foreign_nested() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestForeignNested::clear_has_foreign_nested() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestForeignNested::clear_foreign_nested() {
  if (foreign_nested_ != NULL) foreign_nested_->::protobuf_unittest::TestAllTypes_NestedMessage::Clear();
  clear_has_foreign_nested();
}
inline const ::protobuf_unittest::TestAllTypes_NestedMessage& TestForeignNested::foreign_nested() const {
  return foreign_nested_ != NULL ? *foreign_nested_ : *default_instance_->foreign_nested_;
}
inline ::protobuf_unittest::TestAllTypes_NestedMessage* TestForeignNested::mutable_foreign_nested() {
  set_has_foreign_nested();
  if (foreign_nested_ == NULL) foreign_nested_ = new ::protobuf_unittest::TestAllTypes_NestedMessage;
  return foreign_nested_;
}
inline ::protobuf_unittest::TestAllTypes_NestedMessage* TestForeignNested::release_foreign_nested() {
  clear_has_foreign_nested();
  ::protobuf_unittest::TestAllTypes_NestedMessage* temp = foreign_nested_;
  foreign_nested_ = NULL;
  return temp;
}

// -------------------------------------------------------------------

// TestEmptyMessage

// -------------------------------------------------------------------

// TestEmptyMessageWithExtensions

// -------------------------------------------------------------------

// TestMultipleExtensionRanges

// -------------------------------------------------------------------

// TestReallyLargeTagNumber

// optional int32 a = 1;
inline bool TestReallyLargeTagNumber::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestReallyLargeTagNumber::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestReallyLargeTagNumber::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestReallyLargeTagNumber::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestReallyLargeTagNumber::a() const {
  return a_;
}
inline void TestReallyLargeTagNumber::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// optional int32 bb = 268435455;
inline bool TestReallyLargeTagNumber::has_bb() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestReallyLargeTagNumber::set_has_bb() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestReallyLargeTagNumber::clear_has_bb() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestReallyLargeTagNumber::clear_bb() {
  bb_ = 0;
  clear_has_bb();
}
inline ::google::protobuf::int32 TestReallyLargeTagNumber::bb() const {
  return bb_;
}
inline void TestReallyLargeTagNumber::set_bb(::google::protobuf::int32 value) {
  set_has_bb();
  bb_ = value;
}

// -------------------------------------------------------------------

// TestRecursiveMessage

// optional .protobuf_unittest.TestRecursiveMessage a = 1;
inline bool TestRecursiveMessage::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestRecursiveMessage::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestRecursiveMessage::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestRecursiveMessage::clear_a() {
  if (a_ != NULL) a_->::protobuf_unittest::TestRecursiveMessage::Clear();
  clear_has_a();
}
inline const ::protobuf_unittest::TestRecursiveMessage& TestRecursiveMessage::a() const {
  return a_ != NULL ? *a_ : *default_instance_->a_;
}
inline ::protobuf_unittest::TestRecursiveMessage* TestRecursiveMessage::mutable_a() {
  set_has_a();
  if (a_ == NULL) a_ = new ::protobuf_unittest::TestRecursiveMessage;
  return a_;
}
inline ::protobuf_unittest::TestRecursiveMessage* TestRecursiveMessage::release_a() {
  clear_has_a();
  ::protobuf_unittest::TestRecursiveMessage* temp = a_;
  a_ = NULL;
  return temp;
}

// optional int32 i = 2;
inline bool TestRecursiveMessage::has_i() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestRecursiveMessage::set_has_i() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestRecursiveMessage::clear_has_i() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestRecursiveMessage::clear_i() {
  i_ = 0;
  clear_has_i();
}
inline ::google::protobuf::int32 TestRecursiveMessage::i() const {
  return i_;
}
inline void TestRecursiveMessage::set_i(::google::protobuf::int32 value) {
  set_has_i();
  i_ = value;
}

// -------------------------------------------------------------------

// TestMutualRecursionA

// optional .protobuf_unittest.TestMutualRecursionB bb = 1;
inline bool TestMutualRecursionA::has_bb() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestMutualRecursionA::set_has_bb() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestMutualRecursionA::clear_has_bb() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestMutualRecursionA::clear_bb() {
  if (bb_ != NULL) bb_->::protobuf_unittest::TestMutualRecursionB::Clear();
  clear_has_bb();
}
inline const ::protobuf_unittest::TestMutualRecursionB& TestMutualRecursionA::bb() const {
  return bb_ != NULL ? *bb_ : *default_instance_->bb_;
}
inline ::protobuf_unittest::TestMutualRecursionB* TestMutualRecursionA::mutable_bb() {
  set_has_bb();
  if (bb_ == NULL) bb_ = new ::protobuf_unittest::TestMutualRecursionB;
  return bb_;
}
inline ::protobuf_unittest::TestMutualRecursionB* TestMutualRecursionA::release_bb() {
  clear_has_bb();
  ::protobuf_unittest::TestMutualRecursionB* temp = bb_;
  bb_ = NULL;
  return temp;
}

// -------------------------------------------------------------------

// TestMutualRecursionB

// optional .protobuf_unittest.TestMutualRecursionA a = 1;
inline bool TestMutualRecursionB::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestMutualRecursionB::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestMutualRecursionB::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestMutualRecursionB::clear_a() {
  if (a_ != NULL) a_->::protobuf_unittest::TestMutualRecursionA::Clear();
  clear_has_a();
}
inline const ::protobuf_unittest::TestMutualRecursionA& TestMutualRecursionB::a() const {
  return a_ != NULL ? *a_ : *default_instance_->a_;
}
inline ::protobuf_unittest::TestMutualRecursionA* TestMutualRecursionB::mutable_a() {
  set_has_a();
  if (a_ == NULL) a_ = new ::protobuf_unittest::TestMutualRecursionA;
  return a_;
}
inline ::protobuf_unittest::TestMutualRecursionA* TestMutualRecursionB::release_a() {
  clear_has_a();
  ::protobuf_unittest::TestMutualRecursionA* temp = a_;
  a_ = NULL;
  return temp;
}

// optional int32 optional_int32 = 2;
inline bool TestMutualRecursionB::has_optional_int32() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestMutualRecursionB::set_has_optional_int32() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestMutualRecursionB::clear_has_optional_int32() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestMutualRecursionB::clear_optional_int32() {
  optional_int32_ = 0;
  clear_has_optional_int32();
}
inline ::google::protobuf::int32 TestMutualRecursionB::optional_int32() const {
  return optional_int32_;
}
inline void TestMutualRecursionB::set_optional_int32(::google::protobuf::int32 value) {
  set_has_optional_int32();
  optional_int32_ = value;
}

// -------------------------------------------------------------------

// TestDupFieldNumber_Foo

// optional int32 a = 1;
inline bool TestDupFieldNumber_Foo::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestDupFieldNumber_Foo::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestDupFieldNumber_Foo::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestDupFieldNumber_Foo::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestDupFieldNumber_Foo::a() const {
  return a_;
}
inline void TestDupFieldNumber_Foo::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// -------------------------------------------------------------------

// TestDupFieldNumber_Bar

// optional int32 a = 1;
inline bool TestDupFieldNumber_Bar::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestDupFieldNumber_Bar::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestDupFieldNumber_Bar::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestDupFieldNumber_Bar::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestDupFieldNumber_Bar::a() const {
  return a_;
}
inline void TestDupFieldNumber_Bar::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// -------------------------------------------------------------------

// TestDupFieldNumber

// optional int32 a = 1;
inline bool TestDupFieldNumber::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestDupFieldNumber::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestDupFieldNumber::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestDupFieldNumber::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestDupFieldNumber::a() const {
  return a_;
}
inline void TestDupFieldNumber::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
}

// optional group Foo = 2 {
inline bool TestDupFieldNumber::has_foo() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestDupFieldNumber::set_has_foo() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestDupFieldNumber::clear_has_foo() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestDupFieldNumber::clear_foo() {
  if (foo_ != NULL) foo_->::protobuf_unittest::TestDupFieldNumber_Foo::Clear();
  clear_has_foo();
}
inline const ::protobuf_unittest::TestDupFieldNumber_Foo& TestDupFieldNumber::foo() const {
  return foo_ != NULL ? *foo_ : *default_instance_->foo_;
}
inline ::protobuf_unittest::TestDupFieldNumber_Foo* TestDupFieldNumber::mutable_foo() {
  set_has_foo();
  if (foo_ == NULL) foo_ = new ::protobuf_unittest::TestDupFieldNumber_Foo;
  return foo_;
}
inline ::protobuf_unittest::TestDupFieldNumber_Foo* TestDupFieldNumber::release_foo() {
  clear_has_foo();
  ::protobuf_unittest::TestDupFieldNumber_Foo* temp = foo_;
  foo_ = NULL;
  return temp;
}

// optional group Bar = 3 {
inline bool TestDupFieldNumber::has_bar() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestDupFieldNumber::set_has_bar() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestDupFieldNumber::clear_has_bar() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestDupFieldNumber::clear_bar() {
  if (bar_ != NULL) bar_->::protobuf_unittest::TestDupFieldNumber_Bar::Clear();
  clear_has_bar();
}
inline const ::protobuf_unittest::TestDupFieldNumber_Bar& TestDupFieldNumber::bar() const {
  return bar_ != NULL ? *bar_ : *default_instance_->bar_;
}
inline ::protobuf_unittest::TestDupFieldNumber_Bar* TestDupFieldNumber::mutable_bar() {
  set_has_bar();
  if (bar_ == NULL) bar_ = new ::protobuf_unittest::TestDupFieldNumber_Bar;
  return bar_;
}
inline ::protobuf_unittest::TestDupFieldNumber_Bar* TestDupFieldNumber::release_bar() {
  clear_has_bar();
  ::protobuf_unittest::TestDupFieldNumber_Bar* temp = bar_;
  bar_ = NULL;
  return temp;
}

// -------------------------------------------------------------------

// TestNestedMessageHasBits_NestedMessage

// repeated int32 nestedmessage_repeated_int32 = 1;
inline int TestNestedMessageHasBits_NestedMessage::nestedmessage_repeated_int32_size() const {
  return nestedmessage_repeated_int32_.size();
}
inline void TestNestedMessageHasBits_NestedMessage::clear_nestedmessage_repeated_int32() {
  nestedmessage_repeated_int32_.Clear();
}
inline ::google::protobuf::int32 TestNestedMessageHasBits_NestedMessage::nestedmessage_repeated_int32(int index) const {
  return nestedmessage_repeated_int32_.Get(index);
}
inline void TestNestedMessageHasBits_NestedMessage::set_nestedmessage_repeated_int32(int index, ::google::protobuf::int32 value) {
  nestedmessage_repeated_int32_.Set(index, value);
}
inline void TestNestedMessageHasBits_NestedMessage::add_nestedmessage_repeated_int32(::google::protobuf::int32 value) {
  nestedmessage_repeated_int32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestNestedMessageHasBits_NestedMessage::nestedmessage_repeated_int32() const {
  return nestedmessage_repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestNestedMessageHasBits_NestedMessage::mutable_nestedmessage_repeated_int32() {
  return &nestedmessage_repeated_int32_;
}

// repeated .protobuf_unittest.ForeignMessage nestedmessage_repeated_foreignmessage = 2;
inline int TestNestedMessageHasBits_NestedMessage::nestedmessage_repeated_foreignmessage_size() const {
  return nestedmessage_repeated_foreignmessage_.size();
}
inline void TestNestedMessageHasBits_NestedMessage::clear_nestedmessage_repeated_foreignmessage() {
  nestedmessage_repeated_foreignmessage_.Clear();
}
inline const ::protobuf_unittest::ForeignMessage& TestNestedMessageHasBits_NestedMessage::nestedmessage_repeated_foreignmessage(int index) const {
  return nestedmessage_repeated_foreignmessage_.Get(index);
}
inline ::protobuf_unittest::ForeignMessage* TestNestedMessageHasBits_NestedMessage::mutable_nestedmessage_repeated_foreignmessage(int index) {
  return nestedmessage_repeated_foreignmessage_.Mutable(index);
}
inline ::protobuf_unittest::ForeignMessage* TestNestedMessageHasBits_NestedMessage::add_nestedmessage_repeated_foreignmessage() {
  return nestedmessage_repeated_foreignmessage_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >&
TestNestedMessageHasBits_NestedMessage::nestedmessage_repeated_foreignmessage() const {
  return nestedmessage_repeated_foreignmessage_;
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >*
TestNestedMessageHasBits_NestedMessage::mutable_nestedmessage_repeated_foreignmessage() {
  return &nestedmessage_repeated_foreignmessage_;
}

// -------------------------------------------------------------------

// TestNestedMessageHasBits

// optional .protobuf_unittest.TestNestedMessageHasBits.NestedMessage optional_nested_message = 1;
inline bool TestNestedMessageHasBits::has_optional_nested_message() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestNestedMessageHasBits::set_has_optional_nested_message() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestNestedMessageHasBits::clear_has_optional_nested_message() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestNestedMessageHasBits::clear_optional_nested_message() {
  if (optional_nested_message_ != NULL) optional_nested_message_->::protobuf_unittest::TestNestedMessageHasBits_NestedMessage::Clear();
  clear_has_optional_nested_message();
}
inline const ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage& TestNestedMessageHasBits::optional_nested_message() const {
  return optional_nested_message_ != NULL ? *optional_nested_message_ : *default_instance_->optional_nested_message_;
}
inline ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage* TestNestedMessageHasBits::mutable_optional_nested_message() {
  set_has_optional_nested_message();
  if (optional_nested_message_ == NULL) optional_nested_message_ = new ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage;
  return optional_nested_message_;
}
inline ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage* TestNestedMessageHasBits::release_optional_nested_message() {
  clear_has_optional_nested_message();
  ::protobuf_unittest::TestNestedMessageHasBits_NestedMessage* temp = optional_nested_message_;
  optional_nested_message_ = NULL;
  return temp;
}

// -------------------------------------------------------------------

// TestCamelCaseFieldNames

// optional int32 PrimitiveField = 1;
inline bool TestCamelCaseFieldNames::has_primitivefield() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestCamelCaseFieldNames::set_has_primitivefield() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestCamelCaseFieldNames::clear_has_primitivefield() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestCamelCaseFieldNames::clear_primitivefield() {
  primitivefield_ = 0;
  clear_has_primitivefield();
}
inline ::google::protobuf::int32 TestCamelCaseFieldNames::primitivefield() const {
  return primitivefield_;
}
inline void TestCamelCaseFieldNames::set_primitivefield(::google::protobuf::int32 value) {
  set_has_primitivefield();
  primitivefield_ = value;
}

// optional string StringField = 2;
inline bool TestCamelCaseFieldNames::has_stringfield() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestCamelCaseFieldNames::set_has_stringfield() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestCamelCaseFieldNames::clear_has_stringfield() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestCamelCaseFieldNames::clear_stringfield() {
  if (stringfield_ != &::google::protobuf::internal::kEmptyString) {
    stringfield_->clear();
  }
  clear_has_stringfield();
}
inline const ::std::string& TestCamelCaseFieldNames::stringfield() const {
  return *stringfield_;
}
inline void TestCamelCaseFieldNames::set_stringfield(const ::std::string& value) {
  set_has_stringfield();
  if (stringfield_ == &::google::protobuf::internal::kEmptyString) {
    stringfield_ = new ::std::string;
  }
  stringfield_->assign(value);
}
inline void TestCamelCaseFieldNames::set_stringfield(const char* value) {
  set_has_stringfield();
  if (stringfield_ == &::google::protobuf::internal::kEmptyString) {
    stringfield_ = new ::std::string;
  }
  stringfield_->assign(value);
}
inline void TestCamelCaseFieldNames::set_stringfield(const char* value, size_t size) {
  set_has_stringfield();
  if (stringfield_ == &::google::protobuf::internal::kEmptyString) {
    stringfield_ = new ::std::string;
  }
  stringfield_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestCamelCaseFieldNames::mutable_stringfield() {
  set_has_stringfield();
  if (stringfield_ == &::google::protobuf::internal::kEmptyString) {
    stringfield_ = new ::std::string;
  }
  return stringfield_;
}
inline ::std::string* TestCamelCaseFieldNames::release_stringfield() {
  clear_has_stringfield();
  if (stringfield_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = stringfield_;
    stringfield_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// optional .protobuf_unittest.ForeignEnum EnumField = 3;
inline bool TestCamelCaseFieldNames::has_enumfield() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestCamelCaseFieldNames::set_has_enumfield() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestCamelCaseFieldNames::clear_has_enumfield() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestCamelCaseFieldNames::clear_enumfield() {
  enumfield_ = 4;
  clear_has_enumfield();
}
inline protobuf_unittest::ForeignEnum TestCamelCaseFieldNames::enumfield() const {
  return static_cast< protobuf_unittest::ForeignEnum >(enumfield_);
}
inline void TestCamelCaseFieldNames::set_enumfield(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  set_has_enumfield();
  enumfield_ = value;
}

// optional .protobuf_unittest.ForeignMessage MessageField = 4;
inline bool TestCamelCaseFieldNames::has_messagefield() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TestCamelCaseFieldNames::set_has_messagefield() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TestCamelCaseFieldNames::clear_has_messagefield() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TestCamelCaseFieldNames::clear_messagefield() {
  if (messagefield_ != NULL) messagefield_->::protobuf_unittest::ForeignMessage::Clear();
  clear_has_messagefield();
}
inline const ::protobuf_unittest::ForeignMessage& TestCamelCaseFieldNames::messagefield() const {
  return messagefield_ != NULL ? *messagefield_ : *default_instance_->messagefield_;
}
inline ::protobuf_unittest::ForeignMessage* TestCamelCaseFieldNames::mutable_messagefield() {
  set_has_messagefield();
  if (messagefield_ == NULL) messagefield_ = new ::protobuf_unittest::ForeignMessage;
  return messagefield_;
}
inline ::protobuf_unittest::ForeignMessage* TestCamelCaseFieldNames::release_messagefield() {
  clear_has_messagefield();
  ::protobuf_unittest::ForeignMessage* temp = messagefield_;
  messagefield_ = NULL;
  return temp;
}

// optional string StringPieceField = 5 [ctype = STRING_PIECE];
inline bool TestCamelCaseFieldNames::has_stringpiecefield() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TestCamelCaseFieldNames::set_has_stringpiecefield() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TestCamelCaseFieldNames::clear_has_stringpiecefield() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TestCamelCaseFieldNames::clear_stringpiecefield() {
  if (stringpiecefield_ != &::google::protobuf::internal::kEmptyString) {
    stringpiecefield_->clear();
  }
  clear_has_stringpiecefield();
}
inline const ::std::string& TestCamelCaseFieldNames::stringpiecefield() const {
  return *stringpiecefield_;
}
inline void TestCamelCaseFieldNames::set_stringpiecefield(const ::std::string& value) {
  set_has_stringpiecefield();
  if (stringpiecefield_ == &::google::protobuf::internal::kEmptyString) {
    stringpiecefield_ = new ::std::string;
  }
  stringpiecefield_->assign(value);
}
inline void TestCamelCaseFieldNames::set_stringpiecefield(const char* value) {
  set_has_stringpiecefield();
  if (stringpiecefield_ == &::google::protobuf::internal::kEmptyString) {
    stringpiecefield_ = new ::std::string;
  }
  stringpiecefield_->assign(value);
}
inline void TestCamelCaseFieldNames::set_stringpiecefield(const char* value, size_t size) {
  set_has_stringpiecefield();
  if (stringpiecefield_ == &::google::protobuf::internal::kEmptyString) {
    stringpiecefield_ = new ::std::string;
  }
  stringpiecefield_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestCamelCaseFieldNames::mutable_stringpiecefield() {
  set_has_stringpiecefield();
  if (stringpiecefield_ == &::google::protobuf::internal::kEmptyString) {
    stringpiecefield_ = new ::std::string;
  }
  return stringpiecefield_;
}
inline ::std::string* TestCamelCaseFieldNames::release_stringpiecefield() {
  clear_has_stringpiecefield();
  if (stringpiecefield_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = stringpiecefield_;
    stringpiecefield_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// optional string CordField = 6 [ctype = CORD];
inline bool TestCamelCaseFieldNames::has_cordfield() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TestCamelCaseFieldNames::set_has_cordfield() {
  _has_bits_[0] |= 0x00000020u;
}
inline void TestCamelCaseFieldNames::clear_has_cordfield() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void TestCamelCaseFieldNames::clear_cordfield() {
  if (cordfield_ != &::google::protobuf::internal::kEmptyString) {
    cordfield_->clear();
  }
  clear_has_cordfield();
}
inline const ::std::string& TestCamelCaseFieldNames::cordfield() const {
  return *cordfield_;
}
inline void TestCamelCaseFieldNames::set_cordfield(const ::std::string& value) {
  set_has_cordfield();
  if (cordfield_ == &::google::protobuf::internal::kEmptyString) {
    cordfield_ = new ::std::string;
  }
  cordfield_->assign(value);
}
inline void TestCamelCaseFieldNames::set_cordfield(const char* value) {
  set_has_cordfield();
  if (cordfield_ == &::google::protobuf::internal::kEmptyString) {
    cordfield_ = new ::std::string;
  }
  cordfield_->assign(value);
}
inline void TestCamelCaseFieldNames::set_cordfield(const char* value, size_t size) {
  set_has_cordfield();
  if (cordfield_ == &::google::protobuf::internal::kEmptyString) {
    cordfield_ = new ::std::string;
  }
  cordfield_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestCamelCaseFieldNames::mutable_cordfield() {
  set_has_cordfield();
  if (cordfield_ == &::google::protobuf::internal::kEmptyString) {
    cordfield_ = new ::std::string;
  }
  return cordfield_;
}
inline ::std::string* TestCamelCaseFieldNames::release_cordfield() {
  clear_has_cordfield();
  if (cordfield_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = cordfield_;
    cordfield_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// repeated int32 RepeatedPrimitiveField = 7;
inline int TestCamelCaseFieldNames::repeatedprimitivefield_size() const {
  return repeatedprimitivefield_.size();
}
inline void TestCamelCaseFieldNames::clear_repeatedprimitivefield() {
  repeatedprimitivefield_.Clear();
}
inline ::google::protobuf::int32 TestCamelCaseFieldNames::repeatedprimitivefield(int index) const {
  return repeatedprimitivefield_.Get(index);
}
inline void TestCamelCaseFieldNames::set_repeatedprimitivefield(int index, ::google::protobuf::int32 value) {
  repeatedprimitivefield_.Set(index, value);
}
inline void TestCamelCaseFieldNames::add_repeatedprimitivefield(::google::protobuf::int32 value) {
  repeatedprimitivefield_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestCamelCaseFieldNames::repeatedprimitivefield() const {
  return repeatedprimitivefield_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestCamelCaseFieldNames::mutable_repeatedprimitivefield() {
  return &repeatedprimitivefield_;
}

// repeated string RepeatedStringField = 8;
inline int TestCamelCaseFieldNames::repeatedstringfield_size() const {
  return repeatedstringfield_.size();
}
inline void TestCamelCaseFieldNames::clear_repeatedstringfield() {
  repeatedstringfield_.Clear();
}
inline const ::std::string& TestCamelCaseFieldNames::repeatedstringfield(int index) const {
  return repeatedstringfield_.Get(index);
}
inline ::std::string* TestCamelCaseFieldNames::mutable_repeatedstringfield(int index) {
  return repeatedstringfield_.Mutable(index);
}
inline void TestCamelCaseFieldNames::set_repeatedstringfield(int index, const ::std::string& value) {
  repeatedstringfield_.Mutable(index)->assign(value);
}
inline void TestCamelCaseFieldNames::set_repeatedstringfield(int index, const char* value) {
  repeatedstringfield_.Mutable(index)->assign(value);
}
inline void TestCamelCaseFieldNames::set_repeatedstringfield(int index, const char* value, size_t size) {
  repeatedstringfield_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestCamelCaseFieldNames::add_repeatedstringfield() {
  return repeatedstringfield_.Add();
}
inline void TestCamelCaseFieldNames::add_repeatedstringfield(const ::std::string& value) {
  repeatedstringfield_.Add()->assign(value);
}
inline void TestCamelCaseFieldNames::add_repeatedstringfield(const char* value) {
  repeatedstringfield_.Add()->assign(value);
}
inline void TestCamelCaseFieldNames::add_repeatedstringfield(const char* value, size_t size) {
  repeatedstringfield_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestCamelCaseFieldNames::repeatedstringfield() const {
  return repeatedstringfield_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestCamelCaseFieldNames::mutable_repeatedstringfield() {
  return &repeatedstringfield_;
}

// repeated .protobuf_unittest.ForeignEnum RepeatedEnumField = 9;
inline int TestCamelCaseFieldNames::repeatedenumfield_size() const {
  return repeatedenumfield_.size();
}
inline void TestCamelCaseFieldNames::clear_repeatedenumfield() {
  repeatedenumfield_.Clear();
}
inline protobuf_unittest::ForeignEnum TestCamelCaseFieldNames::repeatedenumfield(int index) const {
  return static_cast< protobuf_unittest::ForeignEnum >(repeatedenumfield_.Get(index));
}
inline void TestCamelCaseFieldNames::set_repeatedenumfield(int index, protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  repeatedenumfield_.Set(index, value);
}
inline void TestCamelCaseFieldNames::add_repeatedenumfield(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  repeatedenumfield_.Add(value);
}
inline const ::google::protobuf::RepeatedField<int>&
TestCamelCaseFieldNames::repeatedenumfield() const {
  return repeatedenumfield_;
}
inline ::google::protobuf::RepeatedField<int>*
TestCamelCaseFieldNames::mutable_repeatedenumfield() {
  return &repeatedenumfield_;
}

// repeated .protobuf_unittest.ForeignMessage RepeatedMessageField = 10;
inline int TestCamelCaseFieldNames::repeatedmessagefield_size() const {
  return repeatedmessagefield_.size();
}
inline void TestCamelCaseFieldNames::clear_repeatedmessagefield() {
  repeatedmessagefield_.Clear();
}
inline const ::protobuf_unittest::ForeignMessage& TestCamelCaseFieldNames::repeatedmessagefield(int index) const {
  return repeatedmessagefield_.Get(index);
}
inline ::protobuf_unittest::ForeignMessage* TestCamelCaseFieldNames::mutable_repeatedmessagefield(int index) {
  return repeatedmessagefield_.Mutable(index);
}
inline ::protobuf_unittest::ForeignMessage* TestCamelCaseFieldNames::add_repeatedmessagefield() {
  return repeatedmessagefield_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >&
TestCamelCaseFieldNames::repeatedmessagefield() const {
  return repeatedmessagefield_;
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessage >*
TestCamelCaseFieldNames::mutable_repeatedmessagefield() {
  return &repeatedmessagefield_;
}

// repeated string RepeatedStringPieceField = 11 [ctype = STRING_PIECE];
inline int TestCamelCaseFieldNames::repeatedstringpiecefield_size() const {
  return repeatedstringpiecefield_.size();
}
inline void TestCamelCaseFieldNames::clear_repeatedstringpiecefield() {
  repeatedstringpiecefield_.Clear();
}
inline const ::std::string& TestCamelCaseFieldNames::repeatedstringpiecefield(int index) const {
  return repeatedstringpiecefield_.Get(index);
}
inline ::std::string* TestCamelCaseFieldNames::mutable_repeatedstringpiecefield(int index) {
  return repeatedstringpiecefield_.Mutable(index);
}
inline void TestCamelCaseFieldNames::set_repeatedstringpiecefield(int index, const ::std::string& value) {
  repeatedstringpiecefield_.Mutable(index)->assign(value);
}
inline void TestCamelCaseFieldNames::set_repeatedstringpiecefield(int index, const char* value) {
  repeatedstringpiecefield_.Mutable(index)->assign(value);
}
inline void TestCamelCaseFieldNames::set_repeatedstringpiecefield(int index, const char* value, size_t size) {
  repeatedstringpiecefield_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestCamelCaseFieldNames::add_repeatedstringpiecefield() {
  return repeatedstringpiecefield_.Add();
}
inline void TestCamelCaseFieldNames::add_repeatedstringpiecefield(const ::std::string& value) {
  repeatedstringpiecefield_.Add()->assign(value);
}
inline void TestCamelCaseFieldNames::add_repeatedstringpiecefield(const char* value) {
  repeatedstringpiecefield_.Add()->assign(value);
}
inline void TestCamelCaseFieldNames::add_repeatedstringpiecefield(const char* value, size_t size) {
  repeatedstringpiecefield_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestCamelCaseFieldNames::repeatedstringpiecefield() const {
  return repeatedstringpiecefield_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestCamelCaseFieldNames::mutable_repeatedstringpiecefield() {
  return &repeatedstringpiecefield_;
}

// repeated string RepeatedCordField = 12 [ctype = CORD];
inline int TestCamelCaseFieldNames::repeatedcordfield_size() const {
  return repeatedcordfield_.size();
}
inline void TestCamelCaseFieldNames::clear_repeatedcordfield() {
  repeatedcordfield_.Clear();
}
inline const ::std::string& TestCamelCaseFieldNames::repeatedcordfield(int index) const {
  return repeatedcordfield_.Get(index);
}
inline ::std::string* TestCamelCaseFieldNames::mutable_repeatedcordfield(int index) {
  return repeatedcordfield_.Mutable(index);
}
inline void TestCamelCaseFieldNames::set_repeatedcordfield(int index, const ::std::string& value) {
  repeatedcordfield_.Mutable(index)->assign(value);
}
inline void TestCamelCaseFieldNames::set_repeatedcordfield(int index, const char* value) {
  repeatedcordfield_.Mutable(index)->assign(value);
}
inline void TestCamelCaseFieldNames::set_repeatedcordfield(int index, const char* value, size_t size) {
  repeatedcordfield_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestCamelCaseFieldNames::add_repeatedcordfield() {
  return repeatedcordfield_.Add();
}
inline void TestCamelCaseFieldNames::add_repeatedcordfield(const ::std::string& value) {
  repeatedcordfield_.Add()->assign(value);
}
inline void TestCamelCaseFieldNames::add_repeatedcordfield(const char* value) {
  repeatedcordfield_.Add()->assign(value);
}
inline void TestCamelCaseFieldNames::add_repeatedcordfield(const char* value, size_t size) {
  repeatedcordfield_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestCamelCaseFieldNames::repeatedcordfield() const {
  return repeatedcordfield_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestCamelCaseFieldNames::mutable_repeatedcordfield() {
  return &repeatedcordfield_;
}

// -------------------------------------------------------------------

// TestFieldOrderings

// optional string my_string = 11;
inline bool TestFieldOrderings::has_my_string() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestFieldOrderings::set_has_my_string() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestFieldOrderings::clear_has_my_string() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestFieldOrderings::clear_my_string() {
  if (my_string_ != &::google::protobuf::internal::kEmptyString) {
    my_string_->clear();
  }
  clear_has_my_string();
}
inline const ::std::string& TestFieldOrderings::my_string() const {
  return *my_string_;
}
inline void TestFieldOrderings::set_my_string(const ::std::string& value) {
  set_has_my_string();
  if (my_string_ == &::google::protobuf::internal::kEmptyString) {
    my_string_ = new ::std::string;
  }
  my_string_->assign(value);
}
inline void TestFieldOrderings::set_my_string(const char* value) {
  set_has_my_string();
  if (my_string_ == &::google::protobuf::internal::kEmptyString) {
    my_string_ = new ::std::string;
  }
  my_string_->assign(value);
}
inline void TestFieldOrderings::set_my_string(const char* value, size_t size) {
  set_has_my_string();
  if (my_string_ == &::google::protobuf::internal::kEmptyString) {
    my_string_ = new ::std::string;
  }
  my_string_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestFieldOrderings::mutable_my_string() {
  set_has_my_string();
  if (my_string_ == &::google::protobuf::internal::kEmptyString) {
    my_string_ = new ::std::string;
  }
  return my_string_;
}
inline ::std::string* TestFieldOrderings::release_my_string() {
  clear_has_my_string();
  if (my_string_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = my_string_;
    my_string_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// optional int64 my_int = 1;
inline bool TestFieldOrderings::has_my_int() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestFieldOrderings::set_has_my_int() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestFieldOrderings::clear_has_my_int() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestFieldOrderings::clear_my_int() {
  my_int_ = GOOGLE_LONGLONG(0);
  clear_has_my_int();
}
inline ::google::protobuf::int64 TestFieldOrderings::my_int() const {
  return my_int_;
}
inline void TestFieldOrderings::set_my_int(::google::protobuf::int64 value) {
  set_has_my_int();
  my_int_ = value;
}

// optional float my_float = 101;
inline bool TestFieldOrderings::has_my_float() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestFieldOrderings::set_has_my_float() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestFieldOrderings::clear_has_my_float() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestFieldOrderings::clear_my_float() {
  my_float_ = 0;
  clear_has_my_float();
}
inline float TestFieldOrderings::my_float() const {
  return my_float_;
}
inline void TestFieldOrderings::set_my_float(float value) {
  set_has_my_float();
  my_float_ = value;
}

// -------------------------------------------------------------------

// TestExtremeDefaultValues

// optional bytes escaped_bytes = 1 [default = "\000\001\007\010\014\n\r\t\013\\\'\"\376"];
inline bool TestExtremeDefaultValues::has_escaped_bytes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestExtremeDefaultValues::set_has_escaped_bytes() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestExtremeDefaultValues::clear_has_escaped_bytes() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestExtremeDefaultValues::clear_escaped_bytes() {
  if (escaped_bytes_ != &_default_escaped_bytes_) {
    escaped_bytes_->assign(_default_escaped_bytes_);
  }
  clear_has_escaped_bytes();
}
inline const ::std::string& TestExtremeDefaultValues::escaped_bytes() const {
  return *escaped_bytes_;
}
inline void TestExtremeDefaultValues::set_escaped_bytes(const ::std::string& value) {
  set_has_escaped_bytes();
  if (escaped_bytes_ == &_default_escaped_bytes_) {
    escaped_bytes_ = new ::std::string;
  }
  escaped_bytes_->assign(value);
}
inline void TestExtremeDefaultValues::set_escaped_bytes(const char* value) {
  set_has_escaped_bytes();
  if (escaped_bytes_ == &_default_escaped_bytes_) {
    escaped_bytes_ = new ::std::string;
  }
  escaped_bytes_->assign(value);
}
inline void TestExtremeDefaultValues::set_escaped_bytes(const void* value, size_t size) {
  set_has_escaped_bytes();
  if (escaped_bytes_ == &_default_escaped_bytes_) {
    escaped_bytes_ = new ::std::string;
  }
  escaped_bytes_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestExtremeDefaultValues::mutable_escaped_bytes() {
  set_has_escaped_bytes();
  if (escaped_bytes_ == &_default_escaped_bytes_) {
    escaped_bytes_ = new ::std::string(_default_escaped_bytes_);
  }
  return escaped_bytes_;
}
inline ::std::string* TestExtremeDefaultValues::release_escaped_bytes() {
  clear_has_escaped_bytes();
  if (escaped_bytes_ == &_default_escaped_bytes_) {
    return NULL;
  } else {
    ::std::string* temp = escaped_bytes_;
    escaped_bytes_ = const_cast< ::std::string*>(&_default_escaped_bytes_);
    return temp;
  }
}

// optional uint32 large_uint32 = 2 [default = 4294967295];
inline bool TestExtremeDefaultValues::has_large_uint32() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestExtremeDefaultValues::set_has_large_uint32() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestExtremeDefaultValues::clear_has_large_uint32() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestExtremeDefaultValues::clear_large_uint32() {
  large_uint32_ = 4294967295u;
  clear_has_large_uint32();
}
inline ::google::protobuf::uint32 TestExtremeDefaultValues::large_uint32() const {
  return large_uint32_;
}
inline void TestExtremeDefaultValues::set_large_uint32(::google::protobuf::uint32 value) {
  set_has_large_uint32();
  large_uint32_ = value;
}

// optional uint64 large_uint64 = 3 [default = 18446744073709551615];
inline bool TestExtremeDefaultValues::has_large_uint64() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestExtremeDefaultValues::set_has_large_uint64() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestExtremeDefaultValues::clear_has_large_uint64() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestExtremeDefaultValues::clear_large_uint64() {
  large_uint64_ = GOOGLE_ULONGLONG(18446744073709551615);
  clear_has_large_uint64();
}
inline ::google::protobuf::uint64 TestExtremeDefaultValues::large_uint64() const {
  return large_uint64_;
}
inline void TestExtremeDefaultValues::set_large_uint64(::google::protobuf::uint64 value) {
  set_has_large_uint64();
  large_uint64_ = value;
}

// optional int32 small_int32 = 4 [default = -2147483647];
inline bool TestExtremeDefaultValues::has_small_int32() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TestExtremeDefaultValues::set_has_small_int32() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TestExtremeDefaultValues::clear_has_small_int32() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TestExtremeDefaultValues::clear_small_int32() {
  small_int32_ = -2147483647;
  clear_has_small_int32();
}
inline ::google::protobuf::int32 TestExtremeDefaultValues::small_int32() const {
  return small_int32_;
}
inline void TestExtremeDefaultValues::set_small_int32(::google::protobuf::int32 value) {
  set_has_small_int32();
  small_int32_ = value;
}

// optional int64 small_int64 = 5 [default = -9223372036854775807];
inline bool TestExtremeDefaultValues::has_small_int64() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TestExtremeDefaultValues::set_has_small_int64() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TestExtremeDefaultValues::clear_has_small_int64() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TestExtremeDefaultValues::clear_small_int64() {
  small_int64_ = GOOGLE_LONGLONG(-9223372036854775807);
  clear_has_small_int64();
}
inline ::google::protobuf::int64 TestExtremeDefaultValues::small_int64() const {
  return small_int64_;
}
inline void TestExtremeDefaultValues::set_small_int64(::google::protobuf::int64 value) {
  set_has_small_int64();
  small_int64_ = value;
}

// optional string utf8_string = 6 [default = "\341\210\264"];
inline bool TestExtremeDefaultValues::has_utf8_string() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TestExtremeDefaultValues::set_has_utf8_string() {
  _has_bits_[0] |= 0x00000020u;
}
inline void TestExtremeDefaultValues::clear_has_utf8_string() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void TestExtremeDefaultValues::clear_utf8_string() {
  if (utf8_string_ != &_default_utf8_string_) {
    utf8_string_->assign(_default_utf8_string_);
  }
  clear_has_utf8_string();
}
inline const ::std::string& TestExtremeDefaultValues::utf8_string() const {
  return *utf8_string_;
}
inline void TestExtremeDefaultValues::set_utf8_string(const ::std::string& value) {
  set_has_utf8_string();
  if (utf8_string_ == &_default_utf8_string_) {
    utf8_string_ = new ::std::string;
  }
  utf8_string_->assign(value);
}
inline void TestExtremeDefaultValues::set_utf8_string(const char* value) {
  set_has_utf8_string();
  if (utf8_string_ == &_default_utf8_string_) {
    utf8_string_ = new ::std::string;
  }
  utf8_string_->assign(value);
}
inline void TestExtremeDefaultValues::set_utf8_string(const char* value, size_t size) {
  set_has_utf8_string();
  if (utf8_string_ == &_default_utf8_string_) {
    utf8_string_ = new ::std::string;
  }
  utf8_string_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestExtremeDefaultValues::mutable_utf8_string() {
  set_has_utf8_string();
  if (utf8_string_ == &_default_utf8_string_) {
    utf8_string_ = new ::std::string(_default_utf8_string_);
  }
  return utf8_string_;
}
inline ::std::string* TestExtremeDefaultValues::release_utf8_string() {
  clear_has_utf8_string();
  if (utf8_string_ == &_default_utf8_string_) {
    return NULL;
  } else {
    ::std::string* temp = utf8_string_;
    utf8_string_ = const_cast< ::std::string*>(&_default_utf8_string_);
    return temp;
  }
}

// optional float zero_float = 7 [default = 0];
inline bool TestExtremeDefaultValues::has_zero_float() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void TestExtremeDefaultValues::set_has_zero_float() {
  _has_bits_[0] |= 0x00000040u;
}
inline void TestExtremeDefaultValues::clear_has_zero_float() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void TestExtremeDefaultValues::clear_zero_float() {
  zero_float_ = 0;
  clear_has_zero_float();
}
inline float TestExtremeDefaultValues::zero_float() const {
  return zero_float_;
}
inline void TestExtremeDefaultValues::set_zero_float(float value) {
  set_has_zero_float();
  zero_float_ = value;
}

// optional float one_float = 8 [default = 1];
inline bool TestExtremeDefaultValues::has_one_float() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void TestExtremeDefaultValues::set_has_one_float() {
  _has_bits_[0] |= 0x00000080u;
}
inline void TestExtremeDefaultValues::clear_has_one_float() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void TestExtremeDefaultValues::clear_one_float() {
  one_float_ = 1;
  clear_has_one_float();
}
inline float TestExtremeDefaultValues::one_float() const {
  return one_float_;
}
inline void TestExtremeDefaultValues::set_one_float(float value) {
  set_has_one_float();
  one_float_ = value;
}

// optional float small_float = 9 [default = 1.5];
inline bool TestExtremeDefaultValues::has_small_float() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void TestExtremeDefaultValues::set_has_small_float() {
  _has_bits_[0] |= 0x00000100u;
}
inline void TestExtremeDefaultValues::clear_has_small_float() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void TestExtremeDefaultValues::clear_small_float() {
  small_float_ = 1.5f;
  clear_has_small_float();
}
inline float TestExtremeDefaultValues::small_float() const {
  return small_float_;
}
inline void TestExtremeDefaultValues::set_small_float(float value) {
  set_has_small_float();
  small_float_ = value;
}

// optional float negative_one_float = 10 [default = -1];
inline bool TestExtremeDefaultValues::has_negative_one_float() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void TestExtremeDefaultValues::set_has_negative_one_float() {
  _has_bits_[0] |= 0x00000200u;
}
inline void TestExtremeDefaultValues::clear_has_negative_one_float() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void TestExtremeDefaultValues::clear_negative_one_float() {
  negative_one_float_ = -1;
  clear_has_negative_one_float();
}
inline float TestExtremeDefaultValues::negative_one_float() const {
  return negative_one_float_;
}
inline void TestExtremeDefaultValues::set_negative_one_float(float value) {
  set_has_negative_one_float();
  negative_one_float_ = value;
}

// optional float negative_float = 11 [default = -1.5];
inline bool TestExtremeDefaultValues::has_negative_float() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void TestExtremeDefaultValues::set_has_negative_float() {
  _has_bits_[0] |= 0x00000400u;
}
inline void TestExtremeDefaultValues::clear_has_negative_float() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void TestExtremeDefaultValues::clear_negative_float() {
  negative_float_ = -1.5f;
  clear_has_negative_float();
}
inline float TestExtremeDefaultValues::negative_float() const {
  return negative_float_;
}
inline void TestExtremeDefaultValues::set_negative_float(float value) {
  set_has_negative_float();
  negative_float_ = value;
}

// optional float large_float = 12 [default = 2e+08];
inline bool TestExtremeDefaultValues::has_large_float() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void TestExtremeDefaultValues::set_has_large_float() {
  _has_bits_[0] |= 0x00000800u;
}
inline void TestExtremeDefaultValues::clear_has_large_float() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void TestExtremeDefaultValues::clear_large_float() {
  large_float_ = 2e+08f;
  clear_has_large_float();
}
inline float TestExtremeDefaultValues::large_float() const {
  return large_float_;
}
inline void TestExtremeDefaultValues::set_large_float(float value) {
  set_has_large_float();
  large_float_ = value;
}

// optional float small_negative_float = 13 [default = -8e-28];
inline bool TestExtremeDefaultValues::has_small_negative_float() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_small_negative_float() {
  _has_bits_[0] |= 0x00001000u;
}
inline void TestExtremeDefaultValues::clear_has_small_negative_float() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void TestExtremeDefaultValues::clear_small_negative_float() {
  small_negative_float_ = -8e-28f;
  clear_has_small_negative_float();
}
inline float TestExtremeDefaultValues::small_negative_float() const {
  return small_negative_float_;
}
inline void TestExtremeDefaultValues::set_small_negative_float(float value) {
  set_has_small_negative_float();
  small_negative_float_ = value;
}

// optional double inf_double = 14 [default = inf];
inline bool TestExtremeDefaultValues::has_inf_double() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_inf_double() {
  _has_bits_[0] |= 0x00002000u;
}
inline void TestExtremeDefaultValues::clear_has_inf_double() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void TestExtremeDefaultValues::clear_inf_double() {
  inf_double_ = ::google::protobuf::internal::Infinity();
  clear_has_inf_double();
}
inline double TestExtremeDefaultValues::inf_double() const {
  return inf_double_;
}
inline void TestExtremeDefaultValues::set_inf_double(double value) {
  set_has_inf_double();
  inf_double_ = value;
}

// optional double neg_inf_double = 15 [default = -inf];
inline bool TestExtremeDefaultValues::has_neg_inf_double() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_neg_inf_double() {
  _has_bits_[0] |= 0x00004000u;
}
inline void TestExtremeDefaultValues::clear_has_neg_inf_double() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void TestExtremeDefaultValues::clear_neg_inf_double() {
  neg_inf_double_ = -::google::protobuf::internal::Infinity();
  clear_has_neg_inf_double();
}
inline double TestExtremeDefaultValues::neg_inf_double() const {
  return neg_inf_double_;
}
inline void TestExtremeDefaultValues::set_neg_inf_double(double value) {
  set_has_neg_inf_double();
  neg_inf_double_ = value;
}

// optional double nan_double = 16 [default = nan];
inline bool TestExtremeDefaultValues::has_nan_double() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_nan_double() {
  _has_bits_[0] |= 0x00008000u;
}
inline void TestExtremeDefaultValues::clear_has_nan_double() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void TestExtremeDefaultValues::clear_nan_double() {
  nan_double_ = ::google::protobuf::internal::NaN();
  clear_has_nan_double();
}
inline double TestExtremeDefaultValues::nan_double() const {
  return nan_double_;
}
inline void TestExtremeDefaultValues::set_nan_double(double value) {
  set_has_nan_double();
  nan_double_ = value;
}

// optional float inf_float = 17 [default = inf];
inline bool TestExtremeDefaultValues::has_inf_float() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_inf_float() {
  _has_bits_[0] |= 0x00010000u;
}
inline void TestExtremeDefaultValues::clear_has_inf_float() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void TestExtremeDefaultValues::clear_inf_float() {
  inf_float_ = static_cast<float>(::google::protobuf::internal::Infinity());
  clear_has_inf_float();
}
inline float TestExtremeDefaultValues::inf_float() const {
  return inf_float_;
}
inline void TestExtremeDefaultValues::set_inf_float(float value) {
  set_has_inf_float();
  inf_float_ = value;
}

// optional float neg_inf_float = 18 [default = -inf];
inline bool TestExtremeDefaultValues::has_neg_inf_float() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_neg_inf_float() {
  _has_bits_[0] |= 0x00020000u;
}
inline void TestExtremeDefaultValues::clear_has_neg_inf_float() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void TestExtremeDefaultValues::clear_neg_inf_float() {
  neg_inf_float_ = static_cast<float>(-::google::protobuf::internal::Infinity());
  clear_has_neg_inf_float();
}
inline float TestExtremeDefaultValues::neg_inf_float() const {
  return neg_inf_float_;
}
inline void TestExtremeDefaultValues::set_neg_inf_float(float value) {
  set_has_neg_inf_float();
  neg_inf_float_ = value;
}

// optional float nan_float = 19 [default = nan];
inline bool TestExtremeDefaultValues::has_nan_float() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_nan_float() {
  _has_bits_[0] |= 0x00040000u;
}
inline void TestExtremeDefaultValues::clear_has_nan_float() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void TestExtremeDefaultValues::clear_nan_float() {
  nan_float_ = static_cast<float>(::google::protobuf::internal::NaN());
  clear_has_nan_float();
}
inline float TestExtremeDefaultValues::nan_float() const {
  return nan_float_;
}
inline void TestExtremeDefaultValues::set_nan_float(float value) {
  set_has_nan_float();
  nan_float_ = value;
}

// optional string cpp_trigraph = 20 [default = "? ? ?? ?? ??? ??/ ??-"];
inline bool TestExtremeDefaultValues::has_cpp_trigraph() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void TestExtremeDefaultValues::set_has_cpp_trigraph() {
  _has_bits_[0] |= 0x00080000u;
}
inline void TestExtremeDefaultValues::clear_has_cpp_trigraph() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void TestExtremeDefaultValues::clear_cpp_trigraph() {
  if (cpp_trigraph_ != &_default_cpp_trigraph_) {
    cpp_trigraph_->assign(_default_cpp_trigraph_);
  }
  clear_has_cpp_trigraph();
}
inline const ::std::string& TestExtremeDefaultValues::cpp_trigraph() const {
  return *cpp_trigraph_;
}
inline void TestExtremeDefaultValues::set_cpp_trigraph(const ::std::string& value) {
  set_has_cpp_trigraph();
  if (cpp_trigraph_ == &_default_cpp_trigraph_) {
    cpp_trigraph_ = new ::std::string;
  }
  cpp_trigraph_->assign(value);
}
inline void TestExtremeDefaultValues::set_cpp_trigraph(const char* value) {
  set_has_cpp_trigraph();
  if (cpp_trigraph_ == &_default_cpp_trigraph_) {
    cpp_trigraph_ = new ::std::string;
  }
  cpp_trigraph_->assign(value);
}
inline void TestExtremeDefaultValues::set_cpp_trigraph(const char* value, size_t size) {
  set_has_cpp_trigraph();
  if (cpp_trigraph_ == &_default_cpp_trigraph_) {
    cpp_trigraph_ = new ::std::string;
  }
  cpp_trigraph_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestExtremeDefaultValues::mutable_cpp_trigraph() {
  set_has_cpp_trigraph();
  if (cpp_trigraph_ == &_default_cpp_trigraph_) {
    cpp_trigraph_ = new ::std::string(_default_cpp_trigraph_);
  }
  return cpp_trigraph_;
}
inline ::std::string* TestExtremeDefaultValues::release_cpp_trigraph() {
  clear_has_cpp_trigraph();
  if (cpp_trigraph_ == &_default_cpp_trigraph_) {
    return NULL;
  } else {
    ::std::string* temp = cpp_trigraph_;
    cpp_trigraph_ = const_cast< ::std::string*>(&_default_cpp_trigraph_);
    return temp;
  }
}

// -------------------------------------------------------------------

// SparseEnumMessage

// optional .protobuf_unittest.TestSparseEnum sparse_enum = 1;
inline bool SparseEnumMessage::has_sparse_enum() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SparseEnumMessage::set_has_sparse_enum() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SparseEnumMessage::clear_has_sparse_enum() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SparseEnumMessage::clear_sparse_enum() {
  sparse_enum_ = 123;
  clear_has_sparse_enum();
}
inline protobuf_unittest::TestSparseEnum SparseEnumMessage::sparse_enum() const {
  return static_cast< protobuf_unittest::TestSparseEnum >(sparse_enum_);
}
inline void SparseEnumMessage::set_sparse_enum(protobuf_unittest::TestSparseEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::TestSparseEnum_IsValid(value));
  set_has_sparse_enum();
  sparse_enum_ = value;
}

// -------------------------------------------------------------------

// OneString

// optional string data = 1;
inline bool OneString::has_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void OneString::set_has_data() {
  _has_bits_[0] |= 0x00000001u;
}
inline void OneString::clear_has_data() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void OneString::clear_data() {
  if (data_ != &::google::protobuf::internal::kEmptyString) {
    data_->clear();
  }
  clear_has_data();
}
inline const ::std::string& OneString::data() const {
  return *data_;
}
inline void OneString::set_data(const ::std::string& value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  data_->assign(value);
}
inline void OneString::set_data(const char* value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  data_->assign(value);
}
inline void OneString::set_data(const char* value, size_t size) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  data_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* OneString::mutable_data() {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  return data_;
}
inline ::std::string* OneString::release_data() {
  clear_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = data_;
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// -------------------------------------------------------------------

// OneBytes

// optional bytes data = 1;
inline bool OneBytes::has_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void OneBytes::set_has_data() {
  _has_bits_[0] |= 0x00000001u;
}
inline void OneBytes::clear_has_data() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void OneBytes::clear_data() {
  if (data_ != &::google::protobuf::internal::kEmptyString) {
    data_->clear();
  }
  clear_has_data();
}
inline const ::std::string& OneBytes::data() const {
  return *data_;
}
inline void OneBytes::set_data(const ::std::string& value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  data_->assign(value);
}
inline void OneBytes::set_data(const char* value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  data_->assign(value);
}
inline void OneBytes::set_data(const void* value, size_t size) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  data_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* OneBytes::mutable_data() {
  set_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    data_ = new ::std::string;
  }
  return data_;
}
inline ::std::string* OneBytes::release_data() {
  clear_has_data();
  if (data_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = data_;
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}

// -------------------------------------------------------------------

// TestPackedTypes

// repeated int32 packed_int32 = 90 [packed = true];
inline int TestPackedTypes::packed_int32_size() const {
  return packed_int32_.size();
}
inline void TestPackedTypes::clear_packed_int32() {
  packed_int32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypes::packed_int32(int index) const {
  return packed_int32_.Get(index);
}
inline void TestPackedTypes::set_packed_int32(int index, ::google::protobuf::int32 value) {
  packed_int32_.Set(index, value);
}
inline void TestPackedTypes::add_packed_int32(::google::protobuf::int32 value) {
  packed_int32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypes::packed_int32() const {
  return packed_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypes::mutable_packed_int32() {
  return &packed_int32_;
}

// repeated int64 packed_int64 = 91 [packed = true];
inline int TestPackedTypes::packed_int64_size() const {
  return packed_int64_.size();
}
inline void TestPackedTypes::clear_packed_int64() {
  packed_int64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypes::packed_int64(int index) const {
  return packed_int64_.Get(index);
}
inline void TestPackedTypes::set_packed_int64(int index, ::google::protobuf::int64 value) {
  packed_int64_.Set(index, value);
}
inline void TestPackedTypes::add_packed_int64(::google::protobuf::int64 value) {
  packed_int64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypes::packed_int64() const {
  return packed_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypes::mutable_packed_int64() {
  return &packed_int64_;
}

// repeated uint32 packed_uint32 = 92 [packed = true];
inline int TestPackedTypes::packed_uint32_size() const {
  return packed_uint32_.size();
}
inline void TestPackedTypes::clear_packed_uint32() {
  packed_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestPackedTypes::packed_uint32(int index) const {
  return packed_uint32_.Get(index);
}
inline void TestPackedTypes::set_packed_uint32(int index, ::google::protobuf::uint32 value) {
  packed_uint32_.Set(index, value);
}
inline void TestPackedTypes::add_packed_uint32(::google::protobuf::uint32 value) {
  packed_uint32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestPackedTypes::packed_uint32() const {
  return packed_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestPackedTypes::mutable_packed_uint32() {
  return &packed_uint32_;
}

// repeated uint64 packed_uint64 = 93 [packed = true];
inline int TestPackedTypes::packed_uint64_size() const {
  return packed_uint64_.size();
}
inline void TestPackedTypes::clear_packed_uint64() {
  packed_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestPackedTypes::packed_uint64(int index) const {
  return packed_uint64_.Get(index);
}
inline void TestPackedTypes::set_packed_uint64(int index, ::google::protobuf::uint64 value) {
  packed_uint64_.Set(index, value);
}
inline void TestPackedTypes::add_packed_uint64(::google::protobuf::uint64 value) {
  packed_uint64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestPackedTypes::packed_uint64() const {
  return packed_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestPackedTypes::mutable_packed_uint64() {
  return &packed_uint64_;
}

// repeated sint32 packed_sint32 = 94 [packed = true];
inline int TestPackedTypes::packed_sint32_size() const {
  return packed_sint32_.size();
}
inline void TestPackedTypes::clear_packed_sint32() {
  packed_sint32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypes::packed_sint32(int index) const {
  return packed_sint32_.Get(index);
}
inline void TestPackedTypes::set_packed_sint32(int index, ::google::protobuf::int32 value) {
  packed_sint32_.Set(index, value);
}
inline void TestPackedTypes::add_packed_sint32(::google::protobuf::int32 value) {
  packed_sint32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypes::packed_sint32() const {
  return packed_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypes::mutable_packed_sint32() {
  return &packed_sint32_;
}

// repeated sint64 packed_sint64 = 95 [packed = true];
inline int TestPackedTypes::packed_sint64_size() const {
  return packed_sint64_.size();
}
inline void TestPackedTypes::clear_packed_sint64() {
  packed_sint64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypes::packed_sint64(int index) const {
  return packed_sint64_.Get(index);
}
inline void TestPackedTypes::set_packed_sint64(int index, ::google::protobuf::int64 value) {
  packed_sint64_.Set(index, value);
}
inline void TestPackedTypes::add_packed_sint64(::google::protobuf::int64 value) {
  packed_sint64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypes::packed_sint64() const {
  return packed_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypes::mutable_packed_sint64() {
  return &packed_sint64_;
}

// repeated fixed32 packed_fixed32 = 96 [packed = true];
inline int TestPackedTypes::packed_fixed32_size() const {
  return packed_fixed32_.size();
}
inline void TestPackedTypes::clear_packed_fixed32() {
  packed_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestPackedTypes::packed_fixed32(int index) const {
  return packed_fixed32_.Get(index);
}
inline void TestPackedTypes::set_packed_fixed32(int index, ::google::protobuf::uint32 value) {
  packed_fixed32_.Set(index, value);
}
inline void TestPackedTypes::add_packed_fixed32(::google::protobuf::uint32 value) {
  packed_fixed32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestPackedTypes::packed_fixed32() const {
  return packed_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestPackedTypes::mutable_packed_fixed32() {
  return &packed_fixed32_;
}

// repeated fixed64 packed_fixed64 = 97 [packed = true];
inline int TestPackedTypes::packed_fixed64_size() const {
  return packed_fixed64_.size();
}
inline void TestPackedTypes::clear_packed_fixed64() {
  packed_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestPackedTypes::packed_fixed64(int index) const {
  return packed_fixed64_.Get(index);
}
inline void TestPackedTypes::set_packed_fixed64(int index, ::google::protobuf::uint64 value) {
  packed_fixed64_.Set(index, value);
}
inline void TestPackedTypes::add_packed_fixed64(::google::protobuf::uint64 value) {
  packed_fixed64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestPackedTypes::packed_fixed64() const {
  return packed_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestPackedTypes::mutable_packed_fixed64() {
  return &packed_fixed64_;
}

// repeated sfixed32 packed_sfixed32 = 98 [packed = true];
inline int TestPackedTypes::packed_sfixed32_size() const {
  return packed_sfixed32_.size();
}
inline void TestPackedTypes::clear_packed_sfixed32() {
  packed_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypes::packed_sfixed32(int index) const {
  return packed_sfixed32_.Get(index);
}
inline void TestPackedTypes::set_packed_sfixed32(int index, ::google::protobuf::int32 value) {
  packed_sfixed32_.Set(index, value);
}
inline void TestPackedTypes::add_packed_sfixed32(::google::protobuf::int32 value) {
  packed_sfixed32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypes::packed_sfixed32() const {
  return packed_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypes::mutable_packed_sfixed32() {
  return &packed_sfixed32_;
}

// repeated sfixed64 packed_sfixed64 = 99 [packed = true];
inline int TestPackedTypes::packed_sfixed64_size() const {
  return packed_sfixed64_.size();
}
inline void TestPackedTypes::clear_packed_sfixed64() {
  packed_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypes::packed_sfixed64(int index) const {
  return packed_sfixed64_.Get(index);
}
inline void TestPackedTypes::set_packed_sfixed64(int index, ::google::protobuf::int64 value) {
  packed_sfixed64_.Set(index, value);
}
inline void TestPackedTypes::add_packed_sfixed64(::google::protobuf::int64 value) {
  packed_sfixed64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypes::packed_sfixed64() const {
  return packed_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypes::mutable_packed_sfixed64() {
  return &packed_sfixed64_;
}

// repeated float packed_float = 100 [packed = true];
inline int TestPackedTypes::packed_float_size() const {
  return packed_float_.size();
}
inline void TestPackedTypes::clear_packed_float() {
  packed_float_.Clear();
}
inline float TestPackedTypes::packed_float(int index) const {
  return packed_float_.Get(index);
}
inline void TestPackedTypes::set_packed_float(int index, float value) {
  packed_float_.Set(index, value);
}
inline void TestPackedTypes::add_packed_float(float value) {
  packed_float_.Add(value);
}
inline const ::google::protobuf::RepeatedField< float >&
TestPackedTypes::packed_float() const {
  return packed_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestPackedTypes::mutable_packed_float() {
  return &packed_float_;
}

// repeated double packed_double = 101 [packed = true];
inline int TestPackedTypes::packed_double_size() const {
  return packed_double_.size();
}
inline void TestPackedTypes::clear_packed_double() {
  packed_double_.Clear();
}
inline double TestPackedTypes::packed_double(int index) const {
  return packed_double_.Get(index);
}
inline void TestPackedTypes::set_packed_double(int index, double value) {
  packed_double_.Set(index, value);
}
inline void TestPackedTypes::add_packed_double(double value) {
  packed_double_.Add(value);
}
inline const ::google::protobuf::RepeatedField< double >&
TestPackedTypes::packed_double() const {
  return packed_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestPackedTypes::mutable_packed_double() {
  return &packed_double_;
}

// repeated bool packed_bool = 102 [packed = true];
inline int TestPackedTypes::packed_bool_size() const {
  return packed_bool_.size();
}
inline void TestPackedTypes::clear_packed_bool() {
  packed_bool_.Clear();
}
inline bool TestPackedTypes::packed_bool(int index) const {
  return packed_bool_.Get(index);
}
inline void TestPackedTypes::set_packed_bool(int index, bool value) {
  packed_bool_.Set(index, value);
}
inline void TestPackedTypes::add_packed_bool(bool value) {
  packed_bool_.Add(value);
}
inline const ::google::protobuf::RepeatedField< bool >&
TestPackedTypes::packed_bool() const {
  return packed_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestPackedTypes::mutable_packed_bool() {
  return &packed_bool_;
}

// repeated .protobuf_unittest.ForeignEnum packed_enum = 103 [packed = true];
inline int TestPackedTypes::packed_enum_size() const {
  return packed_enum_.size();
}
inline void TestPackedTypes::clear_packed_enum() {
  packed_enum_.Clear();
}
inline protobuf_unittest::ForeignEnum TestPackedTypes::packed_enum(int index) const {
  return static_cast< protobuf_unittest::ForeignEnum >(packed_enum_.Get(index));
}
inline void TestPackedTypes::set_packed_enum(int index, protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  packed_enum_.Set(index, value);
}
inline void TestPackedTypes::add_packed_enum(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  packed_enum_.Add(value);
}
inline const ::google::protobuf::RepeatedField<int>&
TestPackedTypes::packed_enum() const {
  return packed_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestPackedTypes::mutable_packed_enum() {
  return &packed_enum_;
}

// -------------------------------------------------------------------

// TestUnpackedTypes

// repeated int32 unpacked_int32 = 90 [packed = false];
inline int TestUnpackedTypes::unpacked_int32_size() const {
  return unpacked_int32_.size();
}
inline void TestUnpackedTypes::clear_unpacked_int32() {
  unpacked_int32_.Clear();
}
inline ::google::protobuf::int32 TestUnpackedTypes::unpacked_int32(int index) const {
  return unpacked_int32_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_int32(int index, ::google::protobuf::int32 value) {
  unpacked_int32_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_int32(::google::protobuf::int32 value) {
  unpacked_int32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestUnpackedTypes::unpacked_int32() const {
  return unpacked_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestUnpackedTypes::mutable_unpacked_int32() {
  return &unpacked_int32_;
}

// repeated int64 unpacked_int64 = 91 [packed = false];
inline int TestUnpackedTypes::unpacked_int64_size() const {
  return unpacked_int64_.size();
}
inline void TestUnpackedTypes::clear_unpacked_int64() {
  unpacked_int64_.Clear();
}
inline ::google::protobuf::int64 TestUnpackedTypes::unpacked_int64(int index) const {
  return unpacked_int64_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_int64(int index, ::google::protobuf::int64 value) {
  unpacked_int64_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_int64(::google::protobuf::int64 value) {
  unpacked_int64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestUnpackedTypes::unpacked_int64() const {
  return unpacked_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestUnpackedTypes::mutable_unpacked_int64() {
  return &unpacked_int64_;
}

// repeated uint32 unpacked_uint32 = 92 [packed = false];
inline int TestUnpackedTypes::unpacked_uint32_size() const {
  return unpacked_uint32_.size();
}
inline void TestUnpackedTypes::clear_unpacked_uint32() {
  unpacked_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestUnpackedTypes::unpacked_uint32(int index) const {
  return unpacked_uint32_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_uint32(int index, ::google::protobuf::uint32 value) {
  unpacked_uint32_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_uint32(::google::protobuf::uint32 value) {
  unpacked_uint32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestUnpackedTypes::unpacked_uint32() const {
  return unpacked_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestUnpackedTypes::mutable_unpacked_uint32() {
  return &unpacked_uint32_;
}

// repeated uint64 unpacked_uint64 = 93 [packed = false];
inline int TestUnpackedTypes::unpacked_uint64_size() const {
  return unpacked_uint64_.size();
}
inline void TestUnpackedTypes::clear_unpacked_uint64() {
  unpacked_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestUnpackedTypes::unpacked_uint64(int index) const {
  return unpacked_uint64_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_uint64(int index, ::google::protobuf::uint64 value) {
  unpacked_uint64_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_uint64(::google::protobuf::uint64 value) {
  unpacked_uint64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestUnpackedTypes::unpacked_uint64() const {
  return unpacked_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestUnpackedTypes::mutable_unpacked_uint64() {
  return &unpacked_uint64_;
}

// repeated sint32 unpacked_sint32 = 94 [packed = false];
inline int TestUnpackedTypes::unpacked_sint32_size() const {
  return unpacked_sint32_.size();
}
inline void TestUnpackedTypes::clear_unpacked_sint32() {
  unpacked_sint32_.Clear();
}
inline ::google::protobuf::int32 TestUnpackedTypes::unpacked_sint32(int index) const {
  return unpacked_sint32_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_sint32(int index, ::google::protobuf::int32 value) {
  unpacked_sint32_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_sint32(::google::protobuf::int32 value) {
  unpacked_sint32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestUnpackedTypes::unpacked_sint32() const {
  return unpacked_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestUnpackedTypes::mutable_unpacked_sint32() {
  return &unpacked_sint32_;
}

// repeated sint64 unpacked_sint64 = 95 [packed = false];
inline int TestUnpackedTypes::unpacked_sint64_size() const {
  return unpacked_sint64_.size();
}
inline void TestUnpackedTypes::clear_unpacked_sint64() {
  unpacked_sint64_.Clear();
}
inline ::google::protobuf::int64 TestUnpackedTypes::unpacked_sint64(int index) const {
  return unpacked_sint64_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_sint64(int index, ::google::protobuf::int64 value) {
  unpacked_sint64_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_sint64(::google::protobuf::int64 value) {
  unpacked_sint64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestUnpackedTypes::unpacked_sint64() const {
  return unpacked_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestUnpackedTypes::mutable_unpacked_sint64() {
  return &unpacked_sint64_;
}

// repeated fixed32 unpacked_fixed32 = 96 [packed = false];
inline int TestUnpackedTypes::unpacked_fixed32_size() const {
  return unpacked_fixed32_.size();
}
inline void TestUnpackedTypes::clear_unpacked_fixed32() {
  unpacked_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestUnpackedTypes::unpacked_fixed32(int index) const {
  return unpacked_fixed32_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_fixed32(int index, ::google::protobuf::uint32 value) {
  unpacked_fixed32_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_fixed32(::google::protobuf::uint32 value) {
  unpacked_fixed32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestUnpackedTypes::unpacked_fixed32() const {
  return unpacked_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestUnpackedTypes::mutable_unpacked_fixed32() {
  return &unpacked_fixed32_;
}

// repeated fixed64 unpacked_fixed64 = 97 [packed = false];
inline int TestUnpackedTypes::unpacked_fixed64_size() const {
  return unpacked_fixed64_.size();
}
inline void TestUnpackedTypes::clear_unpacked_fixed64() {
  unpacked_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestUnpackedTypes::unpacked_fixed64(int index) const {
  return unpacked_fixed64_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_fixed64(int index, ::google::protobuf::uint64 value) {
  unpacked_fixed64_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_fixed64(::google::protobuf::uint64 value) {
  unpacked_fixed64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestUnpackedTypes::unpacked_fixed64() const {
  return unpacked_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestUnpackedTypes::mutable_unpacked_fixed64() {
  return &unpacked_fixed64_;
}

// repeated sfixed32 unpacked_sfixed32 = 98 [packed = false];
inline int TestUnpackedTypes::unpacked_sfixed32_size() const {
  return unpacked_sfixed32_.size();
}
inline void TestUnpackedTypes::clear_unpacked_sfixed32() {
  unpacked_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestUnpackedTypes::unpacked_sfixed32(int index) const {
  return unpacked_sfixed32_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_sfixed32(int index, ::google::protobuf::int32 value) {
  unpacked_sfixed32_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_sfixed32(::google::protobuf::int32 value) {
  unpacked_sfixed32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestUnpackedTypes::unpacked_sfixed32() const {
  return unpacked_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestUnpackedTypes::mutable_unpacked_sfixed32() {
  return &unpacked_sfixed32_;
}

// repeated sfixed64 unpacked_sfixed64 = 99 [packed = false];
inline int TestUnpackedTypes::unpacked_sfixed64_size() const {
  return unpacked_sfixed64_.size();
}
inline void TestUnpackedTypes::clear_unpacked_sfixed64() {
  unpacked_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestUnpackedTypes::unpacked_sfixed64(int index) const {
  return unpacked_sfixed64_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_sfixed64(int index, ::google::protobuf::int64 value) {
  unpacked_sfixed64_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_sfixed64(::google::protobuf::int64 value) {
  unpacked_sfixed64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestUnpackedTypes::unpacked_sfixed64() const {
  return unpacked_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestUnpackedTypes::mutable_unpacked_sfixed64() {
  return &unpacked_sfixed64_;
}

// repeated float unpacked_float = 100 [packed = false];
inline int TestUnpackedTypes::unpacked_float_size() const {
  return unpacked_float_.size();
}
inline void TestUnpackedTypes::clear_unpacked_float() {
  unpacked_float_.Clear();
}
inline float TestUnpackedTypes::unpacked_float(int index) const {
  return unpacked_float_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_float(int index, float value) {
  unpacked_float_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_float(float value) {
  unpacked_float_.Add(value);
}
inline const ::google::protobuf::RepeatedField< float >&
TestUnpackedTypes::unpacked_float() const {
  return unpacked_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestUnpackedTypes::mutable_unpacked_float() {
  return &unpacked_float_;
}

// repeated double unpacked_double = 101 [packed = false];
inline int TestUnpackedTypes::unpacked_double_size() const {
  return unpacked_double_.size();
}
inline void TestUnpackedTypes::clear_unpacked_double() {
  unpacked_double_.Clear();
}
inline double TestUnpackedTypes::unpacked_double(int index) const {
  return unpacked_double_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_double(int index, double value) {
  unpacked_double_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_double(double value) {
  unpacked_double_.Add(value);
}
inline const ::google::protobuf::RepeatedField< double >&
TestUnpackedTypes::unpacked_double() const {
  return unpacked_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestUnpackedTypes::mutable_unpacked_double() {
  return &unpacked_double_;
}

// repeated bool unpacked_bool = 102 [packed = false];
inline int TestUnpackedTypes::unpacked_bool_size() const {
  return unpacked_bool_.size();
}
inline void TestUnpackedTypes::clear_unpacked_bool() {
  unpacked_bool_.Clear();
}
inline bool TestUnpackedTypes::unpacked_bool(int index) const {
  return unpacked_bool_.Get(index);
}
inline void TestUnpackedTypes::set_unpacked_bool(int index, bool value) {
  unpacked_bool_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_bool(bool value) {
  unpacked_bool_.Add(value);
}
inline const ::google::protobuf::RepeatedField< bool >&
TestUnpackedTypes::unpacked_bool() const {
  return unpacked_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestUnpackedTypes::mutable_unpacked_bool() {
  return &unpacked_bool_;
}

// repeated .protobuf_unittest.ForeignEnum unpacked_enum = 103 [packed = false];
inline int TestUnpackedTypes::unpacked_enum_size() const {
  return unpacked_enum_.size();
}
inline void TestUnpackedTypes::clear_unpacked_enum() {
  unpacked_enum_.Clear();
}
inline protobuf_unittest::ForeignEnum TestUnpackedTypes::unpacked_enum(int index) const {
  return static_cast< protobuf_unittest::ForeignEnum >(unpacked_enum_.Get(index));
}
inline void TestUnpackedTypes::set_unpacked_enum(int index, protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  unpacked_enum_.Set(index, value);
}
inline void TestUnpackedTypes::add_unpacked_enum(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  unpacked_enum_.Add(value);
}
inline const ::google::protobuf::RepeatedField<int>&
TestUnpackedTypes::unpacked_enum() const {
  return unpacked_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestUnpackedTypes::mutable_unpacked_enum() {
  return &unpacked_enum_;
}

// -------------------------------------------------------------------

// TestPackedExtensions

// -------------------------------------------------------------------

// TestDynamicExtensions_DynamicMessageType

// optional int32 dynamic_field = 2100;
inline bool TestDynamicExtensions_DynamicMessageType::has_dynamic_field() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestDynamicExtensions_DynamicMessageType::set_has_dynamic_field() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestDynamicExtensions_DynamicMessageType::clear_has_dynamic_field() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestDynamicExtensions_DynamicMessageType::clear_dynamic_field() {
  dynamic_field_ = 0;
  clear_has_dynamic_field();
}
inline ::google::protobuf::int32 TestDynamicExtensions_DynamicMessageType::dynamic_field() const {
  return dynamic_field_;
}
inline void TestDynamicExtensions_DynamicMessageType::set_dynamic_field(::google::protobuf::int32 value) {
  set_has_dynamic_field();
  dynamic_field_ = value;
}

// -------------------------------------------------------------------

// TestDynamicExtensions

// optional fixed32 scalar_extension = 2000;
inline bool TestDynamicExtensions::has_scalar_extension() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestDynamicExtensions::set_has_scalar_extension() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestDynamicExtensions::clear_has_scalar_extension() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestDynamicExtensions::clear_scalar_extension() {
  scalar_extension_ = 0u;
  clear_has_scalar_extension();
}
inline ::google::protobuf::uint32 TestDynamicExtensions::scalar_extension() const {
  return scalar_extension_;
}
inline void TestDynamicExtensions::set_scalar_extension(::google::protobuf::uint32 value) {
  set_has_scalar_extension();
  scalar_extension_ = value;
}

// optional .protobuf_unittest.ForeignEnum enum_extension = 2001;
inline bool TestDynamicExtensions::has_enum_extension() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestDynamicExtensions::set_has_enum_extension() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestDynamicExtensions::clear_has_enum_extension() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestDynamicExtensions::clear_enum_extension() {
  enum_extension_ = 4;
  clear_has_enum_extension();
}
inline protobuf_unittest::ForeignEnum TestDynamicExtensions::enum_extension() const {
  return static_cast< protobuf_unittest::ForeignEnum >(enum_extension_);
}
inline void TestDynamicExtensions::set_enum_extension(protobuf_unittest::ForeignEnum value) {
  GOOGLE_DCHECK(protobuf_unittest::ForeignEnum_IsValid(value));
  set_has_enum_extension();
  enum_extension_ = value;
}

// optional .protobuf_unittest.TestDynamicExtensions.DynamicEnumType dynamic_enum_extension = 2002;
inline bool TestDynamicExtensions::has_dynamic_enum_extension() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestDynamicExtensions::set_has_dynamic_enum_extension() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestDynamicExtensions::clear_has_dynamic_enum_extension() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestDynamicExtensions::clear_dynamic_enum_extension() {
  dynamic_enum_extension_ = 2200;
  clear_has_dynamic_enum_extension();
}
inline ::protobuf_unittest::TestDynamicExtensions_DynamicEnumType TestDynamicExtensions::dynamic_enum_extension() const {
  return static_cast< ::protobuf_unittest::TestDynamicExtensions_DynamicEnumType >(dynamic_enum_extension_);
}
inline void TestDynamicExtensions::set_dynamic_enum_extension(::protobuf_unittest::TestDynamicExtensions_DynamicEnumType value) {
  GOOGLE_DCHECK(::protobuf_unittest::TestDynamicExtensions_DynamicEnumType_IsValid(value));
  set_has_dynamic_enum_extension();
  dynamic_enum_extension_ = value;
}

// optional .protobuf_unittest.ForeignMessage message_extension = 2003;
inline bool TestDynamicExtensions::has_message_extension() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TestDynamicExtensions::set_has_message_extension() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TestDynamicExtensions::clear_has_message_extension() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TestDynamicExtensions::clear_message_extension() {
  if (message_extension_ != NULL) message_extension_->::protobuf_unittest::ForeignMessage::Clear();
  clear_has_message_extension();
}
inline const ::protobuf_unittest::ForeignMessage& TestDynamicExtensions::message_extension() const {
  return message_extension_ != NULL ? *message_extension_ : *default_instance_->message_extension_;
}
inline ::protobuf_unittest::ForeignMessage* TestDynamicExtensions::mutable_message_extension() {
  set_has_message_extension();
  if (message_extension_ == NULL) message_extension_ = new ::protobuf_unittest::ForeignMessage;
  return message_extension_;
}
inline ::protobuf_unittest::ForeignMessage* TestDynamicExtensions::release_message_extension() {
  clear_has_message_extension();
  ::protobuf_unittest::ForeignMessage* temp = message_extension_;
  message_extension_ = NULL;
  return temp;
}

// optional .protobuf_unittest.TestDynamicExtensions.DynamicMessageType dynamic_message_extension = 2004;
inline bool TestDynamicExtensions::has_dynamic_message_extension() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TestDynamicExtensions::set_has_dynamic_message_extension() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TestDynamicExtensions::clear_has_dynamic_message_extension() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TestDynamicExtensions::clear_dynamic_message_extension() {
  if (dynamic_message_extension_ != NULL) dynamic_message_extension_->::protobuf_unittest::TestDynamicExtensions_DynamicMessageType::Clear();
  clear_has_dynamic_message_extension();
}
inline const ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType& TestDynamicExtensions::dynamic_message_extension() const {
  return dynamic_message_extension_ != NULL ? *dynamic_message_extension_ : *default_instance_->dynamic_message_extension_;
}
inline ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType* TestDynamicExtensions::mutable_dynamic_message_extension() {
  set_has_dynamic_message_extension();
  if (dynamic_message_extension_ == NULL) dynamic_message_extension_ = new ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType;
  return dynamic_message_extension_;
}
inline ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType* TestDynamicExtensions::release_dynamic_message_extension() {
  clear_has_dynamic_message_extension();
  ::protobuf_unittest::TestDynamicExtensions_DynamicMessageType* temp = dynamic_message_extension_;
  dynamic_message_extension_ = NULL;
  return temp;
}

// repeated string repeated_extension = 2005;
inline int TestDynamicExtensions::repeated_extension_size() const {
  return repeated_extension_.size();
}
inline void TestDynamicExtensions::clear_repeated_extension() {
  repeated_extension_.Clear();
}
inline const ::std::string& TestDynamicExtensions::repeated_extension(int index) const {
  return repeated_extension_.Get(index);
}
inline ::std::string* TestDynamicExtensions::mutable_repeated_extension(int index) {
  return repeated_extension_.Mutable(index);
}
inline void TestDynamicExtensions::set_repeated_extension(int index, const ::std::string& value) {
  repeated_extension_.Mutable(index)->assign(value);
}
inline void TestDynamicExtensions::set_repeated_extension(int index, const char* value) {
  repeated_extension_.Mutable(index)->assign(value);
}
inline void TestDynamicExtensions::set_repeated_extension(int index, const char* value, size_t size) {
  repeated_extension_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* TestDynamicExtensions::add_repeated_extension() {
  return repeated_extension_.Add();
}
inline void TestDynamicExtensions::add_repeated_extension(const ::std::string& value) {
  repeated_extension_.Add()->assign(value);
}
inline void TestDynamicExtensions::add_repeated_extension(const char* value) {
  repeated_extension_.Add()->assign(value);
}
inline void TestDynamicExtensions::add_repeated_extension(const char* value, size_t size) {
  repeated_extension_.Add()->assign(reinterpret_cast<const char*>(value), size);
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestDynamicExtensions::repeated_extension() const {
  return repeated_extension_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestDynamicExtensions::mutable_repeated_extension() {
  return &repeated_extension_;
}

// repeated sint32 packed_extension = 2006 [packed = true];
inline int TestDynamicExtensions::packed_extension_size() const {
  return packed_extension_.size();
}
inline void TestDynamicExtensions::clear_packed_extension() {
  packed_extension_.Clear();
}
inline ::google::protobuf::int32 TestDynamicExtensions::packed_extension(int index) const {
  return packed_extension_.Get(index);
}
inline void TestDynamicExtensions::set_packed_extension(int index, ::google::protobuf::int32 value) {
  packed_extension_.Set(index, value);
}
inline void TestDynamicExtensions::add_packed_extension(::google::protobuf::int32 value) {
  packed_extension_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestDynamicExtensions::packed_extension() const {
  return packed_extension_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestDynamicExtensions::mutable_packed_extension() {
  return &packed_extension_;
}

// -------------------------------------------------------------------

// TestRepeatedScalarDifferentTagSizes

// repeated fixed32 repeated_fixed32 = 12;
inline int TestRepeatedScalarDifferentTagSizes::repeated_fixed32_size() const {
  return repeated_fixed32_.size();
}
inline void TestRepeatedScalarDifferentTagSizes::clear_repeated_fixed32() {
  repeated_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestRepeatedScalarDifferentTagSizes::repeated_fixed32(int index) const {
  return repeated_fixed32_.Get(index);
}
inline void TestRepeatedScalarDifferentTagSizes::set_repeated_fixed32(int index, ::google::protobuf::uint32 value) {
  repeated_fixed32_.Set(index, value);
}
inline void TestRepeatedScalarDifferentTagSizes::add_repeated_fixed32(::google::protobuf::uint32 value) {
  repeated_fixed32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestRepeatedScalarDifferentTagSizes::repeated_fixed32() const {
  return repeated_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestRepeatedScalarDifferentTagSizes::mutable_repeated_fixed32() {
  return &repeated_fixed32_;
}

// repeated int32 repeated_int32 = 13;
inline int TestRepeatedScalarDifferentTagSizes::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void TestRepeatedScalarDifferentTagSizes::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 TestRepeatedScalarDifferentTagSizes::repeated_int32(int index) const {
  return repeated_int32_.Get(index);
}
inline void TestRepeatedScalarDifferentTagSizes::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
}
inline void TestRepeatedScalarDifferentTagSizes::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestRepeatedScalarDifferentTagSizes::repeated_int32() const {
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestRepeatedScalarDifferentTagSizes::mutable_repeated_int32() {
  return &repeated_int32_;
}

// repeated fixed64 repeated_fixed64 = 2046;
inline int TestRepeatedScalarDifferentTagSizes::repeated_fixed64_size() const {
  return repeated_fixed64_.size();
}
inline void TestRepeatedScalarDifferentTagSizes::clear_repeated_fixed64() {
  repeated_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestRepeatedScalarDifferentTagSizes::repeated_fixed64(int index) const {
  return repeated_fixed64_.Get(index);
}
inline void TestRepeatedScalarDifferentTagSizes::set_repeated_fixed64(int index, ::google::protobuf::uint64 value) {
  repeated_fixed64_.Set(index, value);
}
inline void TestRepeatedScalarDifferentTagSizes::add_repeated_fixed64(::google::protobuf::uint64 value) {
  repeated_fixed64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestRepeatedScalarDifferentTagSizes::repeated_fixed64() const {
  return repeated_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestRepeatedScalarDifferentTagSizes::mutable_repeated_fixed64() {
  return &repeated_fixed64_;
}

// repeated int64 repeated_int64 = 2047;
inline int TestRepeatedScalarDifferentTagSizes::repeated_int64_size() const {
  return repeated_int64_.size();
}
inline void TestRepeatedScalarDifferentTagSizes::clear_repeated_int64() {
  repeated_int64_.Clear();
}
inline ::google::protobuf::int64 TestRepeatedScalarDifferentTagSizes::repeated_int64(int index) const {
  return repeated_int64_.Get(index);
}
inline void TestRepeatedScalarDifferentTagSizes::set_repeated_int64(int index, ::google::protobuf::int64 value) {
  repeated_int64_.Set(index, value);
}
inline void TestRepeatedScalarDifferentTagSizes::add_repeated_int64(::google::protobuf::int64 value) {
  repeated_int64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestRepeatedScalarDifferentTagSizes::repeated_int64() const {
  return repeated_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestRepeatedScalarDifferentTagSizes::mutable_repeated_int64() {
  return &repeated_int64_;
}

// repeated float repeated_float = 262142;
inline int TestRepeatedScalarDifferentTagSizes::repeated_float_size() const {
  return repeated_float_.size();
}
inline void TestRepeatedScalarDifferentTagSizes::clear_repeated_float() {
  repeated_float_.Clear();
}
inline float TestRepeatedScalarDifferentTagSizes::repeated_float(int index) const {
  return repeated_float_.Get(index);
}
inline void TestRepeatedScalarDifferentTagSizes::set_repeated_float(int index, float value) {
  repeated_float_.Set(index, value);
}
inline void TestRepeatedScalarDifferentTagSizes::add_repeated_float(float value) {
  repeated_float_.Add(value);
}
inline const ::google::protobuf::RepeatedField< float >&
TestRepeatedScalarDifferentTagSizes::repeated_float() const {
  return repeated_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestRepeatedScalarDifferentTagSizes::mutable_repeated_float() {
  return &repeated_float_;
}

// repeated uint64 repeated_uint64 = 262143;
inline int TestRepeatedScalarDifferentTagSizes::repeated_uint64_size() const {
  return repeated_uint64_.size();
}
inline void TestRepeatedScalarDifferentTagSizes::clear_repeated_uint64() {
  repeated_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestRepeatedScalarDifferentTagSizes::repeated_uint64(int index) const {
  return repeated_uint64_.Get(index);
}
inline void TestRepeatedScalarDifferentTagSizes::set_repeated_uint64(int index, ::google::protobuf::uint64 value) {
  repeated_uint64_.Set(index, value);
}
inline void TestRepeatedScalarDifferentTagSizes::add_repeated_uint64(::google::protobuf::uint64 value) {
  repeated_uint64_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestRepeatedScalarDifferentTagSizes::repeated_uint64() const {
  return repeated_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestRepeatedScalarDifferentTagSizes::mutable_repeated_uint64() {
  return &repeated_uint64_;
}

// -------------------------------------------------------------------

// FooRequest

// -------------------------------------------------------------------

// FooResponse

// -------------------------------------------------------------------

// BarRequest

// -------------------------------------------------------------------

// BarResponse


// @@protoc_insertion_point(namespace_scope)

}  // namespace protobuf_unittest

#ifndef SWIG
namespace google {
namespace protobuf {

template <>
inline const EnumDescriptor* GetEnumDescriptor< ::protobuf_unittest::TestAllTypes_NestedEnum>() {
  return ::protobuf_unittest::TestAllTypes_NestedEnum_descriptor();
}
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::protobuf_unittest::TestDynamicExtensions_DynamicEnumType>() {
  return ::protobuf_unittest::TestDynamicExtensions_DynamicEnumType_descriptor();
}
template <>
inline const EnumDescriptor* GetEnumDescriptor< protobuf_unittest::ForeignEnum>() {
  return protobuf_unittest::ForeignEnum_descriptor();
}
template <>
inline const EnumDescriptor* GetEnumDescriptor< protobuf_unittest::TestEnumWithDupValue>() {
  return protobuf_unittest::TestEnumWithDupValue_descriptor();
}
template <>
inline const EnumDescriptor* GetEnumDescriptor< protobuf_unittest::TestSparseEnum>() {
  return protobuf_unittest::TestSparseEnum_descriptor();
}

}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_google_2fprotobuf_2funittest_2eproto__INCLUDED
