text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: sdk.conf.proto
  
  #include "sdk.conf.pb.h"
  
  #include <algorithm>
  
  #include <google/protobuf/stubs/common.h>
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/extension_set.h>
  #include <google/protobuf/wire_format_lite_inl.h>
  #include <google/protobuf/descriptor.h>
  #include <google/protobuf/generated_message_reflection.h>
  #include <google/protobuf/reflection_ops.h>
  #include <google/protobuf/wire_format.h>
  // @@protoc_insertion_point(includes)
  #include <google/protobuf/port_def.inc>
  
  extern PROTOBUF_INTERNAL_EXPORT_sdk_2econf_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_SdkConfig_DatabaseModule_sdk_2econf_2eproto;
  extern PROTOBUF_INTERNAL_EXPORT_sdk_2econf_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_SdkConfig_LogicModule_sdk_2econf_2eproto;
  extern PROTOBUF_INTERNAL_EXPORT_sdk_2econf_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_SdkConfig_NetworkModule_sdk_2econf_2eproto;
  namespace pbconfig {
  class SdkConfig_ResourceModuleDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<SdkConfig_ResourceModule> _instance;
  } _SdkConfig_ResourceModule_default_instance_;
  class SdkConfig_LogicModuleDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<SdkConfig_LogicModule> _instance;
  } _SdkConfig_LogicModule_default_instance_;
  class SdkConfig_DatabaseModuleDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<SdkConfig_DatabaseModule> _instance;
  } _SdkConfig_DatabaseModule_default_instance_;
  class SdkConfig_NetworkModuleDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<SdkConfig_NetworkModule> _instance;
  } _SdkConfig_NetworkModule_default_instance_;
  class SdkConfigDefaultTypeInternal {
   public:
    ::google::protobuf::internal::ExplicitlyConstructed<SdkConfig> _instance;
  } _SdkConfig_default_instance_;
  }  // namespace pbconfig
  static void InitDefaultsSdkConfig_ResourceModule_sdk_2econf_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::pbconfig::_SdkConfig_ResourceModule_default_instance_;
      new (ptr) ::pbconfig::SdkConfig_ResourceModule();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::pbconfig::SdkConfig_ResourceModule::InitAsDefaultInstance();
  }
  
  ::google::protobuf::internal::SCCInfo<0> scc_info_SdkConfig_ResourceModule_sdk_2econf_2eproto =
      {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSdkConfig_ResourceModule_sdk_2econf_2eproto}, {}};
  
  static void InitDefaultsSdkConfig_LogicModule_sdk_2econf_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::pbconfig::_SdkConfig_LogicModule_default_instance_;
      new (ptr) ::pbconfig::SdkConfig_LogicModule();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::pbconfig::SdkConfig_LogicModule::InitAsDefaultInstance();
  }
  
  ::google::protobuf::internal::SCCInfo<0> scc_info_SdkConfig_LogicModule_sdk_2econf_2eproto =
      {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSdkConfig_LogicModule_sdk_2econf_2eproto}, {}};
  
  static void InitDefaultsSdkConfig_DatabaseModule_sdk_2econf_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::pbconfig::_SdkConfig_DatabaseModule_default_instance_;
      new (ptr) ::pbconfig::SdkConfig_DatabaseModule();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::pbconfig::SdkConfig_DatabaseModule::InitAsDefaultInstance();
  }
  
  ::google::protobuf::internal::SCCInfo<0> scc_info_SdkConfig_DatabaseModule_sdk_2econf_2eproto =
      {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSdkConfig_DatabaseModule_sdk_2econf_2eproto}, {}};
  
  static void InitDefaultsSdkConfig_NetworkModule_sdk_2econf_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::pbconfig::_SdkConfig_NetworkModule_default_instance_;
      new (ptr) ::pbconfig::SdkConfig_NetworkModule();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::pbconfig::SdkConfig_NetworkModule::InitAsDefaultInstance();
  }
  
  ::google::protobuf::internal::SCCInfo<0> scc_info_SdkConfig_NetworkModule_sdk_2econf_2eproto =
      {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsSdkConfig_NetworkModule_sdk_2econf_2eproto}, {}};
  
  static void InitDefaultsSdkConfig_sdk_2econf_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::pbconfig::_SdkConfig_default_instance_;
      new (ptr) ::pbconfig::SdkConfig();
      ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
    }
    ::pbconfig::SdkConfig::InitAsDefaultInstance();
  }
  
  ::google::protobuf::internal::SCCInfo<3> scc_info_SdkConfig_sdk_2econf_2eproto =
      {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsSdkConfig_sdk_2econf_2eproto}, {
        &scc_info_SdkConfig_LogicModule_sdk_2econf_2eproto.base,
        &scc_info_SdkConfig_DatabaseModule_sdk_2econf_2eproto.base,
        &scc_info_SdkConfig_NetworkModule_sdk_2econf_2eproto.base,}};
  
  void InitDefaults_sdk_2econf_2eproto() {
    ::google::protobuf::internal::InitSCC(&scc_info_SdkConfig_ResourceModule_sdk_2econf_2eproto.base);
    ::google::protobuf::internal::InitSCC(&scc_info_SdkConfig_LogicModule_sdk_2econf_2eproto.base);
    ::google::protobuf::internal::InitSCC(&scc_info_SdkConfig_DatabaseModule_sdk_2econf_2eproto.base);
    ::google::protobuf::internal::InitSCC(&scc_info_SdkConfig_NetworkModule_sdk_2econf_2eproto.base);
    ::google::protobuf::internal::InitSCC(&scc_info_SdkConfig_sdk_2econf_2eproto.base);
  }
  
  ::google::protobuf::Metadata file_level_metadata_sdk_2econf_2eproto[5];
  constexpr ::google::protobuf::EnumDescriptor const** file_level_enum_descriptors_sdk_2econf_2eproto = nullptr;
  constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_sdk_2econf_2eproto = nullptr;
  
  const ::google::protobuf::uint32 TableStruct_sdk_2econf_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_ResourceModule, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_LogicModule, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_LogicModule, work_thread_num_),
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_DatabaseModule, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_DatabaseModule, host_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_DatabaseModule, username_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_DatabaseModule, password_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_DatabaseModule, dbname_),
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_ws_listen_addr_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_ws_thread_num_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_ws_session_num_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_ls_listen_addr_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_ls_thread_num_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_ls_session_num_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_plat_http_testmode_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_plat_http_host_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_plat_http_port_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_plat_http_thread_num_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_plat_http_max_conn_pool_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_plat_http_timeout_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_plat_http_cert_filename_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_tzplat_http_testmode_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_tzplat_http_host_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_tzplat_http_port_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_tzplat_http_thread_num_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_tzplat_http_max_conn_pool_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_tzplat_http_timeout_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, to_tzplat_http_cert_filename_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_plat_listen_ports_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig_NetworkModule, from_plat_thread_num_),
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig, logicmodule_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig, databasemodule_),
    PROTOBUF_FIELD_OFFSET(::pbconfig::SdkConfig, networkmodule_),
  };
  static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
    { 0, -1, sizeof(::pbconfig::SdkConfig_ResourceModule)},
    { 5, -1, sizeof(::pbconfig::SdkConfig_LogicModule)},
    { 11, -1, sizeof(::pbconfig::SdkConfig_DatabaseModule)},
    { 20, -1, sizeof(::pbconfig::SdkConfig_NetworkModule)},
    { 47, -1, sizeof(::pbconfig::SdkConfig)},
  };
  
  static ::google::protobuf::Message const * const file_default_instances[] = {
    reinterpret_cast<const ::google::protobuf::Message*>(&::pbconfig::_SdkConfig_ResourceModule_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::pbconfig::_SdkConfig_LogicModule_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::pbconfig::_SdkConfig_DatabaseModule_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::pbconfig::_SdkConfig_NetworkModule_default_instance_),
    reinterpret_cast<const ::google::protobuf::Message*>(&::pbconfig::_SdkConfig_default_instance_),
  };
  
  ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_sdk_2econf_2eproto = {
    {}, AddDescriptors_sdk_2econf_2eproto, "sdk.conf.proto", schemas,
    file_default_instances, TableStruct_sdk_2econf_2eproto::offsets,
    file_level_metadata_sdk_2econf_2eproto, 5, file_level_enum_descriptors_sdk_2econf_2eproto, file_level_service_descriptors_sdk_2econf_2eproto,
  };
  
  const char descriptor_table_protodef_sdk_2econf_2eproto[] =
    "\n\016sdk.conf.proto\022\010pbconfig\"\207\010\n\tSdkConfig"
    "\0224\n\013logicModule\030\001 \001(\0132\037.pbconfig.SdkConf"
    "ig.LogicModule\022:\n\016databaseModule\030\002 \001(\0132\""
    ".pbconfig.SdkConfig.DatabaseModule\0228\n\rne"
    "tworkModule\030\003 \001(\0132!.pbconfig.SdkConfig.N"
    "etworkModule\032\020\n\016ResourceModule\032&\n\013LogicM"
    "odule\022\027\n\017work_thread_num\030\001 \001(\r\032R\n\016Databa"
    "seModule\022\014\n\004host\030\001 \001(\t\022\020\n\010username\030\002 \001(\t"
    "\022\020\n\010password\030\003 \001(\t\022\016\n\006dbname\030\004 \001(\t\032\277\005\n\rN"
    "etworkModule\022\033\n\023from_ws_listen_addr\030\001 \001("
    "\t\022\032\n\022from_ws_thread_num\030\002 \001(\r\022\033\n\023from_ws"
    "_session_num\030\003 \001(\r\022\033\n\023from_ls_listen_add"
    "r\030\004 \001(\t\022\032\n\022from_ls_thread_num\030\005 \001(\r\022\033\n\023f"
    "rom_ls_session_num\030\006 \001(\r\022\035\n\025to_plat_http"
    "_testmode\030\007 \001(\010\022\031\n\021to_plat_http_host\030\010 \001"
    "(\t\022\031\n\021to_plat_http_port\030\t \001(\r\022\037\n\027to_plat"
    "_http_thread_num\030\n \001(\r\022\"\n\032to_plat_http_m"
    "ax_conn_pool\030\013 \001(\r\022\034\n\024to_plat_http_timeo"
    "ut\030\014 \001(\001\022\"\n\032to_plat_http_cert_filename\030\r"
    " \001(\t\022\037\n\027to_tzplat_http_testmode\030\016 \001(\010\022\033\n"
    "\023to_tzplat_http_host\030\017 \001(\t\022\033\n\023to_tzplat_"
    "http_port\030\020 \001(\r\022!\n\031to_tzplat_http_thread"
    "_num\030\021 \001(\r\022$\n\034to_tzplat_http_max_conn_po"
    "ol\030\022 \001(\r\022\036\n\026to_tzplat_http_timeout\030\023 \001(\001"
    "\022$\n\034to_tzplat_http_cert_filename\030\024 \001(\t\022\036"
    "\n\026from_plat_listen_ports\030\025 \001(\t\022\034\n\024from_p"
    "lat_thread_num\030\026 \001(\rb\006proto3"
    ;
  ::google::protobuf::internal::DescriptorTable descriptor_table_sdk_2econf_2eproto = {
    false, InitDefaults_sdk_2econf_2eproto, 
    descriptor_table_protodef_sdk_2econf_2eproto,
    "sdk.conf.proto", &assign_descriptors_table_sdk_2econf_2eproto, 1068,
  };
  
  void AddDescriptors_sdk_2econf_2eproto() {
    static constexpr ::google::protobuf::internal::InitFunc deps[1] =
    {
    };
   ::google::protobuf::internal::AddDescriptors(&descriptor_table_sdk_2econf_2eproto, deps, 0);
  }
  
  // Force running AddDescriptors() at dynamic initialization time.
  static bool dynamic_init_dummy_sdk_2econf_2eproto = []() { AddDescriptors_sdk_2econf_2eproto(); return true; }();
  namespace pbconfig {
  
  // ===================================================================
  
  void SdkConfig_ResourceModule::InitAsDefaultInstance() {
  }
  class SdkConfig_ResourceModule::HasBitSetters {
   public:
  };
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  SdkConfig_ResourceModule::SdkConfig_ResourceModule()
    : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:pbconfig.SdkConfig.ResourceModule)
  }
  SdkConfig_ResourceModule::SdkConfig_ResourceModule(const SdkConfig_ResourceModule& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    // @@protoc_insertion_point(copy_constructor:pbconfig.SdkConfig.ResourceModule)
  }
  
  void SdkConfig_ResourceModule::SharedCtor() {
  }
  
  SdkConfig_ResourceModule::~SdkConfig_ResourceModule() {
    // @@protoc_insertion_point(destructor:pbconfig.SdkConfig.ResourceModule)
    SharedDtor();
  }
  
  void SdkConfig_ResourceModule::SharedDtor() {
  }
  
  void SdkConfig_ResourceModule::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const SdkConfig_ResourceModule& SdkConfig_ResourceModule::default_instance() {
    ::google::protobuf::internal::InitSCC(&::scc_info_SdkConfig_ResourceModule_sdk_2econf_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void SdkConfig_ResourceModule::Clear() {
  // @@protoc_insertion_point(message_clear_start:pbconfig.SdkConfig.ResourceModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    _internal_metadata_.Clear();
  }
  
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* SdkConfig_ResourceModule::_InternalParse(const char* begin, const char* end, void* object,
                    ::google::protobuf::internal::ParseContext* ctx) {
    auto msg = static_cast<SdkConfig_ResourceModule*>(object);
    ::google::protobuf::int32 size; (void)size;
    int depth; (void)depth;
    ::google::protobuf::uint32 tag;
    ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
    auto ptr = begin;
    while (ptr < end) {
      ptr = ::google::protobuf::io::Parse32(ptr, &tag);
      GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
      switch (tag >> 3) {
        default: {
          if ((tag & 7) == 4 || tag == 0) {
            ctx->EndGroup(tag);
            return ptr;
          }
          auto res = UnknownFieldParse(tag, {_InternalParse, msg},
            ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
          ptr = res.first;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
          if (res.second) return ptr;
        }
      }  // switch
    }  // while
    return ptr;
  }
  #else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  bool SdkConfig_ResourceModule::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:pbconfig.SdkConfig.ResourceModule)
    for (;;) {
      ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
      tag = p.first;
      if (!p.second) goto handle_unusual;
    handle_unusual:
      if (tag == 0) {
        goto success;
      }
      DO_(::google::protobuf::internal::WireFormat::SkipField(
            input, tag, _internal_metadata_.mutable_unknown_fields()));
    }
  success:
    // @@protoc_insertion_point(parse_success:pbconfig.SdkConfig.ResourceModule)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:pbconfig.SdkConfig.ResourceModule)
    return false;
  #undef DO_
  }
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  
  void SdkConfig_ResourceModule::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:pbconfig.SdkConfig.ResourceModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (_internal_metadata_.have_unknown_fields()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          _internal_metadata_.unknown_fields(), output);
    }
    // @@protoc_insertion_point(serialize_end:pbconfig.SdkConfig.ResourceModule)
  }
  
  ::google::protobuf::uint8* SdkConfig_ResourceModule::InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // @@protoc_insertion_point(serialize_to_array_start:pbconfig.SdkConfig.ResourceModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (_internal_metadata_.have_unknown_fields()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:pbconfig.SdkConfig.ResourceModule)
    return target;
  }
  
  size_t SdkConfig_ResourceModule::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:pbconfig.SdkConfig.ResourceModule)
    size_t total_size = 0;
  
    if (_internal_metadata_.have_unknown_fields()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          _internal_metadata_.unknown_fields());
    }
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void SdkConfig_ResourceModule::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:pbconfig.SdkConfig.ResourceModule)
    GOOGLE_DCHECK_NE(&from, this);
    const SdkConfig_ResourceModule* source =
        ::google::protobuf::DynamicCastToGenerated<SdkConfig_ResourceModule>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:pbconfig.SdkConfig.ResourceModule)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:pbconfig.SdkConfig.ResourceModule)
      MergeFrom(*source);
    }
  }
  
  void SdkConfig_ResourceModule::MergeFrom(const SdkConfig_ResourceModule& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:pbconfig.SdkConfig.ResourceModule)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
  }
  
  void SdkConfig_ResourceModule::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:pbconfig.SdkConfig.ResourceModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void SdkConfig_ResourceModule::CopyFrom(const SdkConfig_ResourceModule& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:pbconfig.SdkConfig.ResourceModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool SdkConfig_ResourceModule::IsInitialized() const {
    return true;
  }
  
  void SdkConfig_ResourceModule::Swap(SdkConfig_ResourceModule* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void SdkConfig_ResourceModule::InternalSwap(SdkConfig_ResourceModule* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
  }
  
  ::google::protobuf::Metadata SdkConfig_ResourceModule::GetMetadata() const {
    ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_sdk_2econf_2eproto);
    return ::file_level_metadata_sdk_2econf_2eproto[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void SdkConfig_LogicModule::InitAsDefaultInstance() {
  }
  class SdkConfig_LogicModule::HasBitSetters {
   public:
  };
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int SdkConfig_LogicModule::kWorkThreadNumFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  SdkConfig_LogicModule::SdkConfig_LogicModule()
    : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:pbconfig.SdkConfig.LogicModule)
  }
  SdkConfig_LogicModule::SdkConfig_LogicModule(const SdkConfig_LogicModule& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    work_thread_num_ = from.work_thread_num_;
    // @@protoc_insertion_point(copy_constructor:pbconfig.SdkConfig.LogicModule)
  }
  
  void SdkConfig_LogicModule::SharedCtor() {
    work_thread_num_ = 0u;
  }
  
  SdkConfig_LogicModule::~SdkConfig_LogicModule() {
    // @@protoc_insertion_point(destructor:pbconfig.SdkConfig.LogicModule)
    SharedDtor();
  }
  
  void SdkConfig_LogicModule::SharedDtor() {
  }
  
  void SdkConfig_LogicModule::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const SdkConfig_LogicModule& SdkConfig_LogicModule::default_instance() {
    ::google::protobuf::internal::InitSCC(&::scc_info_SdkConfig_LogicModule_sdk_2econf_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void SdkConfig_LogicModule::Clear() {
  // @@protoc_insertion_point(message_clear_start:pbconfig.SdkConfig.LogicModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    work_thread_num_ = 0u;
    _internal_metadata_.Clear();
  }
  
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* SdkConfig_LogicModule::_InternalParse(const char* begin, const char* end, void* object,
                    ::google::protobuf::internal::ParseContext* ctx) {
    auto msg = static_cast<SdkConfig_LogicModule*>(object);
    ::google::protobuf::int32 size; (void)size;
    int depth; (void)depth;
    ::google::protobuf::uint32 tag;
    ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
    auto ptr = begin;
    while (ptr < end) {
      ptr = ::google::protobuf::io::Parse32(ptr, &tag);
      GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
      switch (tag >> 3) {
        // uint32 work_thread_num = 1;
        case 1: {
          if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
          msg->set_work_thread_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->EndGroup(tag);
            return ptr;
          }
          auto res = UnknownFieldParse(tag, {_InternalParse, msg},
            ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
          ptr = res.first;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
          if (res.second) return ptr;
        }
      }  // switch
    }  // while
    return ptr;
  }
  #else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  bool SdkConfig_LogicModule::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:pbconfig.SdkConfig.LogicModule)
    for (;;) {
      ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // uint32 work_thread_num = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &work_thread_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:pbconfig.SdkConfig.LogicModule)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:pbconfig.SdkConfig.LogicModule)
    return false;
  #undef DO_
  }
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  
  void SdkConfig_LogicModule::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:pbconfig.SdkConfig.LogicModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // uint32 work_thread_num = 1;
    if (this->work_thread_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->work_thread_num(), output);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          _internal_metadata_.unknown_fields(), output);
    }
    // @@protoc_insertion_point(serialize_end:pbconfig.SdkConfig.LogicModule)
  }
  
  ::google::protobuf::uint8* SdkConfig_LogicModule::InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // @@protoc_insertion_point(serialize_to_array_start:pbconfig.SdkConfig.LogicModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // uint32 work_thread_num = 1;
    if (this->work_thread_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->work_thread_num(), target);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:pbconfig.SdkConfig.LogicModule)
    return target;
  }
  
  size_t SdkConfig_LogicModule::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:pbconfig.SdkConfig.LogicModule)
    size_t total_size = 0;
  
    if (_internal_metadata_.have_unknown_fields()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          _internal_metadata_.unknown_fields());
    }
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // uint32 work_thread_num = 1;
    if (this->work_thread_num() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->work_thread_num());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void SdkConfig_LogicModule::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:pbconfig.SdkConfig.LogicModule)
    GOOGLE_DCHECK_NE(&from, this);
    const SdkConfig_LogicModule* source =
        ::google::protobuf::DynamicCastToGenerated<SdkConfig_LogicModule>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:pbconfig.SdkConfig.LogicModule)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:pbconfig.SdkConfig.LogicModule)
      MergeFrom(*source);
    }
  }
  
  void SdkConfig_LogicModule::MergeFrom(const SdkConfig_LogicModule& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:pbconfig.SdkConfig.LogicModule)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.work_thread_num() != 0) {
      set_work_thread_num(from.work_thread_num());
    }
  }
  
  void SdkConfig_LogicModule::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:pbconfig.SdkConfig.LogicModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void SdkConfig_LogicModule::CopyFrom(const SdkConfig_LogicModule& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:pbconfig.SdkConfig.LogicModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool SdkConfig_LogicModule::IsInitialized() const {
    return true;
  }
  
  void SdkConfig_LogicModule::Swap(SdkConfig_LogicModule* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void SdkConfig_LogicModule::InternalSwap(SdkConfig_LogicModule* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(work_thread_num_, other->work_thread_num_);
  }
  
  ::google::protobuf::Metadata SdkConfig_LogicModule::GetMetadata() const {
    ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_sdk_2econf_2eproto);
    return ::file_level_metadata_sdk_2econf_2eproto[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void SdkConfig_DatabaseModule::InitAsDefaultInstance() {
  }
  class SdkConfig_DatabaseModule::HasBitSetters {
   public:
  };
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int SdkConfig_DatabaseModule::kHostFieldNumber;
  const int SdkConfig_DatabaseModule::kUsernameFieldNumber;
  const int SdkConfig_DatabaseModule::kPasswordFieldNumber;
  const int SdkConfig_DatabaseModule::kDbnameFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  SdkConfig_DatabaseModule::SdkConfig_DatabaseModule()
    : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:pbconfig.SdkConfig.DatabaseModule)
  }
  SdkConfig_DatabaseModule::SdkConfig_DatabaseModule(const SdkConfig_DatabaseModule& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.host().size() > 0) {
      host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.host_);
    }
    username_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.username().size() > 0) {
      username_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.username_);
    }
    password_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.password().size() > 0) {
      password_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.password_);
    }
    dbname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.dbname().size() > 0) {
      dbname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.dbname_);
    }
    // @@protoc_insertion_point(copy_constructor:pbconfig.SdkConfig.DatabaseModule)
  }
  
  void SdkConfig_DatabaseModule::SharedCtor() {
    ::google::protobuf::internal::InitSCC(
        &scc_info_SdkConfig_DatabaseModule_sdk_2econf_2eproto.base);
    host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    username_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    password_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    dbname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  SdkConfig_DatabaseModule::~SdkConfig_DatabaseModule() {
    // @@protoc_insertion_point(destructor:pbconfig.SdkConfig.DatabaseModule)
    SharedDtor();
  }
  
  void SdkConfig_DatabaseModule::SharedDtor() {
    host_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    username_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    password_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    dbname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void SdkConfig_DatabaseModule::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const SdkConfig_DatabaseModule& SdkConfig_DatabaseModule::default_instance() {
    ::google::protobuf::internal::InitSCC(&::scc_info_SdkConfig_DatabaseModule_sdk_2econf_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void SdkConfig_DatabaseModule::Clear() {
  // @@protoc_insertion_point(message_clear_start:pbconfig.SdkConfig.DatabaseModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    username_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    password_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    dbname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _internal_metadata_.Clear();
  }
  
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* SdkConfig_DatabaseModule::_InternalParse(const char* begin, const char* end, void* object,
                    ::google::protobuf::internal::ParseContext* ctx) {
    auto msg = static_cast<SdkConfig_DatabaseModule*>(object);
    ::google::protobuf::int32 size; (void)size;
    int depth; (void)depth;
    ::google::protobuf::uint32 tag;
    ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
    auto ptr = begin;
    while (ptr < end) {
      ptr = ::google::protobuf::io::Parse32(ptr, &tag);
      GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
      switch (tag >> 3) {
        // string host = 1;
        case 1: {
          if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.DatabaseModule.host");
          object = msg->mutable_host();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // string username = 2;
        case 2: {
          if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.DatabaseModule.username");
          object = msg->mutable_username();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // string password = 3;
        case 3: {
          if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.DatabaseModule.password");
          object = msg->mutable_password();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // string dbname = 4;
        case 4: {
          if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.DatabaseModule.dbname");
          object = msg->mutable_dbname();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->EndGroup(tag);
            return ptr;
          }
          auto res = UnknownFieldParse(tag, {_InternalParse, msg},
            ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
          ptr = res.first;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
          if (res.second) return ptr;
        }
      }  // switch
    }  // while
    return ptr;
  string_till_end:
    static_cast<::std::string*>(object)->clear();
    static_cast<::std::string*>(object)->reserve(size);
    goto len_delim_till_end;
  len_delim_till_end:
    return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                                 {parser_till_end, object}, size);
  }
  #else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  bool SdkConfig_DatabaseModule::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:pbconfig.SdkConfig.DatabaseModule)
    for (;;) {
      ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // string host = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_host()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->host().data(), static_cast<int>(this->host().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.DatabaseModule.host"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string username = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_username()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->username().data(), static_cast<int>(this->username().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.DatabaseModule.username"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string password = 3;
        case 3: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_password()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->password().data(), static_cast<int>(this->password().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.DatabaseModule.password"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string dbname = 4;
        case 4: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_dbname()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->dbname().data(), static_cast<int>(this->dbname().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.DatabaseModule.dbname"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:pbconfig.SdkConfig.DatabaseModule)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:pbconfig.SdkConfig.DatabaseModule)
    return false;
  #undef DO_
  }
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  
  void SdkConfig_DatabaseModule::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:pbconfig.SdkConfig.DatabaseModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string host = 1;
    if (this->host().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->host().data(), static_cast<int>(this->host().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.host");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->host(), output);
    }
  
    // string username = 2;
    if (this->username().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->username().data(), static_cast<int>(this->username().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.username");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->username(), output);
    }
  
    // string password = 3;
    if (this->password().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->password().data(), static_cast<int>(this->password().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.password");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        3, this->password(), output);
    }
  
    // string dbname = 4;
    if (this->dbname().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->dbname().data(), static_cast<int>(this->dbname().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.dbname");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        4, this->dbname(), output);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          _internal_metadata_.unknown_fields(), output);
    }
    // @@protoc_insertion_point(serialize_end:pbconfig.SdkConfig.DatabaseModule)
  }
  
  ::google::protobuf::uint8* SdkConfig_DatabaseModule::InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // @@protoc_insertion_point(serialize_to_array_start:pbconfig.SdkConfig.DatabaseModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string host = 1;
    if (this->host().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->host().data(), static_cast<int>(this->host().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.host");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->host(), target);
    }
  
    // string username = 2;
    if (this->username().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->username().data(), static_cast<int>(this->username().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.username");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->username(), target);
    }
  
    // string password = 3;
    if (this->password().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->password().data(), static_cast<int>(this->password().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.password");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          3, this->password(), target);
    }
  
    // string dbname = 4;
    if (this->dbname().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->dbname().data(), static_cast<int>(this->dbname().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.DatabaseModule.dbname");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          4, this->dbname(), target);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:pbconfig.SdkConfig.DatabaseModule)
    return target;
  }
  
  size_t SdkConfig_DatabaseModule::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:pbconfig.SdkConfig.DatabaseModule)
    size_t total_size = 0;
  
    if (_internal_metadata_.have_unknown_fields()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          _internal_metadata_.unknown_fields());
    }
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // string host = 1;
    if (this->host().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->host());
    }
  
    // string username = 2;
    if (this->username().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->username());
    }
  
    // string password = 3;
    if (this->password().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->password());
    }
  
    // string dbname = 4;
    if (this->dbname().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->dbname());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void SdkConfig_DatabaseModule::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:pbconfig.SdkConfig.DatabaseModule)
    GOOGLE_DCHECK_NE(&from, this);
    const SdkConfig_DatabaseModule* source =
        ::google::protobuf::DynamicCastToGenerated<SdkConfig_DatabaseModule>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:pbconfig.SdkConfig.DatabaseModule)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:pbconfig.SdkConfig.DatabaseModule)
      MergeFrom(*source);
    }
  }
  
  void SdkConfig_DatabaseModule::MergeFrom(const SdkConfig_DatabaseModule& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:pbconfig.SdkConfig.DatabaseModule)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.host().size() > 0) {
  
      host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.host_);
    }
    if (from.username().size() > 0) {
  
      username_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.username_);
    }
    if (from.password().size() > 0) {
  
      password_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.password_);
    }
    if (from.dbname().size() > 0) {
  
      dbname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.dbname_);
    }
  }
  
  void SdkConfig_DatabaseModule::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:pbconfig.SdkConfig.DatabaseModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void SdkConfig_DatabaseModule::CopyFrom(const SdkConfig_DatabaseModule& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:pbconfig.SdkConfig.DatabaseModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool SdkConfig_DatabaseModule::IsInitialized() const {
    return true;
  }
  
  void SdkConfig_DatabaseModule::Swap(SdkConfig_DatabaseModule* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void SdkConfig_DatabaseModule::InternalSwap(SdkConfig_DatabaseModule* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    host_.Swap(&other->host_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    username_.Swap(&other->username_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    password_.Swap(&other->password_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    dbname_.Swap(&other->dbname_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
  }
  
  ::google::protobuf::Metadata SdkConfig_DatabaseModule::GetMetadata() const {
    ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_sdk_2econf_2eproto);
    return ::file_level_metadata_sdk_2econf_2eproto[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void SdkConfig_NetworkModule::InitAsDefaultInstance() {
  }
  class SdkConfig_NetworkModule::HasBitSetters {
   public:
  };
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int SdkConfig_NetworkModule::kFromWsListenAddrFieldNumber;
  const int SdkConfig_NetworkModule::kFromWsThreadNumFieldNumber;
  const int SdkConfig_NetworkModule::kFromWsSessionNumFieldNumber;
  const int SdkConfig_NetworkModule::kFromLsListenAddrFieldNumber;
  const int SdkConfig_NetworkModule::kFromLsThreadNumFieldNumber;
  const int SdkConfig_NetworkModule::kFromLsSessionNumFieldNumber;
  const int SdkConfig_NetworkModule::kToPlatHttpTestmodeFieldNumber;
  const int SdkConfig_NetworkModule::kToPlatHttpHostFieldNumber;
  const int SdkConfig_NetworkModule::kToPlatHttpPortFieldNumber;
  const int SdkConfig_NetworkModule::kToPlatHttpThreadNumFieldNumber;
  const int SdkConfig_NetworkModule::kToPlatHttpMaxConnPoolFieldNumber;
  const int SdkConfig_NetworkModule::kToPlatHttpTimeoutFieldNumber;
  const int SdkConfig_NetworkModule::kToPlatHttpCertFilenameFieldNumber;
  const int SdkConfig_NetworkModule::kToTzplatHttpTestmodeFieldNumber;
  const int SdkConfig_NetworkModule::kToTzplatHttpHostFieldNumber;
  const int SdkConfig_NetworkModule::kToTzplatHttpPortFieldNumber;
  const int SdkConfig_NetworkModule::kToTzplatHttpThreadNumFieldNumber;
  const int SdkConfig_NetworkModule::kToTzplatHttpMaxConnPoolFieldNumber;
  const int SdkConfig_NetworkModule::kToTzplatHttpTimeoutFieldNumber;
  const int SdkConfig_NetworkModule::kToTzplatHttpCertFilenameFieldNumber;
  const int SdkConfig_NetworkModule::kFromPlatListenPortsFieldNumber;
  const int SdkConfig_NetworkModule::kFromPlatThreadNumFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  SdkConfig_NetworkModule::SdkConfig_NetworkModule()
    : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:pbconfig.SdkConfig.NetworkModule)
  }
  SdkConfig_NetworkModule::SdkConfig_NetworkModule(const SdkConfig_NetworkModule& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    from_ws_listen_addr_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.from_ws_listen_addr().size() > 0) {
      from_ws_listen_addr_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.from_ws_listen_addr_);
    }
    from_ls_listen_addr_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.from_ls_listen_addr().size() > 0) {
      from_ls_listen_addr_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.from_ls_listen_addr_);
    }
    to_plat_http_host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.to_plat_http_host().size() > 0) {
      to_plat_http_host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_plat_http_host_);
    }
    to_plat_http_cert_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.to_plat_http_cert_filename().size() > 0) {
      to_plat_http_cert_filename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_plat_http_cert_filename_);
    }
    to_tzplat_http_host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.to_tzplat_http_host().size() > 0) {
      to_tzplat_http_host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_tzplat_http_host_);
    }
    to_tzplat_http_cert_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.to_tzplat_http_cert_filename().size() > 0) {
      to_tzplat_http_cert_filename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_tzplat_http_cert_filename_);
    }
    from_plat_listen_ports_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (from.from_plat_listen_ports().size() > 0) {
      from_plat_listen_ports_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.from_plat_listen_ports_);
    }
    ::memcpy(&from_ws_thread_num_, &from.from_ws_thread_num_,
      static_cast<size_t>(reinterpret_cast<char*>(&from_plat_thread_num_) -
      reinterpret_cast<char*>(&from_ws_thread_num_)) + sizeof(from_plat_thread_num_));
    // @@protoc_insertion_point(copy_constructor:pbconfig.SdkConfig.NetworkModule)
  }
  
  void SdkConfig_NetworkModule::SharedCtor() {
    ::google::protobuf::internal::InitSCC(
        &scc_info_SdkConfig_NetworkModule_sdk_2econf_2eproto.base);
    from_ws_listen_addr_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    from_ls_listen_addr_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_plat_http_host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_plat_http_cert_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_tzplat_http_host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_tzplat_http_cert_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    from_plat_listen_ports_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    ::memset(&from_ws_thread_num_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&from_plat_thread_num_) -
        reinterpret_cast<char*>(&from_ws_thread_num_)) + sizeof(from_plat_thread_num_));
  }
  
  SdkConfig_NetworkModule::~SdkConfig_NetworkModule() {
    // @@protoc_insertion_point(destructor:pbconfig.SdkConfig.NetworkModule)
    SharedDtor();
  }
  
  void SdkConfig_NetworkModule::SharedDtor() {
    from_ws_listen_addr_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    from_ls_listen_addr_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_plat_http_host_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_plat_http_cert_filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_tzplat_http_host_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_tzplat_http_cert_filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    from_plat_listen_ports_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void SdkConfig_NetworkModule::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const SdkConfig_NetworkModule& SdkConfig_NetworkModule::default_instance() {
    ::google::protobuf::internal::InitSCC(&::scc_info_SdkConfig_NetworkModule_sdk_2econf_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void SdkConfig_NetworkModule::Clear() {
  // @@protoc_insertion_point(message_clear_start:pbconfig.SdkConfig.NetworkModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    from_ws_listen_addr_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    from_ls_listen_addr_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_plat_http_host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_plat_http_cert_filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_tzplat_http_host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    to_tzplat_http_cert_filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    from_plat_listen_ports_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    ::memset(&from_ws_thread_num_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&from_plat_thread_num_) -
        reinterpret_cast<char*>(&from_ws_thread_num_)) + sizeof(from_plat_thread_num_));
    _internal_metadata_.Clear();
  }
  
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* SdkConfig_NetworkModule::_InternalParse(const char* begin, const char* end, void* object,
                    ::google::protobuf::internal::ParseContext* ctx) {
    auto msg = static_cast<SdkConfig_NetworkModule*>(object);
    ::google::protobuf::int32 size; (void)size;
    int depth; (void)depth;
    ::google::protobuf::uint32 tag;
    ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
    auto ptr = begin;
    while (ptr < end) {
      ptr = ::google::protobuf::io::Parse32(ptr, &tag);
      GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
      switch (tag >> 3) {
        // string from_ws_listen_addr = 1;
        case 1: {
          if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.NetworkModule.from_ws_listen_addr");
          object = msg->mutable_from_ws_listen_addr();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // uint32 from_ws_thread_num = 2;
        case 2: {
          if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
          msg->set_from_ws_thread_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // uint32 from_ws_session_num = 3;
        case 3: {
          if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
          msg->set_from_ws_session_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // string from_ls_listen_addr = 4;
        case 4: {
          if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.NetworkModule.from_ls_listen_addr");
          object = msg->mutable_from_ls_listen_addr();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // uint32 from_ls_thread_num = 5;
        case 5: {
          if (static_cast<::google::protobuf::uint8>(tag) != 40) goto handle_unusual;
          msg->set_from_ls_thread_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // uint32 from_ls_session_num = 6;
        case 6: {
          if (static_cast<::google::protobuf::uint8>(tag) != 48) goto handle_unusual;
          msg->set_from_ls_session_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // bool to_plat_http_testmode = 7;
        case 7: {
          if (static_cast<::google::protobuf::uint8>(tag) != 56) goto handle_unusual;
          msg->set_to_plat_http_testmode(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // string to_plat_http_host = 8;
        case 8: {
          if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.NetworkModule.to_plat_http_host");
          object = msg->mutable_to_plat_http_host();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // uint32 to_plat_http_port = 9;
        case 9: {
          if (static_cast<::google::protobuf::uint8>(tag) != 72) goto handle_unusual;
          msg->set_to_plat_http_port(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // uint32 to_plat_http_thread_num = 10;
        case 10: {
          if (static_cast<::google::protobuf::uint8>(tag) != 80) goto handle_unusual;
          msg->set_to_plat_http_thread_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // uint32 to_plat_http_max_conn_pool = 11;
        case 11: {
          if (static_cast<::google::protobuf::uint8>(tag) != 88) goto handle_unusual;
          msg->set_to_plat_http_max_conn_pool(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // double to_plat_http_timeout = 12;
        case 12: {
          if (static_cast<::google::protobuf::uint8>(tag) != 97) goto handle_unusual;
          msg->set_to_plat_http_timeout(::google::protobuf::io::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
          break;
        }
        // string to_plat_http_cert_filename = 13;
        case 13: {
          if (static_cast<::google::protobuf::uint8>(tag) != 106) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.NetworkModule.to_plat_http_cert_filename");
          object = msg->mutable_to_plat_http_cert_filename();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // bool to_tzplat_http_testmode = 14;
        case 14: {
          if (static_cast<::google::protobuf::uint8>(tag) != 112) goto handle_unusual;
          msg->set_to_tzplat_http_testmode(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // string to_tzplat_http_host = 15;
        case 15: {
          if (static_cast<::google::protobuf::uint8>(tag) != 122) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.NetworkModule.to_tzplat_http_host");
          object = msg->mutable_to_tzplat_http_host();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // uint32 to_tzplat_http_port = 16;
        case 16: {
          if (static_cast<::google::protobuf::uint8>(tag) != 128) goto handle_unusual;
          msg->set_to_tzplat_http_port(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // uint32 to_tzplat_http_thread_num = 17;
        case 17: {
          if (static_cast<::google::protobuf::uint8>(tag) != 136) goto handle_unusual;
          msg->set_to_tzplat_http_thread_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // uint32 to_tzplat_http_max_conn_pool = 18;
        case 18: {
          if (static_cast<::google::protobuf::uint8>(tag) != 144) goto handle_unusual;
          msg->set_to_tzplat_http_max_conn_pool(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        // double to_tzplat_http_timeout = 19;
        case 19: {
          if (static_cast<::google::protobuf::uint8>(tag) != 153) goto handle_unusual;
          msg->set_to_tzplat_http_timeout(::google::protobuf::io::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
          break;
        }
        // string to_tzplat_http_cert_filename = 20;
        case 20: {
          if (static_cast<::google::protobuf::uint8>(tag) != 162) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.NetworkModule.to_tzplat_http_cert_filename");
          object = msg->mutable_to_tzplat_http_cert_filename();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // string from_plat_listen_ports = 21;
        case 21: {
          if (static_cast<::google::protobuf::uint8>(tag) != 170) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("pbconfig.SdkConfig.NetworkModule.from_plat_listen_ports");
          object = msg->mutable_from_plat_listen_ports();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          break;
        }
        // uint32 from_plat_thread_num = 22;
        case 22: {
          if (static_cast<::google::protobuf::uint8>(tag) != 176) goto handle_unusual;
          msg->set_from_plat_thread_num(::google::protobuf::internal::ReadVarint(&ptr));
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          break;
        }
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->EndGroup(tag);
            return ptr;
          }
          auto res = UnknownFieldParse(tag, {_InternalParse, msg},
            ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
          ptr = res.first;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
          if (res.second) return ptr;
        }
      }  // switch
    }  // while
    return ptr;
  string_till_end:
    static_cast<::std::string*>(object)->clear();
    static_cast<::std::string*>(object)->reserve(size);
    goto len_delim_till_end;
  len_delim_till_end:
    return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                                 {parser_till_end, object}, size);
  }
  #else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  bool SdkConfig_NetworkModule::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:pbconfig.SdkConfig.NetworkModule)
    for (;;) {
      ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // string from_ws_listen_addr = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_from_ws_listen_addr()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->from_ws_listen_addr().data(), static_cast<int>(this->from_ws_listen_addr().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.NetworkModule.from_ws_listen_addr"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 from_ws_thread_num = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &from_ws_thread_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 from_ws_session_num = 3;
        case 3: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &from_ws_session_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string from_ls_listen_addr = 4;
        case 4: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_from_ls_listen_addr()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->from_ls_listen_addr().data(), static_cast<int>(this->from_ls_listen_addr().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.NetworkModule.from_ls_listen_addr"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 from_ls_thread_num = 5;
        case 5: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (40 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &from_ls_thread_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 from_ls_session_num = 6;
        case 6: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (48 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &from_ls_session_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // bool to_plat_http_testmode = 7;
        case 7: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (56 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                   input, &to_plat_http_testmode_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string to_plat_http_host = 8;
        case 8: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_to_plat_http_host()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->to_plat_http_host().data(), static_cast<int>(this->to_plat_http_host().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.NetworkModule.to_plat_http_host"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 to_plat_http_port = 9;
        case 9: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (72 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &to_plat_http_port_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 to_plat_http_thread_num = 10;
        case 10: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (80 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &to_plat_http_thread_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 to_plat_http_max_conn_pool = 11;
        case 11: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (88 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &to_plat_http_max_conn_pool_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // double to_plat_http_timeout = 12;
        case 12: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (97 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                   input, &to_plat_http_timeout_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string to_plat_http_cert_filename = 13;
        case 13: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (106 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_to_plat_http_cert_filename()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->to_plat_http_cert_filename().data(), static_cast<int>(this->to_plat_http_cert_filename().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.NetworkModule.to_plat_http_cert_filename"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // bool to_tzplat_http_testmode = 14;
        case 14: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (112 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                   input, &to_tzplat_http_testmode_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string to_tzplat_http_host = 15;
        case 15: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (122 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_to_tzplat_http_host()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->to_tzplat_http_host().data(), static_cast<int>(this->to_tzplat_http_host().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.NetworkModule.to_tzplat_http_host"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 to_tzplat_http_port = 16;
        case 16: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (128 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &to_tzplat_http_port_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 to_tzplat_http_thread_num = 17;
        case 17: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (136 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &to_tzplat_http_thread_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 to_tzplat_http_max_conn_pool = 18;
        case 18: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (144 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &to_tzplat_http_max_conn_pool_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // double to_tzplat_http_timeout = 19;
        case 19: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (153 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                   input, &to_tzplat_http_timeout_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string to_tzplat_http_cert_filename = 20;
        case 20: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (162 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_to_tzplat_http_cert_filename()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->to_tzplat_http_cert_filename().data(), static_cast<int>(this->to_tzplat_http_cert_filename().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.NetworkModule.to_tzplat_http_cert_filename"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string from_plat_listen_ports = 21;
        case 21: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (170 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_from_plat_listen_ports()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->from_plat_listen_ports().data(), static_cast<int>(this->from_plat_listen_ports().length()),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "pbconfig.SdkConfig.NetworkModule.from_plat_listen_ports"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // uint32 from_plat_thread_num = 22;
        case 22: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (176 & 0xFF)) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                   input, &from_plat_thread_num_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:pbconfig.SdkConfig.NetworkModule)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:pbconfig.SdkConfig.NetworkModule)
    return false;
  #undef DO_
  }
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  
  void SdkConfig_NetworkModule::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:pbconfig.SdkConfig.NetworkModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string from_ws_listen_addr = 1;
    if (this->from_ws_listen_addr().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->from_ws_listen_addr().data(), static_cast<int>(this->from_ws_listen_addr().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.from_ws_listen_addr");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->from_ws_listen_addr(), output);
    }
  
    // uint32 from_ws_thread_num = 2;
    if (this->from_ws_thread_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->from_ws_thread_num(), output);
    }
  
    // uint32 from_ws_session_num = 3;
    if (this->from_ws_session_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->from_ws_session_num(), output);
    }
  
    // string from_ls_listen_addr = 4;
    if (this->from_ls_listen_addr().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->from_ls_listen_addr().data(), static_cast<int>(this->from_ls_listen_addr().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.from_ls_listen_addr");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        4, this->from_ls_listen_addr(), output);
    }
  
    // uint32 from_ls_thread_num = 5;
    if (this->from_ls_thread_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(5, this->from_ls_thread_num(), output);
    }
  
    // uint32 from_ls_session_num = 6;
    if (this->from_ls_session_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(6, this->from_ls_session_num(), output);
    }
  
    // bool to_plat_http_testmode = 7;
    if (this->to_plat_http_testmode() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteBool(7, this->to_plat_http_testmode(), output);
    }
  
    // string to_plat_http_host = 8;
    if (this->to_plat_http_host().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_plat_http_host().data(), static_cast<int>(this->to_plat_http_host().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_plat_http_host");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        8, this->to_plat_http_host(), output);
    }
  
    // uint32 to_plat_http_port = 9;
    if (this->to_plat_http_port() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(9, this->to_plat_http_port(), output);
    }
  
    // uint32 to_plat_http_thread_num = 10;
    if (this->to_plat_http_thread_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(10, this->to_plat_http_thread_num(), output);
    }
  
    // uint32 to_plat_http_max_conn_pool = 11;
    if (this->to_plat_http_max_conn_pool() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(11, this->to_plat_http_max_conn_pool(), output);
    }
  
    // double to_plat_http_timeout = 12;
    if (this->to_plat_http_timeout() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteDouble(12, this->to_plat_http_timeout(), output);
    }
  
    // string to_plat_http_cert_filename = 13;
    if (this->to_plat_http_cert_filename().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_plat_http_cert_filename().data(), static_cast<int>(this->to_plat_http_cert_filename().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_plat_http_cert_filename");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        13, this->to_plat_http_cert_filename(), output);
    }
  
    // bool to_tzplat_http_testmode = 14;
    if (this->to_tzplat_http_testmode() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteBool(14, this->to_tzplat_http_testmode(), output);
    }
  
    // string to_tzplat_http_host = 15;
    if (this->to_tzplat_http_host().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_tzplat_http_host().data(), static_cast<int>(this->to_tzplat_http_host().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_tzplat_http_host");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        15, this->to_tzplat_http_host(), output);
    }
  
    // uint32 to_tzplat_http_port = 16;
    if (this->to_tzplat_http_port() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(16, this->to_tzplat_http_port(), output);
    }
  
    // uint32 to_tzplat_http_thread_num = 17;
    if (this->to_tzplat_http_thread_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(17, this->to_tzplat_http_thread_num(), output);
    }
  
    // uint32 to_tzplat_http_max_conn_pool = 18;
    if (this->to_tzplat_http_max_conn_pool() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(18, this->to_tzplat_http_max_conn_pool(), output);
    }
  
    // double to_tzplat_http_timeout = 19;
    if (this->to_tzplat_http_timeout() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteDouble(19, this->to_tzplat_http_timeout(), output);
    }
  
    // string to_tzplat_http_cert_filename = 20;
    if (this->to_tzplat_http_cert_filename().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_tzplat_http_cert_filename().data(), static_cast<int>(this->to_tzplat_http_cert_filename().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_tzplat_http_cert_filename");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        20, this->to_tzplat_http_cert_filename(), output);
    }
  
    // string from_plat_listen_ports = 21;
    if (this->from_plat_listen_ports().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->from_plat_listen_ports().data(), static_cast<int>(this->from_plat_listen_ports().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.from_plat_listen_ports");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        21, this->from_plat_listen_ports(), output);
    }
  
    // uint32 from_plat_thread_num = 22;
    if (this->from_plat_thread_num() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteUInt32(22, this->from_plat_thread_num(), output);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          _internal_metadata_.unknown_fields(), output);
    }
    // @@protoc_insertion_point(serialize_end:pbconfig.SdkConfig.NetworkModule)
  }
  
  ::google::protobuf::uint8* SdkConfig_NetworkModule::InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // @@protoc_insertion_point(serialize_to_array_start:pbconfig.SdkConfig.NetworkModule)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string from_ws_listen_addr = 1;
    if (this->from_ws_listen_addr().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->from_ws_listen_addr().data(), static_cast<int>(this->from_ws_listen_addr().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.from_ws_listen_addr");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->from_ws_listen_addr(), target);
    }
  
    // uint32 from_ws_thread_num = 2;
    if (this->from_ws_thread_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->from_ws_thread_num(), target);
    }
  
    // uint32 from_ws_session_num = 3;
    if (this->from_ws_session_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->from_ws_session_num(), target);
    }
  
    // string from_ls_listen_addr = 4;
    if (this->from_ls_listen_addr().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->from_ls_listen_addr().data(), static_cast<int>(this->from_ls_listen_addr().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.from_ls_listen_addr");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          4, this->from_ls_listen_addr(), target);
    }
  
    // uint32 from_ls_thread_num = 5;
    if (this->from_ls_thread_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(5, this->from_ls_thread_num(), target);
    }
  
    // uint32 from_ls_session_num = 6;
    if (this->from_ls_session_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(6, this->from_ls_session_num(), target);
    }
  
    // bool to_plat_http_testmode = 7;
    if (this->to_plat_http_testmode() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(7, this->to_plat_http_testmode(), target);
    }
  
    // string to_plat_http_host = 8;
    if (this->to_plat_http_host().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_plat_http_host().data(), static_cast<int>(this->to_plat_http_host().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_plat_http_host");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          8, this->to_plat_http_host(), target);
    }
  
    // uint32 to_plat_http_port = 9;
    if (this->to_plat_http_port() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(9, this->to_plat_http_port(), target);
    }
  
    // uint32 to_plat_http_thread_num = 10;
    if (this->to_plat_http_thread_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(10, this->to_plat_http_thread_num(), target);
    }
  
    // uint32 to_plat_http_max_conn_pool = 11;
    if (this->to_plat_http_max_conn_pool() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(11, this->to_plat_http_max_conn_pool(), target);
    }
  
    // double to_plat_http_timeout = 12;
    if (this->to_plat_http_timeout() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(12, this->to_plat_http_timeout(), target);
    }
  
    // string to_plat_http_cert_filename = 13;
    if (this->to_plat_http_cert_filename().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_plat_http_cert_filename().data(), static_cast<int>(this->to_plat_http_cert_filename().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_plat_http_cert_filename");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          13, this->to_plat_http_cert_filename(), target);
    }
  
    // bool to_tzplat_http_testmode = 14;
    if (this->to_tzplat_http_testmode() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(14, this->to_tzplat_http_testmode(), target);
    }
  
    // string to_tzplat_http_host = 15;
    if (this->to_tzplat_http_host().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_tzplat_http_host().data(), static_cast<int>(this->to_tzplat_http_host().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_tzplat_http_host");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          15, this->to_tzplat_http_host(), target);
    }
  
    // uint32 to_tzplat_http_port = 16;
    if (this->to_tzplat_http_port() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(16, this->to_tzplat_http_port(), target);
    }
  
    // uint32 to_tzplat_http_thread_num = 17;
    if (this->to_tzplat_http_thread_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(17, this->to_tzplat_http_thread_num(), target);
    }
  
    // uint32 to_tzplat_http_max_conn_pool = 18;
    if (this->to_tzplat_http_max_conn_pool() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(18, this->to_tzplat_http_max_conn_pool(), target);
    }
  
    // double to_tzplat_http_timeout = 19;
    if (this->to_tzplat_http_timeout() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(19, this->to_tzplat_http_timeout(), target);
    }
  
    // string to_tzplat_http_cert_filename = 20;
    if (this->to_tzplat_http_cert_filename().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->to_tzplat_http_cert_filename().data(), static_cast<int>(this->to_tzplat_http_cert_filename().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.to_tzplat_http_cert_filename");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          20, this->to_tzplat_http_cert_filename(), target);
    }
  
    // string from_plat_listen_ports = 21;
    if (this->from_plat_listen_ports().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->from_plat_listen_ports().data(), static_cast<int>(this->from_plat_listen_ports().length()),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "pbconfig.SdkConfig.NetworkModule.from_plat_listen_ports");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          21, this->from_plat_listen_ports(), target);
    }
  
    // uint32 from_plat_thread_num = 22;
    if (this->from_plat_thread_num() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(22, this->from_plat_thread_num(), target);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:pbconfig.SdkConfig.NetworkModule)
    return target;
  }
  
  size_t SdkConfig_NetworkModule::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:pbconfig.SdkConfig.NetworkModule)
    size_t total_size = 0;
  
    if (_internal_metadata_.have_unknown_fields()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          _internal_metadata_.unknown_fields());
    }
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // string from_ws_listen_addr = 1;
    if (this->from_ws_listen_addr().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->from_ws_listen_addr());
    }
  
    // string from_ls_listen_addr = 4;
    if (this->from_ls_listen_addr().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->from_ls_listen_addr());
    }
  
    // string to_plat_http_host = 8;
    if (this->to_plat_http_host().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->to_plat_http_host());
    }
  
    // string to_plat_http_cert_filename = 13;
    if (this->to_plat_http_cert_filename().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->to_plat_http_cert_filename());
    }
  
    // string to_tzplat_http_host = 15;
    if (this->to_tzplat_http_host().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->to_tzplat_http_host());
    }
  
    // string to_tzplat_http_cert_filename = 20;
    if (this->to_tzplat_http_cert_filename().size() > 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->to_tzplat_http_cert_filename());
    }
  
    // string from_plat_listen_ports = 21;
    if (this->from_plat_listen_ports().size() > 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->from_plat_listen_ports());
    }
  
    // uint32 from_ws_thread_num = 2;
    if (this->from_ws_thread_num() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->from_ws_thread_num());
    }
  
    // uint32 from_ws_session_num = 3;
    if (this->from_ws_session_num() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->from_ws_session_num());
    }
  
    // uint32 from_ls_thread_num = 5;
    if (this->from_ls_thread_num() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->from_ls_thread_num());
    }
  
    // uint32 from_ls_session_num = 6;
    if (this->from_ls_session_num() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->from_ls_session_num());
    }
  
    // uint32 to_plat_http_port = 9;
    if (this->to_plat_http_port() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->to_plat_http_port());
    }
  
    // uint32 to_plat_http_thread_num = 10;
    if (this->to_plat_http_thread_num() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->to_plat_http_thread_num());
    }
  
    // bool to_plat_http_testmode = 7;
    if (this->to_plat_http_testmode() != 0) {
      total_size += 1 + 1;
    }
  
    // bool to_tzplat_http_testmode = 14;
    if (this->to_tzplat_http_testmode() != 0) {
      total_size += 1 + 1;
    }
  
    // uint32 to_plat_http_max_conn_pool = 11;
    if (this->to_plat_http_max_conn_pool() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->to_plat_http_max_conn_pool());
    }
  
    // double to_plat_http_timeout = 12;
    if (this->to_plat_http_timeout() != 0) {
      total_size += 1 + 8;
    }
  
    // uint32 to_tzplat_http_port = 16;
    if (this->to_tzplat_http_port() != 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->to_tzplat_http_port());
    }
  
    // uint32 to_tzplat_http_thread_num = 17;
    if (this->to_tzplat_http_thread_num() != 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->to_tzplat_http_thread_num());
    }
  
    // double to_tzplat_http_timeout = 19;
    if (this->to_tzplat_http_timeout() != 0) {
      total_size += 2 + 8;
    }
  
    // uint32 to_tzplat_http_max_conn_pool = 18;
    if (this->to_tzplat_http_max_conn_pool() != 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->to_tzplat_http_max_conn_pool());
    }
  
    // uint32 from_plat_thread_num = 22;
    if (this->from_plat_thread_num() != 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->from_plat_thread_num());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void SdkConfig_NetworkModule::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:pbconfig.SdkConfig.NetworkModule)
    GOOGLE_DCHECK_NE(&from, this);
    const SdkConfig_NetworkModule* source =
        ::google::protobuf::DynamicCastToGenerated<SdkConfig_NetworkModule>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:pbconfig.SdkConfig.NetworkModule)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:pbconfig.SdkConfig.NetworkModule)
      MergeFrom(*source);
    }
  }
  
  void SdkConfig_NetworkModule::MergeFrom(const SdkConfig_NetworkModule& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:pbconfig.SdkConfig.NetworkModule)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.from_ws_listen_addr().size() > 0) {
  
      from_ws_listen_addr_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.from_ws_listen_addr_);
    }
    if (from.from_ls_listen_addr().size() > 0) {
  
      from_ls_listen_addr_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.from_ls_listen_addr_);
    }
    if (from.to_plat_http_host().size() > 0) {
  
      to_plat_http_host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_plat_http_host_);
    }
    if (from.to_plat_http_cert_filename().size() > 0) {
  
      to_plat_http_cert_filename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_plat_http_cert_filename_);
    }
    if (from.to_tzplat_http_host().size() > 0) {
  
      to_tzplat_http_host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_tzplat_http_host_);
    }
    if (from.to_tzplat_http_cert_filename().size() > 0) {
  
      to_tzplat_http_cert_filename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.to_tzplat_http_cert_filename_);
    }
    if (from.from_plat_listen_ports().size() > 0) {
  
      from_plat_listen_ports_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.from_plat_listen_ports_);
    }
    if (from.from_ws_thread_num() != 0) {
      set_from_ws_thread_num(from.from_ws_thread_num());
    }
    if (from.from_ws_session_num() != 0) {
      set_from_ws_session_num(from.from_ws_session_num());
    }
    if (from.from_ls_thread_num() != 0) {
      set_from_ls_thread_num(from.from_ls_thread_num());
    }
    if (from.from_ls_session_num() != 0) {
      set_from_ls_session_num(from.from_ls_session_num());
    }
    if (from.to_plat_http_port() != 0) {
      set_to_plat_http_port(from.to_plat_http_port());
    }
    if (from.to_plat_http_thread_num() != 0) {
      set_to_plat_http_thread_num(from.to_plat_http_thread_num());
    }
    if (from.to_plat_http_testmode() != 0) {
      set_to_plat_http_testmode(from.to_plat_http_testmode());
    }
    if (from.to_tzplat_http_testmode() != 0) {
      set_to_tzplat_http_testmode(from.to_tzplat_http_testmode());
    }
    if (from.to_plat_http_max_conn_pool() != 0) {
      set_to_plat_http_max_conn_pool(from.to_plat_http_max_conn_pool());
    }
    if (from.to_plat_http_timeout() != 0) {
      set_to_plat_http_timeout(from.to_plat_http_timeout());
    }
    if (from.to_tzplat_http_port() != 0) {
      set_to_tzplat_http_port(from.to_tzplat_http_port());
    }
    if (from.to_tzplat_http_thread_num() != 0) {
      set_to_tzplat_http_thread_num(from.to_tzplat_http_thread_num());
    }
    if (from.to_tzplat_http_timeout() != 0) {
      set_to_tzplat_http_timeout(from.to_tzplat_http_timeout());
    }
    if (from.to_tzplat_http_max_conn_pool() != 0) {
      set_to_tzplat_http_max_conn_pool(from.to_tzplat_http_max_conn_pool());
    }
    if (from.from_plat_thread_num() != 0) {
      set_from_plat_thread_num(from.from_plat_thread_num());
    }
  }
  
  void SdkConfig_NetworkModule::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:pbconfig.SdkConfig.NetworkModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void SdkConfig_NetworkModule::CopyFrom(const SdkConfig_NetworkModule& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:pbconfig.SdkConfig.NetworkModule)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool SdkConfig_NetworkModule::IsInitialized() const {
    return true;
  }
  
  void SdkConfig_NetworkModule::Swap(SdkConfig_NetworkModule* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void SdkConfig_NetworkModule::InternalSwap(SdkConfig_NetworkModule* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    from_ws_listen_addr_.Swap(&other->from_ws_listen_addr_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    from_ls_listen_addr_.Swap(&other->from_ls_listen_addr_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    to_plat_http_host_.Swap(&other->to_plat_http_host_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    to_plat_http_cert_filename_.Swap(&other->to_plat_http_cert_filename_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    to_tzplat_http_host_.Swap(&other->to_tzplat_http_host_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    to_tzplat_http_cert_filename_.Swap(&other->to_tzplat_http_cert_filename_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    from_plat_listen_ports_.Swap(&other->from_plat_listen_ports_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    swap(from_ws_thread_num_, other->from_ws_thread_num_);
    swap(from_ws_session_num_, other->from_ws_session_num_);
    swap(from_ls_thread_num_, other->from_ls_thread_num_);
    swap(from_ls_session_num_, other->from_ls_session_num_);
    swap(to_plat_http_port_, other->to_plat_http_port_);
    swap(to_plat_http_thread_num_, other->to_plat_http_thread_num_);
    swap(to_plat_http_testmode_, other->to_plat_http_testmode_);
    swap(to_tzplat_http_testmode_, other->to_tzplat_http_testmode_);
    swap(to_plat_http_max_conn_pool_, other->to_plat_http_max_conn_pool_);
    swap(to_plat_http_timeout_, other->to_plat_http_timeout_);
    swap(to_tzplat_http_port_, other->to_tzplat_http_port_);
    swap(to_tzplat_http_thread_num_, other->to_tzplat_http_thread_num_);
    swap(to_tzplat_http_timeout_, other->to_tzplat_http_timeout_);
    swap(to_tzplat_http_max_conn_pool_, other->to_tzplat_http_max_conn_pool_);
    swap(from_plat_thread_num_, other->from_plat_thread_num_);
  }
  
  ::google::protobuf::Metadata SdkConfig_NetworkModule::GetMetadata() const {
    ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_sdk_2econf_2eproto);
    return ::file_level_metadata_sdk_2econf_2eproto[kIndexInFileMessages];
  }
  
  
  // ===================================================================
  
  void SdkConfig::InitAsDefaultInstance() {
    ::pbconfig::_SdkConfig_default_instance_._instance.get_mutable()->logicmodule_ = const_cast< ::pbconfig::SdkConfig_LogicModule*>(
        ::pbconfig::SdkConfig_LogicModule::internal_default_instance());
    ::pbconfig::_SdkConfig_default_instance_._instance.get_mutable()->databasemodule_ = const_cast< ::pbconfig::SdkConfig_DatabaseModule*>(
        ::pbconfig::SdkConfig_DatabaseModule::internal_default_instance());
    ::pbconfig::_SdkConfig_default_instance_._instance.get_mutable()->networkmodule_ = const_cast< ::pbconfig::SdkConfig_NetworkModule*>(
        ::pbconfig::SdkConfig_NetworkModule::internal_default_instance());
  }
  class SdkConfig::HasBitSetters {
   public:
    static const ::pbconfig::SdkConfig_LogicModule& logicmodule(const SdkConfig* msg);
    static const ::pbconfig::SdkConfig_DatabaseModule& databasemodule(const SdkConfig* msg);
    static const ::pbconfig::SdkConfig_NetworkModule& networkmodule(const SdkConfig* msg);
  };
  
  const ::pbconfig::SdkConfig_LogicModule&
  SdkConfig::HasBitSetters::logicmodule(const SdkConfig* msg) {
    return *msg->logicmodule_;
  }
  const ::pbconfig::SdkConfig_DatabaseModule&
  SdkConfig::HasBitSetters::databasemodule(const SdkConfig* msg) {
    return *msg->databasemodule_;
  }
  const ::pbconfig::SdkConfig_NetworkModule&
  SdkConfig::HasBitSetters::networkmodule(const SdkConfig* msg) {
    return *msg->networkmodule_;
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int SdkConfig::kLogicModuleFieldNumber;
  const int SdkConfig::kDatabaseModuleFieldNumber;
  const int SdkConfig::kNetworkModuleFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  SdkConfig::SdkConfig()
    : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:pbconfig.SdkConfig)
  }
  SdkConfig::SdkConfig(const SdkConfig& from)
    : ::google::protobuf::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    if (from.has_logicmodule()) {
      logicmodule_ = new ::pbconfig::SdkConfig_LogicModule(*from.logicmodule_);
    } else {
      logicmodule_ = nullptr;
    }
    if (from.has_databasemodule()) {
      databasemodule_ = new ::pbconfig::SdkConfig_DatabaseModule(*from.databasemodule_);
    } else {
      databasemodule_ = nullptr;
    }
    if (from.has_networkmodule()) {
      networkmodule_ = new ::pbconfig::SdkConfig_NetworkModule(*from.networkmodule_);
    } else {
      networkmodule_ = nullptr;
    }
    // @@protoc_insertion_point(copy_constructor:pbconfig.SdkConfig)
  }
  
  void SdkConfig::SharedCtor() {
    ::google::protobuf::internal::InitSCC(
        &scc_info_SdkConfig_sdk_2econf_2eproto.base);
    ::memset(&logicmodule_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&networkmodule_) -
        reinterpret_cast<char*>(&logicmodule_)) + sizeof(networkmodule_));
  }
  
  SdkConfig::~SdkConfig() {
    // @@protoc_insertion_point(destructor:pbconfig.SdkConfig)
    SharedDtor();
  }
  
  void SdkConfig::SharedDtor() {
    if (this != internal_default_instance()) delete logicmodule_;
    if (this != internal_default_instance()) delete databasemodule_;
    if (this != internal_default_instance()) delete networkmodule_;
  }
  
  void SdkConfig::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const SdkConfig& SdkConfig::default_instance() {
    ::google::protobuf::internal::InitSCC(&::scc_info_SdkConfig_sdk_2econf_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void SdkConfig::Clear() {
  // @@protoc_insertion_point(message_clear_start:pbconfig.SdkConfig)
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    if (GetArenaNoVirtual() == nullptr && logicmodule_ != nullptr) {
      delete logicmodule_;
    }
    logicmodule_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && databasemodule_ != nullptr) {
      delete databasemodule_;
    }
    databasemodule_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && networkmodule_ != nullptr) {
      delete networkmodule_;
    }
    networkmodule_ = nullptr;
    _internal_metadata_.Clear();
  }
  
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* SdkConfig::_InternalParse(const char* begin, const char* end, void* object,
                    ::google::protobuf::internal::ParseContext* ctx) {
    auto msg = static_cast<SdkConfig*>(object);
    ::google::protobuf::int32 size; (void)size;
    int depth; (void)depth;
    ::google::protobuf::uint32 tag;
    ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
    auto ptr = begin;
    while (ptr < end) {
      ptr = ::google::protobuf::io::Parse32(ptr, &tag);
      GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
      switch (tag >> 3) {
        // .pbconfig.SdkConfig.LogicModule logicModule = 1;
        case 1: {
          if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::pbconfig::SdkConfig_LogicModule::_InternalParse;
          object = msg->mutable_logicmodule();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          break;
        }
        // .pbconfig.SdkConfig.DatabaseModule databaseModule = 2;
        case 2: {
          if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::pbconfig::SdkConfig_DatabaseModule::_InternalParse;
          object = msg->mutable_databasemodule();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          break;
        }
        // .pbconfig.SdkConfig.NetworkModule networkModule = 3;
        case 3: {
          if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::pbconfig::SdkConfig_NetworkModule::_InternalParse;
          object = msg->mutable_networkmodule();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          break;
        }
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->EndGroup(tag);
            return ptr;
          }
          auto res = UnknownFieldParse(tag, {_InternalParse, msg},
            ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
          ptr = res.first;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
          if (res.second) return ptr;
        }
      }  // switch
    }  // while
    return ptr;
  len_delim_till_end:
    return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                                 {parser_till_end, object}, size);
  }
  #else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  bool SdkConfig::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:pbconfig.SdkConfig)
    for (;;) {
      ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // .pbconfig.SdkConfig.LogicModule logicModule = 1;
        case 1: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                 input, mutable_logicmodule()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // .pbconfig.SdkConfig.DatabaseModule databaseModule = 2;
        case 2: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                 input, mutable_databasemodule()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // .pbconfig.SdkConfig.NetworkModule networkModule = 3;
        case 3: {
          if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                 input, mutable_networkmodule()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:pbconfig.SdkConfig)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:pbconfig.SdkConfig)
    return false;
  #undef DO_
  }
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  
  void SdkConfig::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:pbconfig.SdkConfig)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .pbconfig.SdkConfig.LogicModule logicModule = 1;
    if (this->has_logicmodule()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, HasBitSetters::logicmodule(this), output);
    }
  
    // .pbconfig.SdkConfig.DatabaseModule databaseModule = 2;
    if (this->has_databasemodule()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        2, HasBitSetters::databasemodule(this), output);
    }
  
    // .pbconfig.SdkConfig.NetworkModule networkModule = 3;
    if (this->has_networkmodule()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        3, HasBitSetters::networkmodule(this), output);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          _internal_metadata_.unknown_fields(), output);
    }
    // @@protoc_insertion_point(serialize_end:pbconfig.SdkConfig)
  }
  
  ::google::protobuf::uint8* SdkConfig::InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // @@protoc_insertion_point(serialize_to_array_start:pbconfig.SdkConfig)
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .pbconfig.SdkConfig.LogicModule logicModule = 1;
    if (this->has_logicmodule()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          1, HasBitSetters::logicmodule(this), target);
    }
  
    // .pbconfig.SdkConfig.DatabaseModule databaseModule = 2;
    if (this->has_databasemodule()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          2, HasBitSetters::databasemodule(this), target);
    }
  
    // .pbconfig.SdkConfig.NetworkModule networkModule = 3;
    if (this->has_networkmodule()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageToArray(
          3, HasBitSetters::networkmodule(this), target);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:pbconfig.SdkConfig)
    return target;
  }
  
  size_t SdkConfig::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:pbconfig.SdkConfig)
    size_t total_size = 0;
  
    if (_internal_metadata_.have_unknown_fields()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          _internal_metadata_.unknown_fields());
    }
    ::google::protobuf::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // .pbconfig.SdkConfig.LogicModule logicModule = 1;
    if (this->has_logicmodule()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *logicmodule_);
    }
  
    // .pbconfig.SdkConfig.DatabaseModule databaseModule = 2;
    if (this->has_databasemodule()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *databasemodule_);
    }
  
    // .pbconfig.SdkConfig.NetworkModule networkModule = 3;
    if (this->has_networkmodule()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *networkmodule_);
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void SdkConfig::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:pbconfig.SdkConfig)
    GOOGLE_DCHECK_NE(&from, this);
    const SdkConfig* source =
        ::google::protobuf::DynamicCastToGenerated<SdkConfig>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:pbconfig.SdkConfig)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:pbconfig.SdkConfig)
      MergeFrom(*source);
    }
  }
  
  void SdkConfig::MergeFrom(const SdkConfig& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:pbconfig.SdkConfig)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::google::protobuf::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.has_logicmodule()) {
      mutable_logicmodule()->::pbconfig::SdkConfig_LogicModule::MergeFrom(from.logicmodule());
    }
    if (from.has_databasemodule()) {
      mutable_databasemodule()->::pbconfig::SdkConfig_DatabaseModule::MergeFrom(from.databasemodule());
    }
    if (from.has_networkmodule()) {
      mutable_networkmodule()->::pbconfig::SdkConfig_NetworkModule::MergeFrom(from.networkmodule());
    }
  }
  
  void SdkConfig::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:pbconfig.SdkConfig)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void SdkConfig::CopyFrom(const SdkConfig& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:pbconfig.SdkConfig)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool SdkConfig::IsInitialized() const {
    return true;
  }
  
  void SdkConfig::Swap(SdkConfig* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void SdkConfig::InternalSwap(SdkConfig* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(logicmodule_, other->logicmodule_);
    swap(databasemodule_, other->databasemodule_);
    swap(networkmodule_, other->networkmodule_);
  }
  
  ::google::protobuf::Metadata SdkConfig::GetMetadata() const {
    ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_sdk_2econf_2eproto);
    return ::file_level_metadata_sdk_2econf_2eproto[kIndexInFileMessages];
  }
  
  
  // @@protoc_insertion_point(namespace_scope)
  }  // namespace pbconfig
  namespace google {
  namespace protobuf {
  template<> PROTOBUF_NOINLINE ::pbconfig::SdkConfig_ResourceModule* Arena::CreateMaybeMessage< ::pbconfig::SdkConfig_ResourceModule >(Arena* arena) {
    return Arena::CreateInternal< ::pbconfig::SdkConfig_ResourceModule >(arena);
  }
  template<> PROTOBUF_NOINLINE ::pbconfig::SdkConfig_LogicModule* Arena::CreateMaybeMessage< ::pbconfig::SdkConfig_LogicModule >(Arena* arena) {
    return Arena::CreateInternal< ::pbconfig::SdkConfig_LogicModule >(arena);
  }
  template<> PROTOBUF_NOINLINE ::pbconfig::SdkConfig_DatabaseModule* Arena::CreateMaybeMessage< ::pbconfig::SdkConfig_DatabaseModule >(Arena* arena) {
    return Arena::CreateInternal< ::pbconfig::SdkConfig_DatabaseModule >(arena);
  }
  template<> PROTOBUF_NOINLINE ::pbconfig::SdkConfig_NetworkModule* Arena::CreateMaybeMessage< ::pbconfig::SdkConfig_NetworkModule >(Arena* arena) {
    return Arena::CreateInternal< ::pbconfig::SdkConfig_NetworkModule >(arena);
  }
  template<> PROTOBUF_NOINLINE ::pbconfig::SdkConfig* Arena::CreateMaybeMessage< ::pbconfig::SdkConfig >(Arena* arena) {
    return Arena::CreateInternal< ::pbconfig::SdkConfig >(arena);
  }
  }  // namespace protobuf
  }  // namespace google
  
  // @@protoc_insertion_point(global_scope)
  #include <google/protobuf/port_undef.inc>
  