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

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3006001
#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 3006001 < 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/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/unknown_field_set.h>
#include <google/protobuf/any.pb.h>
#include <google/protobuf/api.pb.h>
#include <google/protobuf/duration.pb.h>
#include <google/protobuf/empty.pb.h>
#include <google/protobuf/field_mask.pb.h>
#include <google/protobuf/source_context.pb.h>
#include <google/protobuf/struct.pb.h>
#include <google/protobuf/timestamp.pb.h>
#include <google/protobuf/type.pb.h>
#include <google/protobuf/wrappers.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto 

namespace protobuf_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[22];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto
namespace protobuf_unittest {
class MapWellKnownTypes;
class MapWellKnownTypesDefaultTypeInternal;
extern MapWellKnownTypesDefaultTypeInternal _MapWellKnownTypes_default_instance_;
class MapWellKnownTypes_AnyFieldEntry_DoNotUse;
class MapWellKnownTypes_AnyFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_AnyFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_AnyFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_ApiFieldEntry_DoNotUse;
class MapWellKnownTypes_ApiFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_ApiFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_ApiFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_BoolFieldEntry_DoNotUse;
class MapWellKnownTypes_BoolFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_BoolFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_BoolFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_BytesFieldEntry_DoNotUse;
class MapWellKnownTypes_BytesFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_BytesFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_BytesFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_DoubleFieldEntry_DoNotUse;
class MapWellKnownTypes_DoubleFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_DoubleFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_DoubleFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_DurationFieldEntry_DoNotUse;
class MapWellKnownTypes_DurationFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_DurationFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_DurationFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_EmptyFieldEntry_DoNotUse;
class MapWellKnownTypes_EmptyFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_EmptyFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_EmptyFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse;
class MapWellKnownTypes_FieldMaskFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_FieldMaskFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_FloatFieldEntry_DoNotUse;
class MapWellKnownTypes_FloatFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_FloatFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_FloatFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_Int32FieldEntry_DoNotUse;
class MapWellKnownTypes_Int32FieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_Int32FieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_Int32FieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_Int64FieldEntry_DoNotUse;
class MapWellKnownTypes_Int64FieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_Int64FieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_Int64FieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_SourceContextFieldEntry_DoNotUse;
class MapWellKnownTypes_SourceContextFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_SourceContextFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_SourceContextFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_StringFieldEntry_DoNotUse;
class MapWellKnownTypes_StringFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_StringFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_StringFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_StructFieldEntry_DoNotUse;
class MapWellKnownTypes_StructFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_StructFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_StructFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_TimestampFieldEntry_DoNotUse;
class MapWellKnownTypes_TimestampFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_TimestampFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_TimestampFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_TypeFieldEntry_DoNotUse;
class MapWellKnownTypes_TypeFieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_TypeFieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_TypeFieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_Uint32FieldEntry_DoNotUse;
class MapWellKnownTypes_Uint32FieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_Uint32FieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_Uint32FieldEntry_DoNotUse_default_instance_;
class MapWellKnownTypes_Uint64FieldEntry_DoNotUse;
class MapWellKnownTypes_Uint64FieldEntry_DoNotUseDefaultTypeInternal;
extern MapWellKnownTypes_Uint64FieldEntry_DoNotUseDefaultTypeInternal _MapWellKnownTypes_Uint64FieldEntry_DoNotUse_default_instance_;
class OneofWellKnownTypes;
class OneofWellKnownTypesDefaultTypeInternal;
extern OneofWellKnownTypesDefaultTypeInternal _OneofWellKnownTypes_default_instance_;
class RepeatedWellKnownTypes;
class RepeatedWellKnownTypesDefaultTypeInternal;
extern RepeatedWellKnownTypesDefaultTypeInternal _RepeatedWellKnownTypes_default_instance_;
class TestWellKnownTypes;
class TestWellKnownTypesDefaultTypeInternal;
extern TestWellKnownTypesDefaultTypeInternal _TestWellKnownTypes_default_instance_;
}  // namespace protobuf_unittest
namespace google {
namespace protobuf {
template<> ::protobuf_unittest::MapWellKnownTypes* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_AnyFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_AnyFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_ApiFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_ApiFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_BoolFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_BoolFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_BytesFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_BytesFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_DoubleFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_DoubleFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_DurationFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_DurationFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_EmptyFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_EmptyFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_FloatFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_FloatFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_Int32FieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_Int32FieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_Int64FieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_Int64FieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_SourceContextFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_SourceContextFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_StringFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_StringFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_StructFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_StructFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_TimestampFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_TimestampFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_TypeFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_TypeFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_Uint32FieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_Uint32FieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::MapWellKnownTypes_Uint64FieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::MapWellKnownTypes_Uint64FieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::OneofWellKnownTypes* Arena::CreateMaybeMessage<::protobuf_unittest::OneofWellKnownTypes>(Arena*);
template<> ::protobuf_unittest::RepeatedWellKnownTypes* Arena::CreateMaybeMessage<::protobuf_unittest::RepeatedWellKnownTypes>(Arena*);
template<> ::protobuf_unittest::TestWellKnownTypes* Arena::CreateMaybeMessage<::protobuf_unittest::TestWellKnownTypes>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace protobuf_unittest {

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

class TestWellKnownTypes : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestWellKnownTypes) */ {
 public:
  TestWellKnownTypes();
  virtual ~TestWellKnownTypes();

  TestWellKnownTypes(const TestWellKnownTypes& from);

  inline TestWellKnownTypes& operator=(const TestWellKnownTypes& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestWellKnownTypes(TestWellKnownTypes&& from) noexcept
    : TestWellKnownTypes() {
    *this = ::std::move(from);
  }

  inline TestWellKnownTypes& operator=(TestWellKnownTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const TestWellKnownTypes& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestWellKnownTypes* internal_default_instance() {
    return reinterpret_cast<const TestWellKnownTypes*>(
               &_TestWellKnownTypes_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(TestWellKnownTypes* other);
  friend void swap(TestWellKnownTypes& a, TestWellKnownTypes& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestWellKnownTypes* New() const final {
    return CreateMaybeMessage<TestWellKnownTypes>(NULL);
  }

  TestWellKnownTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestWellKnownTypes>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const TestWellKnownTypes& from);
  void MergeFrom(const TestWellKnownTypes& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TestWellKnownTypes* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.Any any_field = 1;
  bool has_any_field() const;
  void clear_any_field();
  static const int kAnyFieldFieldNumber = 1;
  private:
  const ::google::protobuf::Any& _internal_any_field() const;
  public:
  const ::google::protobuf::Any& any_field() const;
  ::google::protobuf::Any* release_any_field();
  ::google::protobuf::Any* mutable_any_field();
  void set_allocated_any_field(::google::protobuf::Any* any_field);

  // .google.protobuf.Api api_field = 2;
  bool has_api_field() const;
  void clear_api_field();
  static const int kApiFieldFieldNumber = 2;
  private:
  const ::google::protobuf::Api& _internal_api_field() const;
  public:
  const ::google::protobuf::Api& api_field() const;
  ::google::protobuf::Api* release_api_field();
  ::google::protobuf::Api* mutable_api_field();
  void set_allocated_api_field(::google::protobuf::Api* api_field);

  // .google.protobuf.Duration duration_field = 3;
  bool has_duration_field() const;
  void clear_duration_field();
  static const int kDurationFieldFieldNumber = 3;
  private:
  const ::google::protobuf::Duration& _internal_duration_field() const;
  public:
  const ::google::protobuf::Duration& duration_field() const;
  ::google::protobuf::Duration* release_duration_field();
  ::google::protobuf::Duration* mutable_duration_field();
  void set_allocated_duration_field(::google::protobuf::Duration* duration_field);

  // .google.protobuf.Empty empty_field = 4;
  bool has_empty_field() const;
  void clear_empty_field();
  static const int kEmptyFieldFieldNumber = 4;
  private:
  const ::google::protobuf::Empty& _internal_empty_field() const;
  public:
  const ::google::protobuf::Empty& empty_field() const;
  ::google::protobuf::Empty* release_empty_field();
  ::google::protobuf::Empty* mutable_empty_field();
  void set_allocated_empty_field(::google::protobuf::Empty* empty_field);

  // .google.protobuf.FieldMask field_mask_field = 5;
  bool has_field_mask_field() const;
  void clear_field_mask_field();
  static const int kFieldMaskFieldFieldNumber = 5;
  private:
  const ::google::protobuf::FieldMask& _internal_field_mask_field() const;
  public:
  const ::google::protobuf::FieldMask& field_mask_field() const;
  ::google::protobuf::FieldMask* release_field_mask_field();
  ::google::protobuf::FieldMask* mutable_field_mask_field();
  void set_allocated_field_mask_field(::google::protobuf::FieldMask* field_mask_field);

  // .google.protobuf.SourceContext source_context_field = 6;
  bool has_source_context_field() const;
  void clear_source_context_field();
  static const int kSourceContextFieldFieldNumber = 6;
  private:
  const ::google::protobuf::SourceContext& _internal_source_context_field() const;
  public:
  const ::google::protobuf::SourceContext& source_context_field() const;
  ::google::protobuf::SourceContext* release_source_context_field();
  ::google::protobuf::SourceContext* mutable_source_context_field();
  void set_allocated_source_context_field(::google::protobuf::SourceContext* source_context_field);

  // .google.protobuf.Struct struct_field = 7;
  bool has_struct_field() const;
  void clear_struct_field();
  static const int kStructFieldFieldNumber = 7;
  private:
  const ::google::protobuf::Struct& _internal_struct_field() const;
  public:
  const ::google::protobuf::Struct& struct_field() const;
  ::google::protobuf::Struct* release_struct_field();
  ::google::protobuf::Struct* mutable_struct_field();
  void set_allocated_struct_field(::google::protobuf::Struct* struct_field);

  // .google.protobuf.Timestamp timestamp_field = 8;
  bool has_timestamp_field() const;
  void clear_timestamp_field();
  static const int kTimestampFieldFieldNumber = 8;
  private:
  const ::google::protobuf::Timestamp& _internal_timestamp_field() const;
  public:
  const ::google::protobuf::Timestamp& timestamp_field() const;
  ::google::protobuf::Timestamp* release_timestamp_field();
  ::google::protobuf::Timestamp* mutable_timestamp_field();
  void set_allocated_timestamp_field(::google::protobuf::Timestamp* timestamp_field);

  // .google.protobuf.Type type_field = 9;
  bool has_type_field() const;
  void clear_type_field();
  static const int kTypeFieldFieldNumber = 9;
  private:
  const ::google::protobuf::Type& _internal_type_field() const;
  public:
  const ::google::protobuf::Type& type_field() const;
  ::google::protobuf::Type* release_type_field();
  ::google::protobuf::Type* mutable_type_field();
  void set_allocated_type_field(::google::protobuf::Type* type_field);

  // .google.protobuf.DoubleValue double_field = 10;
  bool has_double_field() const;
  void clear_double_field();
  static const int kDoubleFieldFieldNumber = 10;
  private:
  const ::google::protobuf::DoubleValue& _internal_double_field() const;
  public:
  const ::google::protobuf::DoubleValue& double_field() const;
  ::google::protobuf::DoubleValue* release_double_field();
  ::google::protobuf::DoubleValue* mutable_double_field();
  void set_allocated_double_field(::google::protobuf::DoubleValue* double_field);

  // .google.protobuf.FloatValue float_field = 11;
  bool has_float_field() const;
  void clear_float_field();
  static const int kFloatFieldFieldNumber = 11;
  private:
  const ::google::protobuf::FloatValue& _internal_float_field() const;
  public:
  const ::google::protobuf::FloatValue& float_field() const;
  ::google::protobuf::FloatValue* release_float_field();
  ::google::protobuf::FloatValue* mutable_float_field();
  void set_allocated_float_field(::google::protobuf::FloatValue* float_field);

  // .google.protobuf.Int64Value int64_field = 12;
  bool has_int64_field() const;
  void clear_int64_field();
  static const int kInt64FieldFieldNumber = 12;
  private:
  const ::google::protobuf::Int64Value& _internal_int64_field() const;
  public:
  const ::google::protobuf::Int64Value& int64_field() const;
  ::google::protobuf::Int64Value* release_int64_field();
  ::google::protobuf::Int64Value* mutable_int64_field();
  void set_allocated_int64_field(::google::protobuf::Int64Value* int64_field);

  // .google.protobuf.UInt64Value uint64_field = 13;
  bool has_uint64_field() const;
  void clear_uint64_field();
  static const int kUint64FieldFieldNumber = 13;
  private:
  const ::google::protobuf::UInt64Value& _internal_uint64_field() const;
  public:
  const ::google::protobuf::UInt64Value& uint64_field() const;
  ::google::protobuf::UInt64Value* release_uint64_field();
  ::google::protobuf::UInt64Value* mutable_uint64_field();
  void set_allocated_uint64_field(::google::protobuf::UInt64Value* uint64_field);

  // .google.protobuf.Int32Value int32_field = 14;
  bool has_int32_field() const;
  void clear_int32_field();
  static const int kInt32FieldFieldNumber = 14;
  private:
  const ::google::protobuf::Int32Value& _internal_int32_field() const;
  public:
  const ::google::protobuf::Int32Value& int32_field() const;
  ::google::protobuf::Int32Value* release_int32_field();
  ::google::protobuf::Int32Value* mutable_int32_field();
  void set_allocated_int32_field(::google::protobuf::Int32Value* int32_field);

  // .google.protobuf.UInt32Value uint32_field = 15;
  bool has_uint32_field() const;
  void clear_uint32_field();
  static const int kUint32FieldFieldNumber = 15;
  private:
  const ::google::protobuf::UInt32Value& _internal_uint32_field() const;
  public:
  const ::google::protobuf::UInt32Value& uint32_field() const;
  ::google::protobuf::UInt32Value* release_uint32_field();
  ::google::protobuf::UInt32Value* mutable_uint32_field();
  void set_allocated_uint32_field(::google::protobuf::UInt32Value* uint32_field);

  // .google.protobuf.BoolValue bool_field = 16;
  bool has_bool_field() const;
  void clear_bool_field();
  static const int kBoolFieldFieldNumber = 16;
  private:
  const ::google::protobuf::BoolValue& _internal_bool_field() const;
  public:
  const ::google::protobuf::BoolValue& bool_field() const;
  ::google::protobuf::BoolValue* release_bool_field();
  ::google::protobuf::BoolValue* mutable_bool_field();
  void set_allocated_bool_field(::google::protobuf::BoolValue* bool_field);

  // .google.protobuf.StringValue string_field = 17;
  bool has_string_field() const;
  void clear_string_field();
  static const int kStringFieldFieldNumber = 17;
  private:
  const ::google::protobuf::StringValue& _internal_string_field() const;
  public:
  const ::google::protobuf::StringValue& string_field() const;
  ::google::protobuf::StringValue* release_string_field();
  ::google::protobuf::StringValue* mutable_string_field();
  void set_allocated_string_field(::google::protobuf::StringValue* string_field);

  // .google.protobuf.BytesValue bytes_field = 18;
  bool has_bytes_field() const;
  void clear_bytes_field();
  static const int kBytesFieldFieldNumber = 18;
  private:
  const ::google::protobuf::BytesValue& _internal_bytes_field() const;
  public:
  const ::google::protobuf::BytesValue& bytes_field() const;
  ::google::protobuf::BytesValue* release_bytes_field();
  ::google::protobuf::BytesValue* mutable_bytes_field();
  void set_allocated_bytes_field(::google::protobuf::BytesValue* bytes_field);

  // .google.protobuf.Value value_field = 19;
  bool has_value_field() const;
  void clear_value_field();
  static const int kValueFieldFieldNumber = 19;
  private:
  const ::google::protobuf::Value& _internal_value_field() const;
  public:
  const ::google::protobuf::Value& value_field() const;
  ::google::protobuf::Value* release_value_field();
  ::google::protobuf::Value* mutable_value_field();
  void set_allocated_value_field(::google::protobuf::Value* value_field);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestWellKnownTypes)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Any* any_field_;
  ::google::protobuf::Api* api_field_;
  ::google::protobuf::Duration* duration_field_;
  ::google::protobuf::Empty* empty_field_;
  ::google::protobuf::FieldMask* field_mask_field_;
  ::google::protobuf::SourceContext* source_context_field_;
  ::google::protobuf::Struct* struct_field_;
  ::google::protobuf::Timestamp* timestamp_field_;
  ::google::protobuf::Type* type_field_;
  ::google::protobuf::DoubleValue* double_field_;
  ::google::protobuf::FloatValue* float_field_;
  ::google::protobuf::Int64Value* int64_field_;
  ::google::protobuf::UInt64Value* uint64_field_;
  ::google::protobuf::Int32Value* int32_field_;
  ::google::protobuf::UInt32Value* uint32_field_;
  ::google::protobuf::BoolValue* bool_field_;
  ::google::protobuf::StringValue* string_field_;
  ::google::protobuf::BytesValue* bytes_field_;
  ::google::protobuf::Value* value_field_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class RepeatedWellKnownTypes : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:protobuf_unittest.RepeatedWellKnownTypes) */ {
 public:
  RepeatedWellKnownTypes();
  virtual ~RepeatedWellKnownTypes();

  RepeatedWellKnownTypes(const RepeatedWellKnownTypes& from);

  inline RepeatedWellKnownTypes& operator=(const RepeatedWellKnownTypes& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  RepeatedWellKnownTypes(RepeatedWellKnownTypes&& from) noexcept
    : RepeatedWellKnownTypes() {
    *this = ::std::move(from);
  }

  inline RepeatedWellKnownTypes& operator=(RepeatedWellKnownTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RepeatedWellKnownTypes& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RepeatedWellKnownTypes* internal_default_instance() {
    return reinterpret_cast<const RepeatedWellKnownTypes*>(
               &_RepeatedWellKnownTypes_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(RepeatedWellKnownTypes* other);
  friend void swap(RepeatedWellKnownTypes& a, RepeatedWellKnownTypes& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline RepeatedWellKnownTypes* New() const final {
    return CreateMaybeMessage<RepeatedWellKnownTypes>(NULL);
  }

  RepeatedWellKnownTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RepeatedWellKnownTypes>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const RepeatedWellKnownTypes& from);
  void MergeFrom(const RepeatedWellKnownTypes& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RepeatedWellKnownTypes* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .google.protobuf.Any any_field = 1;
  int any_field_size() const;
  void clear_any_field();
  static const int kAnyFieldFieldNumber = 1;
  ::google::protobuf::Any* mutable_any_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >*
      mutable_any_field();
  const ::google::protobuf::Any& any_field(int index) const;
  ::google::protobuf::Any* add_any_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >&
      any_field() const;

  // repeated .google.protobuf.Api api_field = 2;
  int api_field_size() const;
  void clear_api_field();
  static const int kApiFieldFieldNumber = 2;
  ::google::protobuf::Api* mutable_api_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Api >*
      mutable_api_field();
  const ::google::protobuf::Api& api_field(int index) const;
  ::google::protobuf::Api* add_api_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Api >&
      api_field() const;

  // repeated .google.protobuf.Duration duration_field = 3;
  int duration_field_size() const;
  void clear_duration_field();
  static const int kDurationFieldFieldNumber = 3;
  ::google::protobuf::Duration* mutable_duration_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Duration >*
      mutable_duration_field();
  const ::google::protobuf::Duration& duration_field(int index) const;
  ::google::protobuf::Duration* add_duration_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Duration >&
      duration_field() const;

  // repeated .google.protobuf.Empty empty_field = 4;
  int empty_field_size() const;
  void clear_empty_field();
  static const int kEmptyFieldFieldNumber = 4;
  ::google::protobuf::Empty* mutable_empty_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Empty >*
      mutable_empty_field();
  const ::google::protobuf::Empty& empty_field(int index) const;
  ::google::protobuf::Empty* add_empty_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Empty >&
      empty_field() const;

  // repeated .google.protobuf.FieldMask field_mask_field = 5;
  int field_mask_field_size() const;
  void clear_field_mask_field();
  static const int kFieldMaskFieldFieldNumber = 5;
  ::google::protobuf::FieldMask* mutable_field_mask_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >*
      mutable_field_mask_field();
  const ::google::protobuf::FieldMask& field_mask_field(int index) const;
  ::google::protobuf::FieldMask* add_field_mask_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >&
      field_mask_field() const;

  // repeated .google.protobuf.SourceContext source_context_field = 6;
  int source_context_field_size() const;
  void clear_source_context_field();
  static const int kSourceContextFieldFieldNumber = 6;
  ::google::protobuf::SourceContext* mutable_source_context_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceContext >*
      mutable_source_context_field();
  const ::google::protobuf::SourceContext& source_context_field(int index) const;
  ::google::protobuf::SourceContext* add_source_context_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceContext >&
      source_context_field() const;

  // repeated .google.protobuf.Struct struct_field = 7;
  int struct_field_size() const;
  void clear_struct_field();
  static const int kStructFieldFieldNumber = 7;
  ::google::protobuf::Struct* mutable_struct_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Struct >*
      mutable_struct_field();
  const ::google::protobuf::Struct& struct_field(int index) const;
  ::google::protobuf::Struct* add_struct_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Struct >&
      struct_field() const;

  // repeated .google.protobuf.Timestamp timestamp_field = 8;
  int timestamp_field_size() const;
  void clear_timestamp_field();
  static const int kTimestampFieldFieldNumber = 8;
  ::google::protobuf::Timestamp* mutable_timestamp_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >*
      mutable_timestamp_field();
  const ::google::protobuf::Timestamp& timestamp_field(int index) const;
  ::google::protobuf::Timestamp* add_timestamp_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >&
      timestamp_field() const;

  // repeated .google.protobuf.Type type_field = 9;
  int type_field_size() const;
  void clear_type_field();
  static const int kTypeFieldFieldNumber = 9;
  ::google::protobuf::Type* mutable_type_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Type >*
      mutable_type_field();
  const ::google::protobuf::Type& type_field(int index) const;
  ::google::protobuf::Type* add_type_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Type >&
      type_field() const;

  // repeated .google.protobuf.DoubleValue double_field = 10;
  int double_field_size() const;
  void clear_double_field();
  static const int kDoubleFieldFieldNumber = 10;
  ::google::protobuf::DoubleValue* mutable_double_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::DoubleValue >*
      mutable_double_field();
  const ::google::protobuf::DoubleValue& double_field(int index) const;
  ::google::protobuf::DoubleValue* add_double_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DoubleValue >&
      double_field() const;

  // repeated .google.protobuf.FloatValue float_field = 11;
  int float_field_size() const;
  void clear_float_field();
  static const int kFloatFieldFieldNumber = 11;
  ::google::protobuf::FloatValue* mutable_float_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FloatValue >*
      mutable_float_field();
  const ::google::protobuf::FloatValue& float_field(int index) const;
  ::google::protobuf::FloatValue* add_float_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FloatValue >&
      float_field() const;

  // repeated .google.protobuf.Int64Value int64_field = 12;
  int int64_field_size() const;
  void clear_int64_field();
  static const int kInt64FieldFieldNumber = 12;
  ::google::protobuf::Int64Value* mutable_int64_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int64Value >*
      mutable_int64_field();
  const ::google::protobuf::Int64Value& int64_field(int index) const;
  ::google::protobuf::Int64Value* add_int64_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int64Value >&
      int64_field() const;

  // repeated .google.protobuf.UInt64Value uint64_field = 13;
  int uint64_field_size() const;
  void clear_uint64_field();
  static const int kUint64FieldFieldNumber = 13;
  ::google::protobuf::UInt64Value* mutable_uint64_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt64Value >*
      mutable_uint64_field();
  const ::google::protobuf::UInt64Value& uint64_field(int index) const;
  ::google::protobuf::UInt64Value* add_uint64_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt64Value >&
      uint64_field() const;

  // repeated .google.protobuf.Int32Value int32_field = 14;
  int int32_field_size() const;
  void clear_int32_field();
  static const int kInt32FieldFieldNumber = 14;
  ::google::protobuf::Int32Value* mutable_int32_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int32Value >*
      mutable_int32_field();
  const ::google::protobuf::Int32Value& int32_field(int index) const;
  ::google::protobuf::Int32Value* add_int32_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int32Value >&
      int32_field() const;

  // repeated .google.protobuf.UInt32Value uint32_field = 15;
  int uint32_field_size() const;
  void clear_uint32_field();
  static const int kUint32FieldFieldNumber = 15;
  ::google::protobuf::UInt32Value* mutable_uint32_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt32Value >*
      mutable_uint32_field();
  const ::google::protobuf::UInt32Value& uint32_field(int index) const;
  ::google::protobuf::UInt32Value* add_uint32_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt32Value >&
      uint32_field() const;

  // repeated .google.protobuf.BoolValue bool_field = 16;
  int bool_field_size() const;
  void clear_bool_field();
  static const int kBoolFieldFieldNumber = 16;
  ::google::protobuf::BoolValue* mutable_bool_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::BoolValue >*
      mutable_bool_field();
  const ::google::protobuf::BoolValue& bool_field(int index) const;
  ::google::protobuf::BoolValue* add_bool_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::BoolValue >&
      bool_field() const;

  // repeated .google.protobuf.StringValue string_field = 17;
  int string_field_size() const;
  void clear_string_field();
  static const int kStringFieldFieldNumber = 17;
  ::google::protobuf::StringValue* mutable_string_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::StringValue >*
      mutable_string_field();
  const ::google::protobuf::StringValue& string_field(int index) const;
  ::google::protobuf::StringValue* add_string_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::StringValue >&
      string_field() const;

  // repeated .google.protobuf.BytesValue bytes_field = 18;
  int bytes_field_size() const;
  void clear_bytes_field();
  static const int kBytesFieldFieldNumber = 18;
  ::google::protobuf::BytesValue* mutable_bytes_field(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::BytesValue >*
      mutable_bytes_field();
  const ::google::protobuf::BytesValue& bytes_field(int index) const;
  ::google::protobuf::BytesValue* add_bytes_field();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::BytesValue >&
      bytes_field() const;

  // @@protoc_insertion_point(class_scope:protobuf_unittest.RepeatedWellKnownTypes)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > any_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Api > api_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Duration > duration_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Empty > empty_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask > field_mask_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceContext > source_context_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Struct > struct_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp > timestamp_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Type > type_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::DoubleValue > double_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FloatValue > float_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int64Value > int64_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt64Value > uint64_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int32Value > int32_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt32Value > uint32_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::BoolValue > bool_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::StringValue > string_field_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::BytesValue > bytes_field_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class OneofWellKnownTypes : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:protobuf_unittest.OneofWellKnownTypes) */ {
 public:
  OneofWellKnownTypes();
  virtual ~OneofWellKnownTypes();

  OneofWellKnownTypes(const OneofWellKnownTypes& from);

  inline OneofWellKnownTypes& operator=(const OneofWellKnownTypes& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  OneofWellKnownTypes(OneofWellKnownTypes&& from) noexcept
    : OneofWellKnownTypes() {
    *this = ::std::move(from);
  }

  inline OneofWellKnownTypes& operator=(OneofWellKnownTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const OneofWellKnownTypes& default_instance();

  enum OneofFieldCase {
    kAnyField = 1,
    kApiField = 2,
    kDurationField = 3,
    kEmptyField = 4,
    kFieldMaskField = 5,
    kSourceContextField = 6,
    kStructField = 7,
    kTimestampField = 8,
    kTypeField = 9,
    kDoubleField = 10,
    kFloatField = 11,
    kInt64Field = 12,
    kUint64Field = 13,
    kInt32Field = 14,
    kUint32Field = 15,
    kBoolField = 16,
    kStringField = 17,
    kBytesField = 18,
    ONEOF_FIELD_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OneofWellKnownTypes* internal_default_instance() {
    return reinterpret_cast<const OneofWellKnownTypes*>(
               &_OneofWellKnownTypes_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(OneofWellKnownTypes* other);
  friend void swap(OneofWellKnownTypes& a, OneofWellKnownTypes& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline OneofWellKnownTypes* New() const final {
    return CreateMaybeMessage<OneofWellKnownTypes>(NULL);
  }

  OneofWellKnownTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<OneofWellKnownTypes>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const OneofWellKnownTypes& from);
  void MergeFrom(const OneofWellKnownTypes& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OneofWellKnownTypes* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.Any any_field = 1;
  bool has_any_field() const;
  void clear_any_field();
  static const int kAnyFieldFieldNumber = 1;
  private:
  const ::google::protobuf::Any& _internal_any_field() const;
  public:
  const ::google::protobuf::Any& any_field() const;
  ::google::protobuf::Any* release_any_field();
  ::google::protobuf::Any* mutable_any_field();
  void set_allocated_any_field(::google::protobuf::Any* any_field);

  // .google.protobuf.Api api_field = 2;
  bool has_api_field() const;
  void clear_api_field();
  static const int kApiFieldFieldNumber = 2;
  private:
  const ::google::protobuf::Api& _internal_api_field() const;
  public:
  const ::google::protobuf::Api& api_field() const;
  ::google::protobuf::Api* release_api_field();
  ::google::protobuf::Api* mutable_api_field();
  void set_allocated_api_field(::google::protobuf::Api* api_field);

  // .google.protobuf.Duration duration_field = 3;
  bool has_duration_field() const;
  void clear_duration_field();
  static const int kDurationFieldFieldNumber = 3;
  private:
  const ::google::protobuf::Duration& _internal_duration_field() const;
  public:
  const ::google::protobuf::Duration& duration_field() const;
  ::google::protobuf::Duration* release_duration_field();
  ::google::protobuf::Duration* mutable_duration_field();
  void set_allocated_duration_field(::google::protobuf::Duration* duration_field);

  // .google.protobuf.Empty empty_field = 4;
  bool has_empty_field() const;
  void clear_empty_field();
  static const int kEmptyFieldFieldNumber = 4;
  private:
  const ::google::protobuf::Empty& _internal_empty_field() const;
  public:
  const ::google::protobuf::Empty& empty_field() const;
  ::google::protobuf::Empty* release_empty_field();
  ::google::protobuf::Empty* mutable_empty_field();
  void set_allocated_empty_field(::google::protobuf::Empty* empty_field);

  // .google.protobuf.FieldMask field_mask_field = 5;
  bool has_field_mask_field() const;
  void clear_field_mask_field();
  static const int kFieldMaskFieldFieldNumber = 5;
  private:
  const ::google::protobuf::FieldMask& _internal_field_mask_field() const;
  public:
  const ::google::protobuf::FieldMask& field_mask_field() const;
  ::google::protobuf::FieldMask* release_field_mask_field();
  ::google::protobuf::FieldMask* mutable_field_mask_field();
  void set_allocated_field_mask_field(::google::protobuf::FieldMask* field_mask_field);

  // .google.protobuf.SourceContext source_context_field = 6;
  bool has_source_context_field() const;
  void clear_source_context_field();
  static const int kSourceContextFieldFieldNumber = 6;
  private:
  const ::google::protobuf::SourceContext& _internal_source_context_field() const;
  public:
  const ::google::protobuf::SourceContext& source_context_field() const;
  ::google::protobuf::SourceContext* release_source_context_field();
  ::google::protobuf::SourceContext* mutable_source_context_field();
  void set_allocated_source_context_field(::google::protobuf::SourceContext* source_context_field);

  // .google.protobuf.Struct struct_field = 7;
  bool has_struct_field() const;
  void clear_struct_field();
  static const int kStructFieldFieldNumber = 7;
  private:
  const ::google::protobuf::Struct& _internal_struct_field() const;
  public:
  const ::google::protobuf::Struct& struct_field() const;
  ::google::protobuf::Struct* release_struct_field();
  ::google::protobuf::Struct* mutable_struct_field();
  void set_allocated_struct_field(::google::protobuf::Struct* struct_field);

  // .google.protobuf.Timestamp timestamp_field = 8;
  bool has_timestamp_field() const;
  void clear_timestamp_field();
  static const int kTimestampFieldFieldNumber = 8;
  private:
  const ::google::protobuf::Timestamp& _internal_timestamp_field() const;
  public:
  const ::google::protobuf::Timestamp& timestamp_field() const;
  ::google::protobuf::Timestamp* release_timestamp_field();
  ::google::protobuf::Timestamp* mutable_timestamp_field();
  void set_allocated_timestamp_field(::google::protobuf::Timestamp* timestamp_field);

  // .google.protobuf.Type type_field = 9;
  bool has_type_field() const;
  void clear_type_field();
  static const int kTypeFieldFieldNumber = 9;
  private:
  const ::google::protobuf::Type& _internal_type_field() const;
  public:
  const ::google::protobuf::Type& type_field() const;
  ::google::protobuf::Type* release_type_field();
  ::google::protobuf::Type* mutable_type_field();
  void set_allocated_type_field(::google::protobuf::Type* type_field);

  // .google.protobuf.DoubleValue double_field = 10;
  bool has_double_field() const;
  void clear_double_field();
  static const int kDoubleFieldFieldNumber = 10;
  private:
  const ::google::protobuf::DoubleValue& _internal_double_field() const;
  public:
  const ::google::protobuf::DoubleValue& double_field() const;
  ::google::protobuf::DoubleValue* release_double_field();
  ::google::protobuf::DoubleValue* mutable_double_field();
  void set_allocated_double_field(::google::protobuf::DoubleValue* double_field);

  // .google.protobuf.FloatValue float_field = 11;
  bool has_float_field() const;
  void clear_float_field();
  static const int kFloatFieldFieldNumber = 11;
  private:
  const ::google::protobuf::FloatValue& _internal_float_field() const;
  public:
  const ::google::protobuf::FloatValue& float_field() const;
  ::google::protobuf::FloatValue* release_float_field();
  ::google::protobuf::FloatValue* mutable_float_field();
  void set_allocated_float_field(::google::protobuf::FloatValue* float_field);

  // .google.protobuf.Int64Value int64_field = 12;
  bool has_int64_field() const;
  void clear_int64_field();
  static const int kInt64FieldFieldNumber = 12;
  private:
  const ::google::protobuf::Int64Value& _internal_int64_field() const;
  public:
  const ::google::protobuf::Int64Value& int64_field() const;
  ::google::protobuf::Int64Value* release_int64_field();
  ::google::protobuf::Int64Value* mutable_int64_field();
  void set_allocated_int64_field(::google::protobuf::Int64Value* int64_field);

  // .google.protobuf.UInt64Value uint64_field = 13;
  bool has_uint64_field() const;
  void clear_uint64_field();
  static const int kUint64FieldFieldNumber = 13;
  private:
  const ::google::protobuf::UInt64Value& _internal_uint64_field() const;
  public:
  const ::google::protobuf::UInt64Value& uint64_field() const;
  ::google::protobuf::UInt64Value* release_uint64_field();
  ::google::protobuf::UInt64Value* mutable_uint64_field();
  void set_allocated_uint64_field(::google::protobuf::UInt64Value* uint64_field);

  // .google.protobuf.Int32Value int32_field = 14;
  bool has_int32_field() const;
  void clear_int32_field();
  static const int kInt32FieldFieldNumber = 14;
  private:
  const ::google::protobuf::Int32Value& _internal_int32_field() const;
  public:
  const ::google::protobuf::Int32Value& int32_field() const;
  ::google::protobuf::Int32Value* release_int32_field();
  ::google::protobuf::Int32Value* mutable_int32_field();
  void set_allocated_int32_field(::google::protobuf::Int32Value* int32_field);

  // .google.protobuf.UInt32Value uint32_field = 15;
  bool has_uint32_field() const;
  void clear_uint32_field();
  static const int kUint32FieldFieldNumber = 15;
  private:
  const ::google::protobuf::UInt32Value& _internal_uint32_field() const;
  public:
  const ::google::protobuf::UInt32Value& uint32_field() const;
  ::google::protobuf::UInt32Value* release_uint32_field();
  ::google::protobuf::UInt32Value* mutable_uint32_field();
  void set_allocated_uint32_field(::google::protobuf::UInt32Value* uint32_field);

  // .google.protobuf.BoolValue bool_field = 16;
  bool has_bool_field() const;
  void clear_bool_field();
  static const int kBoolFieldFieldNumber = 16;
  private:
  const ::google::protobuf::BoolValue& _internal_bool_field() const;
  public:
  const ::google::protobuf::BoolValue& bool_field() const;
  ::google::protobuf::BoolValue* release_bool_field();
  ::google::protobuf::BoolValue* mutable_bool_field();
  void set_allocated_bool_field(::google::protobuf::BoolValue* bool_field);

  // .google.protobuf.StringValue string_field = 17;
  bool has_string_field() const;
  void clear_string_field();
  static const int kStringFieldFieldNumber = 17;
  private:
  const ::google::protobuf::StringValue& _internal_string_field() const;
  public:
  const ::google::protobuf::StringValue& string_field() const;
  ::google::protobuf::StringValue* release_string_field();
  ::google::protobuf::StringValue* mutable_string_field();
  void set_allocated_string_field(::google::protobuf::StringValue* string_field);

  // .google.protobuf.BytesValue bytes_field = 18;
  bool has_bytes_field() const;
  void clear_bytes_field();
  static const int kBytesFieldFieldNumber = 18;
  private:
  const ::google::protobuf::BytesValue& _internal_bytes_field() const;
  public:
  const ::google::protobuf::BytesValue& bytes_field() const;
  ::google::protobuf::BytesValue* release_bytes_field();
  ::google::protobuf::BytesValue* mutable_bytes_field();
  void set_allocated_bytes_field(::google::protobuf::BytesValue* bytes_field);

  void clear_oneof_field();
  OneofFieldCase oneof_field_case() const;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.OneofWellKnownTypes)
 private:
  void set_has_any_field();
  void set_has_api_field();
  void set_has_duration_field();
  void set_has_empty_field();
  void set_has_field_mask_field();
  void set_has_source_context_field();
  void set_has_struct_field();
  void set_has_timestamp_field();
  void set_has_type_field();
  void set_has_double_field();
  void set_has_float_field();
  void set_has_int64_field();
  void set_has_uint64_field();
  void set_has_int32_field();
  void set_has_uint32_field();
  void set_has_bool_field();
  void set_has_string_field();
  void set_has_bytes_field();

  inline bool has_oneof_field() const;
  inline void clear_has_oneof_field();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  union OneofFieldUnion {
    OneofFieldUnion() {}
    ::google::protobuf::Any* any_field_;
    ::google::protobuf::Api* api_field_;
    ::google::protobuf::Duration* duration_field_;
    ::google::protobuf::Empty* empty_field_;
    ::google::protobuf::FieldMask* field_mask_field_;
    ::google::protobuf::SourceContext* source_context_field_;
    ::google::protobuf::Struct* struct_field_;
    ::google::protobuf::Timestamp* timestamp_field_;
    ::google::protobuf::Type* type_field_;
    ::google::protobuf::DoubleValue* double_field_;
    ::google::protobuf::FloatValue* float_field_;
    ::google::protobuf::Int64Value* int64_field_;
    ::google::protobuf::UInt64Value* uint64_field_;
    ::google::protobuf::Int32Value* int32_field_;
    ::google::protobuf::UInt32Value* uint32_field_;
    ::google::protobuf::BoolValue* bool_field_;
    ::google::protobuf::StringValue* string_field_;
    ::google::protobuf::BytesValue* bytes_field_;
  } oneof_field_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class MapWellKnownTypes_AnyFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_AnyFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Any,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_AnyFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Any,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_AnyFieldEntry_DoNotUse();
  MapWellKnownTypes_AnyFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_AnyFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_AnyFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_AnyFieldEntry_DoNotUse*>(&_MapWellKnownTypes_AnyFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_ApiFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_ApiFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Api,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_ApiFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Api,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_ApiFieldEntry_DoNotUse();
  MapWellKnownTypes_ApiFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_ApiFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_ApiFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_ApiFieldEntry_DoNotUse*>(&_MapWellKnownTypes_ApiFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_DurationFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_DurationFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Duration,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_DurationFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Duration,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_DurationFieldEntry_DoNotUse();
  MapWellKnownTypes_DurationFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_DurationFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_DurationFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_DurationFieldEntry_DoNotUse*>(&_MapWellKnownTypes_DurationFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_EmptyFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_EmptyFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Empty,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_EmptyFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Empty,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_EmptyFieldEntry_DoNotUse();
  MapWellKnownTypes_EmptyFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_EmptyFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_EmptyFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_EmptyFieldEntry_DoNotUse*>(&_MapWellKnownTypes_EmptyFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::FieldMask,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::FieldMask,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse();
  MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse*>(&_MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_SourceContextFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_SourceContextFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::SourceContext,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_SourceContextFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::SourceContext,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_SourceContextFieldEntry_DoNotUse();
  MapWellKnownTypes_SourceContextFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_SourceContextFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_SourceContextFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_SourceContextFieldEntry_DoNotUse*>(&_MapWellKnownTypes_SourceContextFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_StructFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_StructFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Struct,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_StructFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Struct,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_StructFieldEntry_DoNotUse();
  MapWellKnownTypes_StructFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_StructFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_StructFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_StructFieldEntry_DoNotUse*>(&_MapWellKnownTypes_StructFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_TimestampFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_TimestampFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Timestamp,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_TimestampFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Timestamp,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_TimestampFieldEntry_DoNotUse();
  MapWellKnownTypes_TimestampFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_TimestampFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_TimestampFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_TimestampFieldEntry_DoNotUse*>(&_MapWellKnownTypes_TimestampFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_TypeFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_TypeFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Type,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_TypeFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Type,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_TypeFieldEntry_DoNotUse();
  MapWellKnownTypes_TypeFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_TypeFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_TypeFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_TypeFieldEntry_DoNotUse*>(&_MapWellKnownTypes_TypeFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_DoubleFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_DoubleFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::DoubleValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_DoubleFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::DoubleValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_DoubleFieldEntry_DoNotUse();
  MapWellKnownTypes_DoubleFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_DoubleFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_DoubleFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_DoubleFieldEntry_DoNotUse*>(&_MapWellKnownTypes_DoubleFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_FloatFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_FloatFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::FloatValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_FloatFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::FloatValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_FloatFieldEntry_DoNotUse();
  MapWellKnownTypes_FloatFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_FloatFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_FloatFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_FloatFieldEntry_DoNotUse*>(&_MapWellKnownTypes_FloatFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_Int64FieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Int64FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Int64Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Int64FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Int64Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_Int64FieldEntry_DoNotUse();
  MapWellKnownTypes_Int64FieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_Int64FieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_Int64FieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_Int64FieldEntry_DoNotUse*>(&_MapWellKnownTypes_Int64FieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_Uint64FieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Uint64FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::UInt64Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Uint64FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::UInt64Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_Uint64FieldEntry_DoNotUse();
  MapWellKnownTypes_Uint64FieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_Uint64FieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_Uint64FieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_Uint64FieldEntry_DoNotUse*>(&_MapWellKnownTypes_Uint64FieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_Int32FieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Int32FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Int32Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Int32FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::Int32Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_Int32FieldEntry_DoNotUse();
  MapWellKnownTypes_Int32FieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_Int32FieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_Int32FieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_Int32FieldEntry_DoNotUse*>(&_MapWellKnownTypes_Int32FieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_Uint32FieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Uint32FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::UInt32Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_Uint32FieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::UInt32Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_Uint32FieldEntry_DoNotUse();
  MapWellKnownTypes_Uint32FieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_Uint32FieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_Uint32FieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_Uint32FieldEntry_DoNotUse*>(&_MapWellKnownTypes_Uint32FieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_BoolFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_BoolFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::BoolValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_BoolFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::BoolValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_BoolFieldEntry_DoNotUse();
  MapWellKnownTypes_BoolFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_BoolFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_BoolFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_BoolFieldEntry_DoNotUse*>(&_MapWellKnownTypes_BoolFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_StringFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_StringFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::StringValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_StringFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::StringValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_StringFieldEntry_DoNotUse();
  MapWellKnownTypes_StringFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_StringFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_StringFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_StringFieldEntry_DoNotUse*>(&_MapWellKnownTypes_StringFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes_BytesFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapWellKnownTypes_BytesFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::BytesValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapWellKnownTypes_BytesFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::BytesValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapWellKnownTypes_BytesFieldEntry_DoNotUse();
  MapWellKnownTypes_BytesFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapWellKnownTypes_BytesFieldEntry_DoNotUse& other);
  static const MapWellKnownTypes_BytesFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapWellKnownTypes_BytesFieldEntry_DoNotUse*>(&_MapWellKnownTypes_BytesFieldEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MapWellKnownTypes : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:protobuf_unittest.MapWellKnownTypes) */ {
 public:
  MapWellKnownTypes();
  virtual ~MapWellKnownTypes();

  MapWellKnownTypes(const MapWellKnownTypes& from);

  inline MapWellKnownTypes& operator=(const MapWellKnownTypes& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  MapWellKnownTypes(MapWellKnownTypes&& from) noexcept
    : MapWellKnownTypes() {
    *this = ::std::move(from);
  }

  inline MapWellKnownTypes& operator=(MapWellKnownTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const MapWellKnownTypes& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MapWellKnownTypes* internal_default_instance() {
    return reinterpret_cast<const MapWellKnownTypes*>(
               &_MapWellKnownTypes_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  void Swap(MapWellKnownTypes* other);
  friend void swap(MapWellKnownTypes& a, MapWellKnownTypes& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline MapWellKnownTypes* New() const final {
    return CreateMaybeMessage<MapWellKnownTypes>(NULL);
  }

  MapWellKnownTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MapWellKnownTypes>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MapWellKnownTypes& from);
  void MergeFrom(const MapWellKnownTypes& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MapWellKnownTypes* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<int32, .google.protobuf.Any> any_field = 1;
  int any_field_size() const;
  void clear_any_field();
  static const int kAnyFieldFieldNumber = 1;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Any >&
      any_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Any >*
      mutable_any_field();

  // map<int32, .google.protobuf.Api> api_field = 2;
  int api_field_size() const;
  void clear_api_field();
  static const int kApiFieldFieldNumber = 2;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Api >&
      api_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Api >*
      mutable_api_field();

  // map<int32, .google.protobuf.Duration> duration_field = 3;
  int duration_field_size() const;
  void clear_duration_field();
  static const int kDurationFieldFieldNumber = 3;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Duration >&
      duration_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Duration >*
      mutable_duration_field();

  // map<int32, .google.protobuf.Empty> empty_field = 4;
  int empty_field_size() const;
  void clear_empty_field();
  static const int kEmptyFieldFieldNumber = 4;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Empty >&
      empty_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Empty >*
      mutable_empty_field();

  // map<int32, .google.protobuf.FieldMask> field_mask_field = 5;
  int field_mask_field_size() const;
  void clear_field_mask_field();
  static const int kFieldMaskFieldFieldNumber = 5;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FieldMask >&
      field_mask_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FieldMask >*
      mutable_field_mask_field();

  // map<int32, .google.protobuf.SourceContext> source_context_field = 6;
  int source_context_field_size() const;
  void clear_source_context_field();
  static const int kSourceContextFieldFieldNumber = 6;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::SourceContext >&
      source_context_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::SourceContext >*
      mutable_source_context_field();

  // map<int32, .google.protobuf.Struct> struct_field = 7;
  int struct_field_size() const;
  void clear_struct_field();
  static const int kStructFieldFieldNumber = 7;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Struct >&
      struct_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Struct >*
      mutable_struct_field();

  // map<int32, .google.protobuf.Timestamp> timestamp_field = 8;
  int timestamp_field_size() const;
  void clear_timestamp_field();
  static const int kTimestampFieldFieldNumber = 8;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Timestamp >&
      timestamp_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Timestamp >*
      mutable_timestamp_field();

  // map<int32, .google.protobuf.Type> type_field = 9;
  int type_field_size() const;
  void clear_type_field();
  static const int kTypeFieldFieldNumber = 9;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Type >&
      type_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Type >*
      mutable_type_field();

  // map<int32, .google.protobuf.DoubleValue> double_field = 10;
  int double_field_size() const;
  void clear_double_field();
  static const int kDoubleFieldFieldNumber = 10;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::DoubleValue >&
      double_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::DoubleValue >*
      mutable_double_field();

  // map<int32, .google.protobuf.FloatValue> float_field = 11;
  int float_field_size() const;
  void clear_float_field();
  static const int kFloatFieldFieldNumber = 11;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FloatValue >&
      float_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FloatValue >*
      mutable_float_field();

  // map<int32, .google.protobuf.Int64Value> int64_field = 12;
  int int64_field_size() const;
  void clear_int64_field();
  static const int kInt64FieldFieldNumber = 12;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int64Value >&
      int64_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int64Value >*
      mutable_int64_field();

  // map<int32, .google.protobuf.UInt64Value> uint64_field = 13;
  int uint64_field_size() const;
  void clear_uint64_field();
  static const int kUint64FieldFieldNumber = 13;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt64Value >&
      uint64_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt64Value >*
      mutable_uint64_field();

  // map<int32, .google.protobuf.Int32Value> int32_field = 14;
  int int32_field_size() const;
  void clear_int32_field();
  static const int kInt32FieldFieldNumber = 14;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int32Value >&
      int32_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int32Value >*
      mutable_int32_field();

  // map<int32, .google.protobuf.UInt32Value> uint32_field = 15;
  int uint32_field_size() const;
  void clear_uint32_field();
  static const int kUint32FieldFieldNumber = 15;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt32Value >&
      uint32_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt32Value >*
      mutable_uint32_field();

  // map<int32, .google.protobuf.BoolValue> bool_field = 16;
  int bool_field_size() const;
  void clear_bool_field();
  static const int kBoolFieldFieldNumber = 16;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BoolValue >&
      bool_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BoolValue >*
      mutable_bool_field();

  // map<int32, .google.protobuf.StringValue> string_field = 17;
  int string_field_size() const;
  void clear_string_field();
  static const int kStringFieldFieldNumber = 17;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::StringValue >&
      string_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::StringValue >*
      mutable_string_field();

  // map<int32, .google.protobuf.BytesValue> bytes_field = 18;
  int bytes_field_size() const;
  void clear_bytes_field();
  static const int kBytesFieldFieldNumber = 18;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BytesValue >&
      bytes_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BytesValue >*
      mutable_bytes_field();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.MapWellKnownTypes)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_AnyFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Any,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > any_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_ApiFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Api,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > api_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_DurationFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Duration,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > duration_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_EmptyFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Empty,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > empty_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_FieldMaskFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::FieldMask,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > field_mask_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_SourceContextFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::SourceContext,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > source_context_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_StructFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Struct,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > struct_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_TimestampFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Timestamp,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > timestamp_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_TypeFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Type,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > type_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_DoubleFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::DoubleValue,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > double_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_FloatFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::FloatValue,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > float_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_Int64FieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Int64Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > int64_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_Uint64FieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::UInt64Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > uint64_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_Int32FieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::Int32Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > int32_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_Uint32FieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::UInt32Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > uint32_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_BoolFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::BoolValue,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > bool_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_StringFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::StringValue,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > string_field_;
  ::google::protobuf::internal::MapField<
      MapWellKnownTypes_BytesFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::BytesValue,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > bytes_field_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto::TableStruct;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// TestWellKnownTypes

// .google.protobuf.Any any_field = 1;
inline bool TestWellKnownTypes::has_any_field() const {
  return this != internal_default_instance() && any_field_ != NULL;
}
inline const ::google::protobuf::Any& TestWellKnownTypes::_internal_any_field() const {
  return *any_field_;
}
inline const ::google::protobuf::Any& TestWellKnownTypes::any_field() const {
  const ::google::protobuf::Any* p = any_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.any_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* TestWellKnownTypes::release_any_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.any_field)
  
  ::google::protobuf::Any* temp = any_field_;
  any_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* TestWellKnownTypes::mutable_any_field() {
  
  if (any_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    any_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.any_field)
  return any_field_;
}
inline void TestWellKnownTypes::set_allocated_any_field(::google::protobuf::Any* any_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(any_field_);
  }
  if (any_field) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_field, submessage_arena);
    }
    
  } else {
    
  }
  any_field_ = any_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.any_field)
}

// .google.protobuf.Api api_field = 2;
inline bool TestWellKnownTypes::has_api_field() const {
  return this != internal_default_instance() && api_field_ != NULL;
}
inline const ::google::protobuf::Api& TestWellKnownTypes::_internal_api_field() const {
  return *api_field_;
}
inline const ::google::protobuf::Api& TestWellKnownTypes::api_field() const {
  const ::google::protobuf::Api* p = api_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.api_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Api*>(
      &::google::protobuf::_Api_default_instance_);
}
inline ::google::protobuf::Api* TestWellKnownTypes::release_api_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.api_field)
  
  ::google::protobuf::Api* temp = api_field_;
  api_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Api* TestWellKnownTypes::mutable_api_field() {
  
  if (api_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Api>(GetArenaNoVirtual());
    api_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.api_field)
  return api_field_;
}
inline void TestWellKnownTypes::set_allocated_api_field(::google::protobuf::Api* api_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(api_field_);
  }
  if (api_field) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      api_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, api_field, submessage_arena);
    }
    
  } else {
    
  }
  api_field_ = api_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.api_field)
}

// .google.protobuf.Duration duration_field = 3;
inline bool TestWellKnownTypes::has_duration_field() const {
  return this != internal_default_instance() && duration_field_ != NULL;
}
inline const ::google::protobuf::Duration& TestWellKnownTypes::_internal_duration_field() const {
  return *duration_field_;
}
inline const ::google::protobuf::Duration& TestWellKnownTypes::duration_field() const {
  const ::google::protobuf::Duration* p = duration_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.duration_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Duration*>(
      &::google::protobuf::_Duration_default_instance_);
}
inline ::google::protobuf::Duration* TestWellKnownTypes::release_duration_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.duration_field)
  
  ::google::protobuf::Duration* temp = duration_field_;
  duration_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Duration* TestWellKnownTypes::mutable_duration_field() {
  
  if (duration_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Duration>(GetArenaNoVirtual());
    duration_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.duration_field)
  return duration_field_;
}
inline void TestWellKnownTypes::set_allocated_duration_field(::google::protobuf::Duration* duration_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(duration_field_);
  }
  if (duration_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(duration_field)->GetArena();
    if (message_arena != submessage_arena) {
      duration_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration_field, submessage_arena);
    }
    
  } else {
    
  }
  duration_field_ = duration_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.duration_field)
}

// .google.protobuf.Empty empty_field = 4;
inline bool TestWellKnownTypes::has_empty_field() const {
  return this != internal_default_instance() && empty_field_ != NULL;
}
inline const ::google::protobuf::Empty& TestWellKnownTypes::_internal_empty_field() const {
  return *empty_field_;
}
inline const ::google::protobuf::Empty& TestWellKnownTypes::empty_field() const {
  const ::google::protobuf::Empty* p = empty_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.empty_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Empty*>(
      &::google::protobuf::_Empty_default_instance_);
}
inline ::google::protobuf::Empty* TestWellKnownTypes::release_empty_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.empty_field)
  
  ::google::protobuf::Empty* temp = empty_field_;
  empty_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Empty* TestWellKnownTypes::mutable_empty_field() {
  
  if (empty_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Empty>(GetArenaNoVirtual());
    empty_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.empty_field)
  return empty_field_;
}
inline void TestWellKnownTypes::set_allocated_empty_field(::google::protobuf::Empty* empty_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(empty_field_);
  }
  if (empty_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(empty_field)->GetArena();
    if (message_arena != submessage_arena) {
      empty_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_field, submessage_arena);
    }
    
  } else {
    
  }
  empty_field_ = empty_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.empty_field)
}

// .google.protobuf.FieldMask field_mask_field = 5;
inline bool TestWellKnownTypes::has_field_mask_field() const {
  return this != internal_default_instance() && field_mask_field_ != NULL;
}
inline const ::google::protobuf::FieldMask& TestWellKnownTypes::_internal_field_mask_field() const {
  return *field_mask_field_;
}
inline const ::google::protobuf::FieldMask& TestWellKnownTypes::field_mask_field() const {
  const ::google::protobuf::FieldMask* p = field_mask_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.field_mask_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::FieldMask*>(
      &::google::protobuf::_FieldMask_default_instance_);
}
inline ::google::protobuf::FieldMask* TestWellKnownTypes::release_field_mask_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.field_mask_field)
  
  ::google::protobuf::FieldMask* temp = field_mask_field_;
  field_mask_field_ = NULL;
  return temp;
}
inline ::google::protobuf::FieldMask* TestWellKnownTypes::mutable_field_mask_field() {
  
  if (field_mask_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::FieldMask>(GetArenaNoVirtual());
    field_mask_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.field_mask_field)
  return field_mask_field_;
}
inline void TestWellKnownTypes::set_allocated_field_mask_field(::google::protobuf::FieldMask* field_mask_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(field_mask_field_);
  }
  if (field_mask_field) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      field_mask_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, field_mask_field, submessage_arena);
    }
    
  } else {
    
  }
  field_mask_field_ = field_mask_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.field_mask_field)
}

// .google.protobuf.SourceContext source_context_field = 6;
inline bool TestWellKnownTypes::has_source_context_field() const {
  return this != internal_default_instance() && source_context_field_ != NULL;
}
inline const ::google::protobuf::SourceContext& TestWellKnownTypes::_internal_source_context_field() const {
  return *source_context_field_;
}
inline const ::google::protobuf::SourceContext& TestWellKnownTypes::source_context_field() const {
  const ::google::protobuf::SourceContext* p = source_context_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.source_context_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::SourceContext*>(
      &::google::protobuf::_SourceContext_default_instance_);
}
inline ::google::protobuf::SourceContext* TestWellKnownTypes::release_source_context_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.source_context_field)
  
  ::google::protobuf::SourceContext* temp = source_context_field_;
  source_context_field_ = NULL;
  return temp;
}
inline ::google::protobuf::SourceContext* TestWellKnownTypes::mutable_source_context_field() {
  
  if (source_context_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::SourceContext>(GetArenaNoVirtual());
    source_context_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.source_context_field)
  return source_context_field_;
}
inline void TestWellKnownTypes::set_allocated_source_context_field(::google::protobuf::SourceContext* source_context_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(source_context_field_);
  }
  if (source_context_field) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      source_context_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, source_context_field, submessage_arena);
    }
    
  } else {
    
  }
  source_context_field_ = source_context_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.source_context_field)
}

// .google.protobuf.Struct struct_field = 7;
inline bool TestWellKnownTypes::has_struct_field() const {
  return this != internal_default_instance() && struct_field_ != NULL;
}
inline const ::google::protobuf::Struct& TestWellKnownTypes::_internal_struct_field() const {
  return *struct_field_;
}
inline const ::google::protobuf::Struct& TestWellKnownTypes::struct_field() const {
  const ::google::protobuf::Struct* p = struct_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.struct_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* TestWellKnownTypes::release_struct_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.struct_field)
  
  ::google::protobuf::Struct* temp = struct_field_;
  struct_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* TestWellKnownTypes::mutable_struct_field() {
  
  if (struct_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    struct_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.struct_field)
  return struct_field_;
}
inline void TestWellKnownTypes::set_allocated_struct_field(::google::protobuf::Struct* struct_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(struct_field_);
  }
  if (struct_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(struct_field)->GetArena();
    if (message_arena != submessage_arena) {
      struct_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_field, submessage_arena);
    }
    
  } else {
    
  }
  struct_field_ = struct_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.struct_field)
}

// .google.protobuf.Timestamp timestamp_field = 8;
inline bool TestWellKnownTypes::has_timestamp_field() const {
  return this != internal_default_instance() && timestamp_field_ != NULL;
}
inline const ::google::protobuf::Timestamp& TestWellKnownTypes::_internal_timestamp_field() const {
  return *timestamp_field_;
}
inline const ::google::protobuf::Timestamp& TestWellKnownTypes::timestamp_field() const {
  const ::google::protobuf::Timestamp* p = timestamp_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.timestamp_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* TestWellKnownTypes::release_timestamp_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.timestamp_field)
  
  ::google::protobuf::Timestamp* temp = timestamp_field_;
  timestamp_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* TestWellKnownTypes::mutable_timestamp_field() {
  
  if (timestamp_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    timestamp_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.timestamp_field)
  return timestamp_field_;
}
inline void TestWellKnownTypes::set_allocated_timestamp_field(::google::protobuf::Timestamp* timestamp_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(timestamp_field_);
  }
  if (timestamp_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(timestamp_field)->GetArena();
    if (message_arena != submessage_arena) {
      timestamp_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timestamp_field, submessage_arena);
    }
    
  } else {
    
  }
  timestamp_field_ = timestamp_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.timestamp_field)
}

// .google.protobuf.Type type_field = 9;
inline bool TestWellKnownTypes::has_type_field() const {
  return this != internal_default_instance() && type_field_ != NULL;
}
inline const ::google::protobuf::Type& TestWellKnownTypes::_internal_type_field() const {
  return *type_field_;
}
inline const ::google::protobuf::Type& TestWellKnownTypes::type_field() const {
  const ::google::protobuf::Type* p = type_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.type_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Type*>(
      &::google::protobuf::_Type_default_instance_);
}
inline ::google::protobuf::Type* TestWellKnownTypes::release_type_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.type_field)
  
  ::google::protobuf::Type* temp = type_field_;
  type_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Type* TestWellKnownTypes::mutable_type_field() {
  
  if (type_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Type>(GetArenaNoVirtual());
    type_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.type_field)
  return type_field_;
}
inline void TestWellKnownTypes::set_allocated_type_field(::google::protobuf::Type* type_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(type_field_);
  }
  if (type_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(type_field)->GetArena();
    if (message_arena != submessage_arena) {
      type_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, type_field, submessage_arena);
    }
    
  } else {
    
  }
  type_field_ = type_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.type_field)
}

// .google.protobuf.DoubleValue double_field = 10;
inline bool TestWellKnownTypes::has_double_field() const {
  return this != internal_default_instance() && double_field_ != NULL;
}
inline const ::google::protobuf::DoubleValue& TestWellKnownTypes::_internal_double_field() const {
  return *double_field_;
}
inline const ::google::protobuf::DoubleValue& TestWellKnownTypes::double_field() const {
  const ::google::protobuf::DoubleValue* p = double_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.double_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::DoubleValue*>(
      &::google::protobuf::_DoubleValue_default_instance_);
}
inline ::google::protobuf::DoubleValue* TestWellKnownTypes::release_double_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.double_field)
  
  ::google::protobuf::DoubleValue* temp = double_field_;
  double_field_ = NULL;
  return temp;
}
inline ::google::protobuf::DoubleValue* TestWellKnownTypes::mutable_double_field() {
  
  if (double_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::DoubleValue>(GetArenaNoVirtual());
    double_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.double_field)
  return double_field_;
}
inline void TestWellKnownTypes::set_allocated_double_field(::google::protobuf::DoubleValue* double_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(double_field_);
  }
  if (double_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(double_field)->GetArena();
    if (message_arena != submessage_arena) {
      double_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_field, submessage_arena);
    }
    
  } else {
    
  }
  double_field_ = double_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.double_field)
}

// .google.protobuf.FloatValue float_field = 11;
inline bool TestWellKnownTypes::has_float_field() const {
  return this != internal_default_instance() && float_field_ != NULL;
}
inline const ::google::protobuf::FloatValue& TestWellKnownTypes::_internal_float_field() const {
  return *float_field_;
}
inline const ::google::protobuf::FloatValue& TestWellKnownTypes::float_field() const {
  const ::google::protobuf::FloatValue* p = float_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.float_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::FloatValue*>(
      &::google::protobuf::_FloatValue_default_instance_);
}
inline ::google::protobuf::FloatValue* TestWellKnownTypes::release_float_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.float_field)
  
  ::google::protobuf::FloatValue* temp = float_field_;
  float_field_ = NULL;
  return temp;
}
inline ::google::protobuf::FloatValue* TestWellKnownTypes::mutable_float_field() {
  
  if (float_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::FloatValue>(GetArenaNoVirtual());
    float_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.float_field)
  return float_field_;
}
inline void TestWellKnownTypes::set_allocated_float_field(::google::protobuf::FloatValue* float_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(float_field_);
  }
  if (float_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(float_field)->GetArena();
    if (message_arena != submessage_arena) {
      float_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, float_field, submessage_arena);
    }
    
  } else {
    
  }
  float_field_ = float_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.float_field)
}

// .google.protobuf.Int64Value int64_field = 12;
inline bool TestWellKnownTypes::has_int64_field() const {
  return this != internal_default_instance() && int64_field_ != NULL;
}
inline const ::google::protobuf::Int64Value& TestWellKnownTypes::_internal_int64_field() const {
  return *int64_field_;
}
inline const ::google::protobuf::Int64Value& TestWellKnownTypes::int64_field() const {
  const ::google::protobuf::Int64Value* p = int64_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.int64_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Int64Value*>(
      &::google::protobuf::_Int64Value_default_instance_);
}
inline ::google::protobuf::Int64Value* TestWellKnownTypes::release_int64_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.int64_field)
  
  ::google::protobuf::Int64Value* temp = int64_field_;
  int64_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Int64Value* TestWellKnownTypes::mutable_int64_field() {
  
  if (int64_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Int64Value>(GetArenaNoVirtual());
    int64_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.int64_field)
  return int64_field_;
}
inline void TestWellKnownTypes::set_allocated_int64_field(::google::protobuf::Int64Value* int64_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(int64_field_);
  }
  if (int64_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(int64_field)->GetArena();
    if (message_arena != submessage_arena) {
      int64_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int64_field, submessage_arena);
    }
    
  } else {
    
  }
  int64_field_ = int64_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.int64_field)
}

// .google.protobuf.UInt64Value uint64_field = 13;
inline bool TestWellKnownTypes::has_uint64_field() const {
  return this != internal_default_instance() && uint64_field_ != NULL;
}
inline const ::google::protobuf::UInt64Value& TestWellKnownTypes::_internal_uint64_field() const {
  return *uint64_field_;
}
inline const ::google::protobuf::UInt64Value& TestWellKnownTypes::uint64_field() const {
  const ::google::protobuf::UInt64Value* p = uint64_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.uint64_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::UInt64Value*>(
      &::google::protobuf::_UInt64Value_default_instance_);
}
inline ::google::protobuf::UInt64Value* TestWellKnownTypes::release_uint64_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.uint64_field)
  
  ::google::protobuf::UInt64Value* temp = uint64_field_;
  uint64_field_ = NULL;
  return temp;
}
inline ::google::protobuf::UInt64Value* TestWellKnownTypes::mutable_uint64_field() {
  
  if (uint64_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::UInt64Value>(GetArenaNoVirtual());
    uint64_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.uint64_field)
  return uint64_field_;
}
inline void TestWellKnownTypes::set_allocated_uint64_field(::google::protobuf::UInt64Value* uint64_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(uint64_field_);
  }
  if (uint64_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(uint64_field)->GetArena();
    if (message_arena != submessage_arena) {
      uint64_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint64_field, submessage_arena);
    }
    
  } else {
    
  }
  uint64_field_ = uint64_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.uint64_field)
}

// .google.protobuf.Int32Value int32_field = 14;
inline bool TestWellKnownTypes::has_int32_field() const {
  return this != internal_default_instance() && int32_field_ != NULL;
}
inline const ::google::protobuf::Int32Value& TestWellKnownTypes::_internal_int32_field() const {
  return *int32_field_;
}
inline const ::google::protobuf::Int32Value& TestWellKnownTypes::int32_field() const {
  const ::google::protobuf::Int32Value* p = int32_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.int32_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Int32Value*>(
      &::google::protobuf::_Int32Value_default_instance_);
}
inline ::google::protobuf::Int32Value* TestWellKnownTypes::release_int32_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.int32_field)
  
  ::google::protobuf::Int32Value* temp = int32_field_;
  int32_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Int32Value* TestWellKnownTypes::mutable_int32_field() {
  
  if (int32_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Int32Value>(GetArenaNoVirtual());
    int32_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.int32_field)
  return int32_field_;
}
inline void TestWellKnownTypes::set_allocated_int32_field(::google::protobuf::Int32Value* int32_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(int32_field_);
  }
  if (int32_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(int32_field)->GetArena();
    if (message_arena != submessage_arena) {
      int32_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int32_field, submessage_arena);
    }
    
  } else {
    
  }
  int32_field_ = int32_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.int32_field)
}

// .google.protobuf.UInt32Value uint32_field = 15;
inline bool TestWellKnownTypes::has_uint32_field() const {
  return this != internal_default_instance() && uint32_field_ != NULL;
}
inline const ::google::protobuf::UInt32Value& TestWellKnownTypes::_internal_uint32_field() const {
  return *uint32_field_;
}
inline const ::google::protobuf::UInt32Value& TestWellKnownTypes::uint32_field() const {
  const ::google::protobuf::UInt32Value* p = uint32_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.uint32_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::UInt32Value*>(
      &::google::protobuf::_UInt32Value_default_instance_);
}
inline ::google::protobuf::UInt32Value* TestWellKnownTypes::release_uint32_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.uint32_field)
  
  ::google::protobuf::UInt32Value* temp = uint32_field_;
  uint32_field_ = NULL;
  return temp;
}
inline ::google::protobuf::UInt32Value* TestWellKnownTypes::mutable_uint32_field() {
  
  if (uint32_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::UInt32Value>(GetArenaNoVirtual());
    uint32_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.uint32_field)
  return uint32_field_;
}
inline void TestWellKnownTypes::set_allocated_uint32_field(::google::protobuf::UInt32Value* uint32_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(uint32_field_);
  }
  if (uint32_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(uint32_field)->GetArena();
    if (message_arena != submessage_arena) {
      uint32_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint32_field, submessage_arena);
    }
    
  } else {
    
  }
  uint32_field_ = uint32_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.uint32_field)
}

// .google.protobuf.BoolValue bool_field = 16;
inline bool TestWellKnownTypes::has_bool_field() const {
  return this != internal_default_instance() && bool_field_ != NULL;
}
inline const ::google::protobuf::BoolValue& TestWellKnownTypes::_internal_bool_field() const {
  return *bool_field_;
}
inline const ::google::protobuf::BoolValue& TestWellKnownTypes::bool_field() const {
  const ::google::protobuf::BoolValue* p = bool_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.bool_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::BoolValue*>(
      &::google::protobuf::_BoolValue_default_instance_);
}
inline ::google::protobuf::BoolValue* TestWellKnownTypes::release_bool_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.bool_field)
  
  ::google::protobuf::BoolValue* temp = bool_field_;
  bool_field_ = NULL;
  return temp;
}
inline ::google::protobuf::BoolValue* TestWellKnownTypes::mutable_bool_field() {
  
  if (bool_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::BoolValue>(GetArenaNoVirtual());
    bool_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.bool_field)
  return bool_field_;
}
inline void TestWellKnownTypes::set_allocated_bool_field(::google::protobuf::BoolValue* bool_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(bool_field_);
  }
  if (bool_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(bool_field)->GetArena();
    if (message_arena != submessage_arena) {
      bool_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bool_field, submessage_arena);
    }
    
  } else {
    
  }
  bool_field_ = bool_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.bool_field)
}

// .google.protobuf.StringValue string_field = 17;
inline bool TestWellKnownTypes::has_string_field() const {
  return this != internal_default_instance() && string_field_ != NULL;
}
inline const ::google::protobuf::StringValue& TestWellKnownTypes::_internal_string_field() const {
  return *string_field_;
}
inline const ::google::protobuf::StringValue& TestWellKnownTypes::string_field() const {
  const ::google::protobuf::StringValue* p = string_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.string_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::StringValue*>(
      &::google::protobuf::_StringValue_default_instance_);
}
inline ::google::protobuf::StringValue* TestWellKnownTypes::release_string_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.string_field)
  
  ::google::protobuf::StringValue* temp = string_field_;
  string_field_ = NULL;
  return temp;
}
inline ::google::protobuf::StringValue* TestWellKnownTypes::mutable_string_field() {
  
  if (string_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::StringValue>(GetArenaNoVirtual());
    string_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.string_field)
  return string_field_;
}
inline void TestWellKnownTypes::set_allocated_string_field(::google::protobuf::StringValue* string_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(string_field_);
  }
  if (string_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(string_field)->GetArena();
    if (message_arena != submessage_arena) {
      string_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, string_field, submessage_arena);
    }
    
  } else {
    
  }
  string_field_ = string_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.string_field)
}

// .google.protobuf.BytesValue bytes_field = 18;
inline bool TestWellKnownTypes::has_bytes_field() const {
  return this != internal_default_instance() && bytes_field_ != NULL;
}
inline const ::google::protobuf::BytesValue& TestWellKnownTypes::_internal_bytes_field() const {
  return *bytes_field_;
}
inline const ::google::protobuf::BytesValue& TestWellKnownTypes::bytes_field() const {
  const ::google::protobuf::BytesValue* p = bytes_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.bytes_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::BytesValue*>(
      &::google::protobuf::_BytesValue_default_instance_);
}
inline ::google::protobuf::BytesValue* TestWellKnownTypes::release_bytes_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.bytes_field)
  
  ::google::protobuf::BytesValue* temp = bytes_field_;
  bytes_field_ = NULL;
  return temp;
}
inline ::google::protobuf::BytesValue* TestWellKnownTypes::mutable_bytes_field() {
  
  if (bytes_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::BytesValue>(GetArenaNoVirtual());
    bytes_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.bytes_field)
  return bytes_field_;
}
inline void TestWellKnownTypes::set_allocated_bytes_field(::google::protobuf::BytesValue* bytes_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(bytes_field_);
  }
  if (bytes_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(bytes_field)->GetArena();
    if (message_arena != submessage_arena) {
      bytes_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bytes_field, submessage_arena);
    }
    
  } else {
    
  }
  bytes_field_ = bytes_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.bytes_field)
}

// .google.protobuf.Value value_field = 19;
inline bool TestWellKnownTypes::has_value_field() const {
  return this != internal_default_instance() && value_field_ != NULL;
}
inline const ::google::protobuf::Value& TestWellKnownTypes::_internal_value_field() const {
  return *value_field_;
}
inline const ::google::protobuf::Value& TestWellKnownTypes::value_field() const {
  const ::google::protobuf::Value* p = value_field_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestWellKnownTypes.value_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* TestWellKnownTypes::release_value_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestWellKnownTypes.value_field)
  
  ::google::protobuf::Value* temp = value_field_;
  value_field_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* TestWellKnownTypes::mutable_value_field() {
  
  if (value_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    value_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestWellKnownTypes.value_field)
  return value_field_;
}
inline void TestWellKnownTypes::set_allocated_value_field(::google::protobuf::Value* value_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(value_field_);
  }
  if (value_field) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(value_field)->GetArena();
    if (message_arena != submessage_arena) {
      value_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_field, submessage_arena);
    }
    
  } else {
    
  }
  value_field_ = value_field;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestWellKnownTypes.value_field)
}

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

// RepeatedWellKnownTypes

// repeated .google.protobuf.Any any_field = 1;
inline int RepeatedWellKnownTypes::any_field_size() const {
  return any_field_.size();
}
inline ::google::protobuf::Any* RepeatedWellKnownTypes::mutable_any_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.any_field)
  return any_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >*
RepeatedWellKnownTypes::mutable_any_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.any_field)
  return &any_field_;
}
inline const ::google::protobuf::Any& RepeatedWellKnownTypes::any_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.any_field)
  return any_field_.Get(index);
}
inline ::google::protobuf::Any* RepeatedWellKnownTypes::add_any_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.any_field)
  return any_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >&
RepeatedWellKnownTypes::any_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.any_field)
  return any_field_;
}

// repeated .google.protobuf.Api api_field = 2;
inline int RepeatedWellKnownTypes::api_field_size() const {
  return api_field_.size();
}
inline ::google::protobuf::Api* RepeatedWellKnownTypes::mutable_api_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.api_field)
  return api_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Api >*
RepeatedWellKnownTypes::mutable_api_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.api_field)
  return &api_field_;
}
inline const ::google::protobuf::Api& RepeatedWellKnownTypes::api_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.api_field)
  return api_field_.Get(index);
}
inline ::google::protobuf::Api* RepeatedWellKnownTypes::add_api_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.api_field)
  return api_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Api >&
RepeatedWellKnownTypes::api_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.api_field)
  return api_field_;
}

// repeated .google.protobuf.Duration duration_field = 3;
inline int RepeatedWellKnownTypes::duration_field_size() const {
  return duration_field_.size();
}
inline ::google::protobuf::Duration* RepeatedWellKnownTypes::mutable_duration_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.duration_field)
  return duration_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Duration >*
RepeatedWellKnownTypes::mutable_duration_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.duration_field)
  return &duration_field_;
}
inline const ::google::protobuf::Duration& RepeatedWellKnownTypes::duration_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.duration_field)
  return duration_field_.Get(index);
}
inline ::google::protobuf::Duration* RepeatedWellKnownTypes::add_duration_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.duration_field)
  return duration_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Duration >&
RepeatedWellKnownTypes::duration_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.duration_field)
  return duration_field_;
}

// repeated .google.protobuf.Empty empty_field = 4;
inline int RepeatedWellKnownTypes::empty_field_size() const {
  return empty_field_.size();
}
inline ::google::protobuf::Empty* RepeatedWellKnownTypes::mutable_empty_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.empty_field)
  return empty_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Empty >*
RepeatedWellKnownTypes::mutable_empty_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.empty_field)
  return &empty_field_;
}
inline const ::google::protobuf::Empty& RepeatedWellKnownTypes::empty_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.empty_field)
  return empty_field_.Get(index);
}
inline ::google::protobuf::Empty* RepeatedWellKnownTypes::add_empty_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.empty_field)
  return empty_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Empty >&
RepeatedWellKnownTypes::empty_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.empty_field)
  return empty_field_;
}

// repeated .google.protobuf.FieldMask field_mask_field = 5;
inline int RepeatedWellKnownTypes::field_mask_field_size() const {
  return field_mask_field_.size();
}
inline ::google::protobuf::FieldMask* RepeatedWellKnownTypes::mutable_field_mask_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.field_mask_field)
  return field_mask_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >*
RepeatedWellKnownTypes::mutable_field_mask_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.field_mask_field)
  return &field_mask_field_;
}
inline const ::google::protobuf::FieldMask& RepeatedWellKnownTypes::field_mask_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.field_mask_field)
  return field_mask_field_.Get(index);
}
inline ::google::protobuf::FieldMask* RepeatedWellKnownTypes::add_field_mask_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.field_mask_field)
  return field_mask_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >&
RepeatedWellKnownTypes::field_mask_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.field_mask_field)
  return field_mask_field_;
}

// repeated .google.protobuf.SourceContext source_context_field = 6;
inline int RepeatedWellKnownTypes::source_context_field_size() const {
  return source_context_field_.size();
}
inline ::google::protobuf::SourceContext* RepeatedWellKnownTypes::mutable_source_context_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.source_context_field)
  return source_context_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceContext >*
RepeatedWellKnownTypes::mutable_source_context_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.source_context_field)
  return &source_context_field_;
}
inline const ::google::protobuf::SourceContext& RepeatedWellKnownTypes::source_context_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.source_context_field)
  return source_context_field_.Get(index);
}
inline ::google::protobuf::SourceContext* RepeatedWellKnownTypes::add_source_context_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.source_context_field)
  return source_context_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceContext >&
RepeatedWellKnownTypes::source_context_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.source_context_field)
  return source_context_field_;
}

// repeated .google.protobuf.Struct struct_field = 7;
inline int RepeatedWellKnownTypes::struct_field_size() const {
  return struct_field_.size();
}
inline ::google::protobuf::Struct* RepeatedWellKnownTypes::mutable_struct_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.struct_field)
  return struct_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Struct >*
RepeatedWellKnownTypes::mutable_struct_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.struct_field)
  return &struct_field_;
}
inline const ::google::protobuf::Struct& RepeatedWellKnownTypes::struct_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.struct_field)
  return struct_field_.Get(index);
}
inline ::google::protobuf::Struct* RepeatedWellKnownTypes::add_struct_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.struct_field)
  return struct_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Struct >&
RepeatedWellKnownTypes::struct_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.struct_field)
  return struct_field_;
}

// repeated .google.protobuf.Timestamp timestamp_field = 8;
inline int RepeatedWellKnownTypes::timestamp_field_size() const {
  return timestamp_field_.size();
}
inline ::google::protobuf::Timestamp* RepeatedWellKnownTypes::mutable_timestamp_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.timestamp_field)
  return timestamp_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >*
RepeatedWellKnownTypes::mutable_timestamp_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.timestamp_field)
  return &timestamp_field_;
}
inline const ::google::protobuf::Timestamp& RepeatedWellKnownTypes::timestamp_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.timestamp_field)
  return timestamp_field_.Get(index);
}
inline ::google::protobuf::Timestamp* RepeatedWellKnownTypes::add_timestamp_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.timestamp_field)
  return timestamp_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >&
RepeatedWellKnownTypes::timestamp_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.timestamp_field)
  return timestamp_field_;
}

// repeated .google.protobuf.Type type_field = 9;
inline int RepeatedWellKnownTypes::type_field_size() const {
  return type_field_.size();
}
inline ::google::protobuf::Type* RepeatedWellKnownTypes::mutable_type_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.type_field)
  return type_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Type >*
RepeatedWellKnownTypes::mutable_type_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.type_field)
  return &type_field_;
}
inline const ::google::protobuf::Type& RepeatedWellKnownTypes::type_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.type_field)
  return type_field_.Get(index);
}
inline ::google::protobuf::Type* RepeatedWellKnownTypes::add_type_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.type_field)
  return type_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Type >&
RepeatedWellKnownTypes::type_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.type_field)
  return type_field_;
}

// repeated .google.protobuf.DoubleValue double_field = 10;
inline int RepeatedWellKnownTypes::double_field_size() const {
  return double_field_.size();
}
inline ::google::protobuf::DoubleValue* RepeatedWellKnownTypes::mutable_double_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.double_field)
  return double_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DoubleValue >*
RepeatedWellKnownTypes::mutable_double_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.double_field)
  return &double_field_;
}
inline const ::google::protobuf::DoubleValue& RepeatedWellKnownTypes::double_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.double_field)
  return double_field_.Get(index);
}
inline ::google::protobuf::DoubleValue* RepeatedWellKnownTypes::add_double_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.double_field)
  return double_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DoubleValue >&
RepeatedWellKnownTypes::double_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.double_field)
  return double_field_;
}

// repeated .google.protobuf.FloatValue float_field = 11;
inline int RepeatedWellKnownTypes::float_field_size() const {
  return float_field_.size();
}
inline ::google::protobuf::FloatValue* RepeatedWellKnownTypes::mutable_float_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.float_field)
  return float_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FloatValue >*
RepeatedWellKnownTypes::mutable_float_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.float_field)
  return &float_field_;
}
inline const ::google::protobuf::FloatValue& RepeatedWellKnownTypes::float_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.float_field)
  return float_field_.Get(index);
}
inline ::google::protobuf::FloatValue* RepeatedWellKnownTypes::add_float_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.float_field)
  return float_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FloatValue >&
RepeatedWellKnownTypes::float_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.float_field)
  return float_field_;
}

// repeated .google.protobuf.Int64Value int64_field = 12;
inline int RepeatedWellKnownTypes::int64_field_size() const {
  return int64_field_.size();
}
inline ::google::protobuf::Int64Value* RepeatedWellKnownTypes::mutable_int64_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.int64_field)
  return int64_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int64Value >*
RepeatedWellKnownTypes::mutable_int64_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.int64_field)
  return &int64_field_;
}
inline const ::google::protobuf::Int64Value& RepeatedWellKnownTypes::int64_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.int64_field)
  return int64_field_.Get(index);
}
inline ::google::protobuf::Int64Value* RepeatedWellKnownTypes::add_int64_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.int64_field)
  return int64_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int64Value >&
RepeatedWellKnownTypes::int64_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.int64_field)
  return int64_field_;
}

// repeated .google.protobuf.UInt64Value uint64_field = 13;
inline int RepeatedWellKnownTypes::uint64_field_size() const {
  return uint64_field_.size();
}
inline ::google::protobuf::UInt64Value* RepeatedWellKnownTypes::mutable_uint64_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.uint64_field)
  return uint64_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt64Value >*
RepeatedWellKnownTypes::mutable_uint64_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.uint64_field)
  return &uint64_field_;
}
inline const ::google::protobuf::UInt64Value& RepeatedWellKnownTypes::uint64_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.uint64_field)
  return uint64_field_.Get(index);
}
inline ::google::protobuf::UInt64Value* RepeatedWellKnownTypes::add_uint64_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.uint64_field)
  return uint64_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt64Value >&
RepeatedWellKnownTypes::uint64_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.uint64_field)
  return uint64_field_;
}

// repeated .google.protobuf.Int32Value int32_field = 14;
inline int RepeatedWellKnownTypes::int32_field_size() const {
  return int32_field_.size();
}
inline ::google::protobuf::Int32Value* RepeatedWellKnownTypes::mutable_int32_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.int32_field)
  return int32_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int32Value >*
RepeatedWellKnownTypes::mutable_int32_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.int32_field)
  return &int32_field_;
}
inline const ::google::protobuf::Int32Value& RepeatedWellKnownTypes::int32_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.int32_field)
  return int32_field_.Get(index);
}
inline ::google::protobuf::Int32Value* RepeatedWellKnownTypes::add_int32_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.int32_field)
  return int32_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Int32Value >&
RepeatedWellKnownTypes::int32_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.int32_field)
  return int32_field_;
}

// repeated .google.protobuf.UInt32Value uint32_field = 15;
inline int RepeatedWellKnownTypes::uint32_field_size() const {
  return uint32_field_.size();
}
inline ::google::protobuf::UInt32Value* RepeatedWellKnownTypes::mutable_uint32_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.uint32_field)
  return uint32_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt32Value >*
RepeatedWellKnownTypes::mutable_uint32_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.uint32_field)
  return &uint32_field_;
}
inline const ::google::protobuf::UInt32Value& RepeatedWellKnownTypes::uint32_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.uint32_field)
  return uint32_field_.Get(index);
}
inline ::google::protobuf::UInt32Value* RepeatedWellKnownTypes::add_uint32_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.uint32_field)
  return uint32_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UInt32Value >&
RepeatedWellKnownTypes::uint32_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.uint32_field)
  return uint32_field_;
}

// repeated .google.protobuf.BoolValue bool_field = 16;
inline int RepeatedWellKnownTypes::bool_field_size() const {
  return bool_field_.size();
}
inline ::google::protobuf::BoolValue* RepeatedWellKnownTypes::mutable_bool_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.bool_field)
  return bool_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::BoolValue >*
RepeatedWellKnownTypes::mutable_bool_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.bool_field)
  return &bool_field_;
}
inline const ::google::protobuf::BoolValue& RepeatedWellKnownTypes::bool_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.bool_field)
  return bool_field_.Get(index);
}
inline ::google::protobuf::BoolValue* RepeatedWellKnownTypes::add_bool_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.bool_field)
  return bool_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::BoolValue >&
RepeatedWellKnownTypes::bool_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.bool_field)
  return bool_field_;
}

// repeated .google.protobuf.StringValue string_field = 17;
inline int RepeatedWellKnownTypes::string_field_size() const {
  return string_field_.size();
}
inline ::google::protobuf::StringValue* RepeatedWellKnownTypes::mutable_string_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.string_field)
  return string_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::StringValue >*
RepeatedWellKnownTypes::mutable_string_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.string_field)
  return &string_field_;
}
inline const ::google::protobuf::StringValue& RepeatedWellKnownTypes::string_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.string_field)
  return string_field_.Get(index);
}
inline ::google::protobuf::StringValue* RepeatedWellKnownTypes::add_string_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.string_field)
  return string_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::StringValue >&
RepeatedWellKnownTypes::string_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.string_field)
  return string_field_;
}

// repeated .google.protobuf.BytesValue bytes_field = 18;
inline int RepeatedWellKnownTypes::bytes_field_size() const {
  return bytes_field_.size();
}
inline ::google::protobuf::BytesValue* RepeatedWellKnownTypes::mutable_bytes_field(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.RepeatedWellKnownTypes.bytes_field)
  return bytes_field_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::BytesValue >*
RepeatedWellKnownTypes::mutable_bytes_field() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.RepeatedWellKnownTypes.bytes_field)
  return &bytes_field_;
}
inline const ::google::protobuf::BytesValue& RepeatedWellKnownTypes::bytes_field(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedWellKnownTypes.bytes_field)
  return bytes_field_.Get(index);
}
inline ::google::protobuf::BytesValue* RepeatedWellKnownTypes::add_bytes_field() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.RepeatedWellKnownTypes.bytes_field)
  return bytes_field_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::BytesValue >&
RepeatedWellKnownTypes::bytes_field() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.RepeatedWellKnownTypes.bytes_field)
  return bytes_field_;
}

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

// OneofWellKnownTypes

// .google.protobuf.Any any_field = 1;
inline bool OneofWellKnownTypes::has_any_field() const {
  return oneof_field_case() == kAnyField;
}
inline void OneofWellKnownTypes::set_has_any_field() {
  _oneof_case_[0] = kAnyField;
}
inline const ::google::protobuf::Any& OneofWellKnownTypes::_internal_any_field() const {
  return *oneof_field_.any_field_;
}
inline ::google::protobuf::Any* OneofWellKnownTypes::release_any_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.any_field)
  if (has_any_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Any* temp = oneof_field_.any_field_;
    oneof_field_.any_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Any& OneofWellKnownTypes::any_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.any_field)
  return has_any_field()
      ? *oneof_field_.any_field_
      : *reinterpret_cast< ::google::protobuf::Any*>(&::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* OneofWellKnownTypes::mutable_any_field() {
  if (!has_any_field()) {
    clear_oneof_field();
    set_has_any_field();
    oneof_field_.any_field_ = CreateMaybeMessage< ::google::protobuf::Any >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.any_field)
  return oneof_field_.any_field_;
}

// .google.protobuf.Api api_field = 2;
inline bool OneofWellKnownTypes::has_api_field() const {
  return oneof_field_case() == kApiField;
}
inline void OneofWellKnownTypes::set_has_api_field() {
  _oneof_case_[0] = kApiField;
}
inline const ::google::protobuf::Api& OneofWellKnownTypes::_internal_api_field() const {
  return *oneof_field_.api_field_;
}
inline ::google::protobuf::Api* OneofWellKnownTypes::release_api_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.api_field)
  if (has_api_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Api* temp = oneof_field_.api_field_;
    oneof_field_.api_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Api& OneofWellKnownTypes::api_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.api_field)
  return has_api_field()
      ? *oneof_field_.api_field_
      : *reinterpret_cast< ::google::protobuf::Api*>(&::google::protobuf::_Api_default_instance_);
}
inline ::google::protobuf::Api* OneofWellKnownTypes::mutable_api_field() {
  if (!has_api_field()) {
    clear_oneof_field();
    set_has_api_field();
    oneof_field_.api_field_ = CreateMaybeMessage< ::google::protobuf::Api >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.api_field)
  return oneof_field_.api_field_;
}

// .google.protobuf.Duration duration_field = 3;
inline bool OneofWellKnownTypes::has_duration_field() const {
  return oneof_field_case() == kDurationField;
}
inline void OneofWellKnownTypes::set_has_duration_field() {
  _oneof_case_[0] = kDurationField;
}
inline const ::google::protobuf::Duration& OneofWellKnownTypes::_internal_duration_field() const {
  return *oneof_field_.duration_field_;
}
inline ::google::protobuf::Duration* OneofWellKnownTypes::release_duration_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.duration_field)
  if (has_duration_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Duration* temp = oneof_field_.duration_field_;
    oneof_field_.duration_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Duration& OneofWellKnownTypes::duration_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.duration_field)
  return has_duration_field()
      ? *oneof_field_.duration_field_
      : *reinterpret_cast< ::google::protobuf::Duration*>(&::google::protobuf::_Duration_default_instance_);
}
inline ::google::protobuf::Duration* OneofWellKnownTypes::mutable_duration_field() {
  if (!has_duration_field()) {
    clear_oneof_field();
    set_has_duration_field();
    oneof_field_.duration_field_ = CreateMaybeMessage< ::google::protobuf::Duration >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.duration_field)
  return oneof_field_.duration_field_;
}

// .google.protobuf.Empty empty_field = 4;
inline bool OneofWellKnownTypes::has_empty_field() const {
  return oneof_field_case() == kEmptyField;
}
inline void OneofWellKnownTypes::set_has_empty_field() {
  _oneof_case_[0] = kEmptyField;
}
inline const ::google::protobuf::Empty& OneofWellKnownTypes::_internal_empty_field() const {
  return *oneof_field_.empty_field_;
}
inline ::google::protobuf::Empty* OneofWellKnownTypes::release_empty_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.empty_field)
  if (has_empty_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Empty* temp = oneof_field_.empty_field_;
    oneof_field_.empty_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Empty& OneofWellKnownTypes::empty_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.empty_field)
  return has_empty_field()
      ? *oneof_field_.empty_field_
      : *reinterpret_cast< ::google::protobuf::Empty*>(&::google::protobuf::_Empty_default_instance_);
}
inline ::google::protobuf::Empty* OneofWellKnownTypes::mutable_empty_field() {
  if (!has_empty_field()) {
    clear_oneof_field();
    set_has_empty_field();
    oneof_field_.empty_field_ = CreateMaybeMessage< ::google::protobuf::Empty >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.empty_field)
  return oneof_field_.empty_field_;
}

// .google.protobuf.FieldMask field_mask_field = 5;
inline bool OneofWellKnownTypes::has_field_mask_field() const {
  return oneof_field_case() == kFieldMaskField;
}
inline void OneofWellKnownTypes::set_has_field_mask_field() {
  _oneof_case_[0] = kFieldMaskField;
}
inline const ::google::protobuf::FieldMask& OneofWellKnownTypes::_internal_field_mask_field() const {
  return *oneof_field_.field_mask_field_;
}
inline ::google::protobuf::FieldMask* OneofWellKnownTypes::release_field_mask_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.field_mask_field)
  if (has_field_mask_field()) {
    clear_has_oneof_field();
      ::google::protobuf::FieldMask* temp = oneof_field_.field_mask_field_;
    oneof_field_.field_mask_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::FieldMask& OneofWellKnownTypes::field_mask_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.field_mask_field)
  return has_field_mask_field()
      ? *oneof_field_.field_mask_field_
      : *reinterpret_cast< ::google::protobuf::FieldMask*>(&::google::protobuf::_FieldMask_default_instance_);
}
inline ::google::protobuf::FieldMask* OneofWellKnownTypes::mutable_field_mask_field() {
  if (!has_field_mask_field()) {
    clear_oneof_field();
    set_has_field_mask_field();
    oneof_field_.field_mask_field_ = CreateMaybeMessage< ::google::protobuf::FieldMask >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.field_mask_field)
  return oneof_field_.field_mask_field_;
}

// .google.protobuf.SourceContext source_context_field = 6;
inline bool OneofWellKnownTypes::has_source_context_field() const {
  return oneof_field_case() == kSourceContextField;
}
inline void OneofWellKnownTypes::set_has_source_context_field() {
  _oneof_case_[0] = kSourceContextField;
}
inline const ::google::protobuf::SourceContext& OneofWellKnownTypes::_internal_source_context_field() const {
  return *oneof_field_.source_context_field_;
}
inline ::google::protobuf::SourceContext* OneofWellKnownTypes::release_source_context_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.source_context_field)
  if (has_source_context_field()) {
    clear_has_oneof_field();
      ::google::protobuf::SourceContext* temp = oneof_field_.source_context_field_;
    oneof_field_.source_context_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::SourceContext& OneofWellKnownTypes::source_context_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.source_context_field)
  return has_source_context_field()
      ? *oneof_field_.source_context_field_
      : *reinterpret_cast< ::google::protobuf::SourceContext*>(&::google::protobuf::_SourceContext_default_instance_);
}
inline ::google::protobuf::SourceContext* OneofWellKnownTypes::mutable_source_context_field() {
  if (!has_source_context_field()) {
    clear_oneof_field();
    set_has_source_context_field();
    oneof_field_.source_context_field_ = CreateMaybeMessage< ::google::protobuf::SourceContext >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.source_context_field)
  return oneof_field_.source_context_field_;
}

// .google.protobuf.Struct struct_field = 7;
inline bool OneofWellKnownTypes::has_struct_field() const {
  return oneof_field_case() == kStructField;
}
inline void OneofWellKnownTypes::set_has_struct_field() {
  _oneof_case_[0] = kStructField;
}
inline const ::google::protobuf::Struct& OneofWellKnownTypes::_internal_struct_field() const {
  return *oneof_field_.struct_field_;
}
inline ::google::protobuf::Struct* OneofWellKnownTypes::release_struct_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.struct_field)
  if (has_struct_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Struct* temp = oneof_field_.struct_field_;
    oneof_field_.struct_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Struct& OneofWellKnownTypes::struct_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.struct_field)
  return has_struct_field()
      ? *oneof_field_.struct_field_
      : *reinterpret_cast< ::google::protobuf::Struct*>(&::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* OneofWellKnownTypes::mutable_struct_field() {
  if (!has_struct_field()) {
    clear_oneof_field();
    set_has_struct_field();
    oneof_field_.struct_field_ = CreateMaybeMessage< ::google::protobuf::Struct >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.struct_field)
  return oneof_field_.struct_field_;
}

// .google.protobuf.Timestamp timestamp_field = 8;
inline bool OneofWellKnownTypes::has_timestamp_field() const {
  return oneof_field_case() == kTimestampField;
}
inline void OneofWellKnownTypes::set_has_timestamp_field() {
  _oneof_case_[0] = kTimestampField;
}
inline const ::google::protobuf::Timestamp& OneofWellKnownTypes::_internal_timestamp_field() const {
  return *oneof_field_.timestamp_field_;
}
inline ::google::protobuf::Timestamp* OneofWellKnownTypes::release_timestamp_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.timestamp_field)
  if (has_timestamp_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Timestamp* temp = oneof_field_.timestamp_field_;
    oneof_field_.timestamp_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Timestamp& OneofWellKnownTypes::timestamp_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.timestamp_field)
  return has_timestamp_field()
      ? *oneof_field_.timestamp_field_
      : *reinterpret_cast< ::google::protobuf::Timestamp*>(&::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* OneofWellKnownTypes::mutable_timestamp_field() {
  if (!has_timestamp_field()) {
    clear_oneof_field();
    set_has_timestamp_field();
    oneof_field_.timestamp_field_ = CreateMaybeMessage< ::google::protobuf::Timestamp >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.timestamp_field)
  return oneof_field_.timestamp_field_;
}

// .google.protobuf.Type type_field = 9;
inline bool OneofWellKnownTypes::has_type_field() const {
  return oneof_field_case() == kTypeField;
}
inline void OneofWellKnownTypes::set_has_type_field() {
  _oneof_case_[0] = kTypeField;
}
inline const ::google::protobuf::Type& OneofWellKnownTypes::_internal_type_field() const {
  return *oneof_field_.type_field_;
}
inline ::google::protobuf::Type* OneofWellKnownTypes::release_type_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.type_field)
  if (has_type_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Type* temp = oneof_field_.type_field_;
    oneof_field_.type_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Type& OneofWellKnownTypes::type_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.type_field)
  return has_type_field()
      ? *oneof_field_.type_field_
      : *reinterpret_cast< ::google::protobuf::Type*>(&::google::protobuf::_Type_default_instance_);
}
inline ::google::protobuf::Type* OneofWellKnownTypes::mutable_type_field() {
  if (!has_type_field()) {
    clear_oneof_field();
    set_has_type_field();
    oneof_field_.type_field_ = CreateMaybeMessage< ::google::protobuf::Type >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.type_field)
  return oneof_field_.type_field_;
}

// .google.protobuf.DoubleValue double_field = 10;
inline bool OneofWellKnownTypes::has_double_field() const {
  return oneof_field_case() == kDoubleField;
}
inline void OneofWellKnownTypes::set_has_double_field() {
  _oneof_case_[0] = kDoubleField;
}
inline const ::google::protobuf::DoubleValue& OneofWellKnownTypes::_internal_double_field() const {
  return *oneof_field_.double_field_;
}
inline ::google::protobuf::DoubleValue* OneofWellKnownTypes::release_double_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.double_field)
  if (has_double_field()) {
    clear_has_oneof_field();
      ::google::protobuf::DoubleValue* temp = oneof_field_.double_field_;
    oneof_field_.double_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::DoubleValue& OneofWellKnownTypes::double_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.double_field)
  return has_double_field()
      ? *oneof_field_.double_field_
      : *reinterpret_cast< ::google::protobuf::DoubleValue*>(&::google::protobuf::_DoubleValue_default_instance_);
}
inline ::google::protobuf::DoubleValue* OneofWellKnownTypes::mutable_double_field() {
  if (!has_double_field()) {
    clear_oneof_field();
    set_has_double_field();
    oneof_field_.double_field_ = CreateMaybeMessage< ::google::protobuf::DoubleValue >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.double_field)
  return oneof_field_.double_field_;
}

// .google.protobuf.FloatValue float_field = 11;
inline bool OneofWellKnownTypes::has_float_field() const {
  return oneof_field_case() == kFloatField;
}
inline void OneofWellKnownTypes::set_has_float_field() {
  _oneof_case_[0] = kFloatField;
}
inline const ::google::protobuf::FloatValue& OneofWellKnownTypes::_internal_float_field() const {
  return *oneof_field_.float_field_;
}
inline ::google::protobuf::FloatValue* OneofWellKnownTypes::release_float_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.float_field)
  if (has_float_field()) {
    clear_has_oneof_field();
      ::google::protobuf::FloatValue* temp = oneof_field_.float_field_;
    oneof_field_.float_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::FloatValue& OneofWellKnownTypes::float_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.float_field)
  return has_float_field()
      ? *oneof_field_.float_field_
      : *reinterpret_cast< ::google::protobuf::FloatValue*>(&::google::protobuf::_FloatValue_default_instance_);
}
inline ::google::protobuf::FloatValue* OneofWellKnownTypes::mutable_float_field() {
  if (!has_float_field()) {
    clear_oneof_field();
    set_has_float_field();
    oneof_field_.float_field_ = CreateMaybeMessage< ::google::protobuf::FloatValue >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.float_field)
  return oneof_field_.float_field_;
}

// .google.protobuf.Int64Value int64_field = 12;
inline bool OneofWellKnownTypes::has_int64_field() const {
  return oneof_field_case() == kInt64Field;
}
inline void OneofWellKnownTypes::set_has_int64_field() {
  _oneof_case_[0] = kInt64Field;
}
inline const ::google::protobuf::Int64Value& OneofWellKnownTypes::_internal_int64_field() const {
  return *oneof_field_.int64_field_;
}
inline ::google::protobuf::Int64Value* OneofWellKnownTypes::release_int64_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.int64_field)
  if (has_int64_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Int64Value* temp = oneof_field_.int64_field_;
    oneof_field_.int64_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Int64Value& OneofWellKnownTypes::int64_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.int64_field)
  return has_int64_field()
      ? *oneof_field_.int64_field_
      : *reinterpret_cast< ::google::protobuf::Int64Value*>(&::google::protobuf::_Int64Value_default_instance_);
}
inline ::google::protobuf::Int64Value* OneofWellKnownTypes::mutable_int64_field() {
  if (!has_int64_field()) {
    clear_oneof_field();
    set_has_int64_field();
    oneof_field_.int64_field_ = CreateMaybeMessage< ::google::protobuf::Int64Value >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.int64_field)
  return oneof_field_.int64_field_;
}

// .google.protobuf.UInt64Value uint64_field = 13;
inline bool OneofWellKnownTypes::has_uint64_field() const {
  return oneof_field_case() == kUint64Field;
}
inline void OneofWellKnownTypes::set_has_uint64_field() {
  _oneof_case_[0] = kUint64Field;
}
inline const ::google::protobuf::UInt64Value& OneofWellKnownTypes::_internal_uint64_field() const {
  return *oneof_field_.uint64_field_;
}
inline ::google::protobuf::UInt64Value* OneofWellKnownTypes::release_uint64_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.uint64_field)
  if (has_uint64_field()) {
    clear_has_oneof_field();
      ::google::protobuf::UInt64Value* temp = oneof_field_.uint64_field_;
    oneof_field_.uint64_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::UInt64Value& OneofWellKnownTypes::uint64_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.uint64_field)
  return has_uint64_field()
      ? *oneof_field_.uint64_field_
      : *reinterpret_cast< ::google::protobuf::UInt64Value*>(&::google::protobuf::_UInt64Value_default_instance_);
}
inline ::google::protobuf::UInt64Value* OneofWellKnownTypes::mutable_uint64_field() {
  if (!has_uint64_field()) {
    clear_oneof_field();
    set_has_uint64_field();
    oneof_field_.uint64_field_ = CreateMaybeMessage< ::google::protobuf::UInt64Value >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.uint64_field)
  return oneof_field_.uint64_field_;
}

// .google.protobuf.Int32Value int32_field = 14;
inline bool OneofWellKnownTypes::has_int32_field() const {
  return oneof_field_case() == kInt32Field;
}
inline void OneofWellKnownTypes::set_has_int32_field() {
  _oneof_case_[0] = kInt32Field;
}
inline const ::google::protobuf::Int32Value& OneofWellKnownTypes::_internal_int32_field() const {
  return *oneof_field_.int32_field_;
}
inline ::google::protobuf::Int32Value* OneofWellKnownTypes::release_int32_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.int32_field)
  if (has_int32_field()) {
    clear_has_oneof_field();
      ::google::protobuf::Int32Value* temp = oneof_field_.int32_field_;
    oneof_field_.int32_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Int32Value& OneofWellKnownTypes::int32_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.int32_field)
  return has_int32_field()
      ? *oneof_field_.int32_field_
      : *reinterpret_cast< ::google::protobuf::Int32Value*>(&::google::protobuf::_Int32Value_default_instance_);
}
inline ::google::protobuf::Int32Value* OneofWellKnownTypes::mutable_int32_field() {
  if (!has_int32_field()) {
    clear_oneof_field();
    set_has_int32_field();
    oneof_field_.int32_field_ = CreateMaybeMessage< ::google::protobuf::Int32Value >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.int32_field)
  return oneof_field_.int32_field_;
}

// .google.protobuf.UInt32Value uint32_field = 15;
inline bool OneofWellKnownTypes::has_uint32_field() const {
  return oneof_field_case() == kUint32Field;
}
inline void OneofWellKnownTypes::set_has_uint32_field() {
  _oneof_case_[0] = kUint32Field;
}
inline const ::google::protobuf::UInt32Value& OneofWellKnownTypes::_internal_uint32_field() const {
  return *oneof_field_.uint32_field_;
}
inline ::google::protobuf::UInt32Value* OneofWellKnownTypes::release_uint32_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.uint32_field)
  if (has_uint32_field()) {
    clear_has_oneof_field();
      ::google::protobuf::UInt32Value* temp = oneof_field_.uint32_field_;
    oneof_field_.uint32_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::UInt32Value& OneofWellKnownTypes::uint32_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.uint32_field)
  return has_uint32_field()
      ? *oneof_field_.uint32_field_
      : *reinterpret_cast< ::google::protobuf::UInt32Value*>(&::google::protobuf::_UInt32Value_default_instance_);
}
inline ::google::protobuf::UInt32Value* OneofWellKnownTypes::mutable_uint32_field() {
  if (!has_uint32_field()) {
    clear_oneof_field();
    set_has_uint32_field();
    oneof_field_.uint32_field_ = CreateMaybeMessage< ::google::protobuf::UInt32Value >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.uint32_field)
  return oneof_field_.uint32_field_;
}

// .google.protobuf.BoolValue bool_field = 16;
inline bool OneofWellKnownTypes::has_bool_field() const {
  return oneof_field_case() == kBoolField;
}
inline void OneofWellKnownTypes::set_has_bool_field() {
  _oneof_case_[0] = kBoolField;
}
inline const ::google::protobuf::BoolValue& OneofWellKnownTypes::_internal_bool_field() const {
  return *oneof_field_.bool_field_;
}
inline ::google::protobuf::BoolValue* OneofWellKnownTypes::release_bool_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.bool_field)
  if (has_bool_field()) {
    clear_has_oneof_field();
      ::google::protobuf::BoolValue* temp = oneof_field_.bool_field_;
    oneof_field_.bool_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::BoolValue& OneofWellKnownTypes::bool_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.bool_field)
  return has_bool_field()
      ? *oneof_field_.bool_field_
      : *reinterpret_cast< ::google::protobuf::BoolValue*>(&::google::protobuf::_BoolValue_default_instance_);
}
inline ::google::protobuf::BoolValue* OneofWellKnownTypes::mutable_bool_field() {
  if (!has_bool_field()) {
    clear_oneof_field();
    set_has_bool_field();
    oneof_field_.bool_field_ = CreateMaybeMessage< ::google::protobuf::BoolValue >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.bool_field)
  return oneof_field_.bool_field_;
}

// .google.protobuf.StringValue string_field = 17;
inline bool OneofWellKnownTypes::has_string_field() const {
  return oneof_field_case() == kStringField;
}
inline void OneofWellKnownTypes::set_has_string_field() {
  _oneof_case_[0] = kStringField;
}
inline const ::google::protobuf::StringValue& OneofWellKnownTypes::_internal_string_field() const {
  return *oneof_field_.string_field_;
}
inline ::google::protobuf::StringValue* OneofWellKnownTypes::release_string_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.string_field)
  if (has_string_field()) {
    clear_has_oneof_field();
      ::google::protobuf::StringValue* temp = oneof_field_.string_field_;
    oneof_field_.string_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::StringValue& OneofWellKnownTypes::string_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.string_field)
  return has_string_field()
      ? *oneof_field_.string_field_
      : *reinterpret_cast< ::google::protobuf::StringValue*>(&::google::protobuf::_StringValue_default_instance_);
}
inline ::google::protobuf::StringValue* OneofWellKnownTypes::mutable_string_field() {
  if (!has_string_field()) {
    clear_oneof_field();
    set_has_string_field();
    oneof_field_.string_field_ = CreateMaybeMessage< ::google::protobuf::StringValue >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.string_field)
  return oneof_field_.string_field_;
}

// .google.protobuf.BytesValue bytes_field = 18;
inline bool OneofWellKnownTypes::has_bytes_field() const {
  return oneof_field_case() == kBytesField;
}
inline void OneofWellKnownTypes::set_has_bytes_field() {
  _oneof_case_[0] = kBytesField;
}
inline const ::google::protobuf::BytesValue& OneofWellKnownTypes::_internal_bytes_field() const {
  return *oneof_field_.bytes_field_;
}
inline ::google::protobuf::BytesValue* OneofWellKnownTypes::release_bytes_field() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.OneofWellKnownTypes.bytes_field)
  if (has_bytes_field()) {
    clear_has_oneof_field();
      ::google::protobuf::BytesValue* temp = oneof_field_.bytes_field_;
    oneof_field_.bytes_field_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::BytesValue& OneofWellKnownTypes::bytes_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OneofWellKnownTypes.bytes_field)
  return has_bytes_field()
      ? *oneof_field_.bytes_field_
      : *reinterpret_cast< ::google::protobuf::BytesValue*>(&::google::protobuf::_BytesValue_default_instance_);
}
inline ::google::protobuf::BytesValue* OneofWellKnownTypes::mutable_bytes_field() {
  if (!has_bytes_field()) {
    clear_oneof_field();
    set_has_bytes_field();
    oneof_field_.bytes_field_ = CreateMaybeMessage< ::google::protobuf::BytesValue >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.OneofWellKnownTypes.bytes_field)
  return oneof_field_.bytes_field_;
}

inline bool OneofWellKnownTypes::has_oneof_field() const {
  return oneof_field_case() != ONEOF_FIELD_NOT_SET;
}
inline void OneofWellKnownTypes::clear_has_oneof_field() {
  _oneof_case_[0] = ONEOF_FIELD_NOT_SET;
}
inline OneofWellKnownTypes::OneofFieldCase OneofWellKnownTypes::oneof_field_case() const {
  return OneofWellKnownTypes::OneofFieldCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// MapWellKnownTypes

// map<int32, .google.protobuf.Any> any_field = 1;
inline int MapWellKnownTypes::any_field_size() const {
  return any_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Any >&
MapWellKnownTypes::any_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.any_field)
  return any_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Any >*
MapWellKnownTypes::mutable_any_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.any_field)
  return any_field_.MutableMap();
}

// map<int32, .google.protobuf.Api> api_field = 2;
inline int MapWellKnownTypes::api_field_size() const {
  return api_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Api >&
MapWellKnownTypes::api_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.api_field)
  return api_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Api >*
MapWellKnownTypes::mutable_api_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.api_field)
  return api_field_.MutableMap();
}

// map<int32, .google.protobuf.Duration> duration_field = 3;
inline int MapWellKnownTypes::duration_field_size() const {
  return duration_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Duration >&
MapWellKnownTypes::duration_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.duration_field)
  return duration_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Duration >*
MapWellKnownTypes::mutable_duration_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.duration_field)
  return duration_field_.MutableMap();
}

// map<int32, .google.protobuf.Empty> empty_field = 4;
inline int MapWellKnownTypes::empty_field_size() const {
  return empty_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Empty >&
MapWellKnownTypes::empty_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.empty_field)
  return empty_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Empty >*
MapWellKnownTypes::mutable_empty_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.empty_field)
  return empty_field_.MutableMap();
}

// map<int32, .google.protobuf.FieldMask> field_mask_field = 5;
inline int MapWellKnownTypes::field_mask_field_size() const {
  return field_mask_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FieldMask >&
MapWellKnownTypes::field_mask_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.field_mask_field)
  return field_mask_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FieldMask >*
MapWellKnownTypes::mutable_field_mask_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.field_mask_field)
  return field_mask_field_.MutableMap();
}

// map<int32, .google.protobuf.SourceContext> source_context_field = 6;
inline int MapWellKnownTypes::source_context_field_size() const {
  return source_context_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::SourceContext >&
MapWellKnownTypes::source_context_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.source_context_field)
  return source_context_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::SourceContext >*
MapWellKnownTypes::mutable_source_context_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.source_context_field)
  return source_context_field_.MutableMap();
}

// map<int32, .google.protobuf.Struct> struct_field = 7;
inline int MapWellKnownTypes::struct_field_size() const {
  return struct_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Struct >&
MapWellKnownTypes::struct_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.struct_field)
  return struct_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Struct >*
MapWellKnownTypes::mutable_struct_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.struct_field)
  return struct_field_.MutableMap();
}

// map<int32, .google.protobuf.Timestamp> timestamp_field = 8;
inline int MapWellKnownTypes::timestamp_field_size() const {
  return timestamp_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Timestamp >&
MapWellKnownTypes::timestamp_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.timestamp_field)
  return timestamp_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Timestamp >*
MapWellKnownTypes::mutable_timestamp_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.timestamp_field)
  return timestamp_field_.MutableMap();
}

// map<int32, .google.protobuf.Type> type_field = 9;
inline int MapWellKnownTypes::type_field_size() const {
  return type_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Type >&
MapWellKnownTypes::type_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.type_field)
  return type_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Type >*
MapWellKnownTypes::mutable_type_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.type_field)
  return type_field_.MutableMap();
}

// map<int32, .google.protobuf.DoubleValue> double_field = 10;
inline int MapWellKnownTypes::double_field_size() const {
  return double_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::DoubleValue >&
MapWellKnownTypes::double_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.double_field)
  return double_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::DoubleValue >*
MapWellKnownTypes::mutable_double_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.double_field)
  return double_field_.MutableMap();
}

// map<int32, .google.protobuf.FloatValue> float_field = 11;
inline int MapWellKnownTypes::float_field_size() const {
  return float_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FloatValue >&
MapWellKnownTypes::float_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.float_field)
  return float_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::FloatValue >*
MapWellKnownTypes::mutable_float_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.float_field)
  return float_field_.MutableMap();
}

// map<int32, .google.protobuf.Int64Value> int64_field = 12;
inline int MapWellKnownTypes::int64_field_size() const {
  return int64_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int64Value >&
MapWellKnownTypes::int64_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.int64_field)
  return int64_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int64Value >*
MapWellKnownTypes::mutable_int64_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.int64_field)
  return int64_field_.MutableMap();
}

// map<int32, .google.protobuf.UInt64Value> uint64_field = 13;
inline int MapWellKnownTypes::uint64_field_size() const {
  return uint64_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt64Value >&
MapWellKnownTypes::uint64_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.uint64_field)
  return uint64_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt64Value >*
MapWellKnownTypes::mutable_uint64_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.uint64_field)
  return uint64_field_.MutableMap();
}

// map<int32, .google.protobuf.Int32Value> int32_field = 14;
inline int MapWellKnownTypes::int32_field_size() const {
  return int32_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int32Value >&
MapWellKnownTypes::int32_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.int32_field)
  return int32_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::Int32Value >*
MapWellKnownTypes::mutable_int32_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.int32_field)
  return int32_field_.MutableMap();
}

// map<int32, .google.protobuf.UInt32Value> uint32_field = 15;
inline int MapWellKnownTypes::uint32_field_size() const {
  return uint32_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt32Value >&
MapWellKnownTypes::uint32_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.uint32_field)
  return uint32_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::UInt32Value >*
MapWellKnownTypes::mutable_uint32_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.uint32_field)
  return uint32_field_.MutableMap();
}

// map<int32, .google.protobuf.BoolValue> bool_field = 16;
inline int MapWellKnownTypes::bool_field_size() const {
  return bool_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BoolValue >&
MapWellKnownTypes::bool_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.bool_field)
  return bool_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BoolValue >*
MapWellKnownTypes::mutable_bool_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.bool_field)
  return bool_field_.MutableMap();
}

// map<int32, .google.protobuf.StringValue> string_field = 17;
inline int MapWellKnownTypes::string_field_size() const {
  return string_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::StringValue >&
MapWellKnownTypes::string_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.string_field)
  return string_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::StringValue >*
MapWellKnownTypes::mutable_string_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.string_field)
  return string_field_.MutableMap();
}

// map<int32, .google.protobuf.BytesValue> bytes_field = 18;
inline int MapWellKnownTypes::bytes_field_size() const {
  return bytes_field_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BytesValue >&
MapWellKnownTypes::bytes_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.MapWellKnownTypes.bytes_field)
  return bytes_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::BytesValue >*
MapWellKnownTypes::mutable_bytes_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.MapWellKnownTypes.bytes_field)
  return bytes_field_.MutableMap();
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace protobuf_unittest

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5fwell_5fknown_5ftypes_2eproto
