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

#include "protocol.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.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>

PROTOBUF_PRAGMA_INIT_SEG
namespace RemoNet {
constexpr CSAdd::CSAdd(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : serial_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , type_(0){}
struct CSAddDefaultTypeInternal {
  constexpr CSAddDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CSAddDefaultTypeInternal() {}
  union {
    CSAdd _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CSAddDefaultTypeInternal _CSAdd_default_instance_;
constexpr SCAdd::SCAdd(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , ret_(false)
  , uid_(0)
  , cid_(0){}
struct SCAddDefaultTypeInternal {
  constexpr SCAddDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCAddDefaultTypeInternal() {}
  union {
    SCAdd _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCAddDefaultTypeInternal _SCAdd_default_instance_;
constexpr SCKickOff::SCKickOff(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct SCKickOffDefaultTypeInternal {
  constexpr SCKickOffDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCKickOffDefaultTypeInternal() {}
  union {
    SCKickOff _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCKickOffDefaultTypeInternal _SCKickOff_default_instance_;
constexpr Robot::Robot(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , rid_(0)
  , type_(0)
  , state_(0)
{}
struct RobotDefaultTypeInternal {
  constexpr RobotDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~RobotDefaultTypeInternal() {}
  union {
    Robot _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RobotDefaultTypeInternal _Robot_default_instance_;
constexpr CSRobot::CSRobot(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct CSRobotDefaultTypeInternal {
  constexpr CSRobotDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CSRobotDefaultTypeInternal() {}
  union {
    CSRobot _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CSRobotDefaultTypeInternal _CSRobot_default_instance_;
constexpr SCRobot::SCRobot(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : robot_(){}
struct SCRobotDefaultTypeInternal {
  constexpr SCRobotDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCRobotDefaultTypeInternal() {}
  union {
    SCRobot _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCRobotDefaultTypeInternal _SCRobot_default_instance_;
constexpr CSSign::CSSign(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : account_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , password_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct CSSignDefaultTypeInternal {
  constexpr CSSignDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CSSignDefaultTypeInternal() {}
  union {
    CSSign _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CSSignDefaultTypeInternal _CSSign_default_instance_;
constexpr SCSign::SCSign(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , ret_(false)
  , uid_(0)
  , cid_(0){}
struct SCSignDefaultTypeInternal {
  constexpr SCSignDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCSignDefaultTypeInternal() {}
  union {
    SCSign _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCSignDefaultTypeInternal _SCSign_default_instance_;
constexpr CSReq::CSReq(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : peer_(0)
  , index_(0)
  , egotype_(0){}
struct CSReqDefaultTypeInternal {
  constexpr CSReqDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CSReqDefaultTypeInternal() {}
  union {
    CSReq _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CSReqDefaultTypeInternal _CSReq_default_instance_;
constexpr SCReq::SCReq(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : desc_(0)

  , peer_(0)
  , egotype_(0){}
struct SCReqDefaultTypeInternal {
  constexpr SCReqDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCReqDefaultTypeInternal() {}
  union {
    SCReq _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCReqDefaultTypeInternal _SCReq_default_instance_;
constexpr CSRep::CSRep(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : desc_(0)

  , peer_(0)
  , index_(0)
  , egotype_(0){}
struct CSRepDefaultTypeInternal {
  constexpr CSRepDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CSRepDefaultTypeInternal() {}
  union {
    CSRep _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CSRepDefaultTypeInternal _CSRep_default_instance_;
constexpr SCRep::SCRep(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : desc_(0)

  , index_(0)
  , egotype_(0)
  , peer_(0){}
struct SCRepDefaultTypeInternal {
  constexpr SCRepDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCRepDefaultTypeInternal() {}
  union {
    SCRep _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCRepDefaultTypeInternal _SCRep_default_instance_;
constexpr Offer::Offer(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sdp_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , index_(0)
  , peer_(0){}
struct OfferDefaultTypeInternal {
  constexpr OfferDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~OfferDefaultTypeInternal() {}
  union {
    Offer _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OfferDefaultTypeInternal _Offer_default_instance_;
constexpr Answer::Answer(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sdp_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , index_(0)
  , peer_(0){}
struct AnswerDefaultTypeInternal {
  constexpr AnswerDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~AnswerDefaultTypeInternal() {}
  union {
    Answer _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT AnswerDefaultTypeInternal _Answer_default_instance_;
constexpr Candidate::Candidate(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , candidate_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sdpmid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , index_(0)
  , peer_(0)
  , sdpmlineindex_(0)
  , egotype_(0){}
struct CandidateDefaultTypeInternal {
  constexpr CandidateDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CandidateDefaultTypeInternal() {}
  union {
    Candidate _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CandidateDefaultTypeInternal _Candidate_default_instance_;
constexpr Leave::Leave(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : peer_(0)
  , egotype_(0){}
struct LeaveDefaultTypeInternal {
  constexpr LeaveDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LeaveDefaultTypeInternal() {}
  union {
    Leave _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LeaveDefaultTypeInternal _Leave_default_instance_;
constexpr Close::Close(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : peer_(0)
  , egotype_(0)
  , index_(0){}
struct CloseDefaultTypeInternal {
  constexpr CloseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CloseDefaultTypeInternal() {}
  union {
    Close _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CloseDefaultTypeInternal _Close_default_instance_;
constexpr TestTextReq::TestTextReq(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : text_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct TestTextReqDefaultTypeInternal {
  constexpr TestTextReqDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~TestTextReqDefaultTypeInternal() {}
  union {
    TestTextReq _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TestTextReqDefaultTypeInternal _TestTextReq_default_instance_;
constexpr CanMessage::CanMessage(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : data_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , head_(0)
  , canid_(0){}
struct CanMessageDefaultTypeInternal {
  constexpr CanMessageDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CanMessageDefaultTypeInternal() {}
  union {
    CanMessage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CanMessageDefaultTypeInternal _CanMessage_default_instance_;
constexpr CCCanMesage::CCCanMesage(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : message_()
  , islidar_(false){}
struct CCCanMesageDefaultTypeInternal {
  constexpr CCCanMesageDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCCanMesageDefaultTypeInternal() {}
  union {
    CCCanMesage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCCanMesageDefaultTypeInternal _CCCanMesage_default_instance_;
constexpr Wiper::Wiper(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ret_(false){}
struct WiperDefaultTypeInternal {
  constexpr WiperDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~WiperDefaultTypeInternal() {}
  union {
    Wiper _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT WiperDefaultTypeInternal _Wiper_default_instance_;
constexpr FrontLight::FrontLight(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ret_(false){}
struct FrontLightDefaultTypeInternal {
  constexpr FrontLightDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~FrontLightDefaultTypeInternal() {}
  union {
    FrontLight _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT FrontLightDefaultTypeInternal _FrontLight_default_instance_;
constexpr BackLight::BackLight(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ret_(false){}
struct BackLightDefaultTypeInternal {
  constexpr BackLightDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~BackLightDefaultTypeInternal() {}
  union {
    BackLight _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BackLightDefaultTypeInternal _BackLight_default_instance_;
constexpr CCAskDataChannel::CCAskDataChannel(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct CCAskDataChannelDefaultTypeInternal {
  constexpr CCAskDataChannelDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCAskDataChannelDefaultTypeInternal() {}
  union {
    CCAskDataChannel _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCAskDataChannelDefaultTypeInternal _CCAskDataChannel_default_instance_;
constexpr IMuMessage::IMuMessage(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : rx_(0)
  , ry_(0){}
struct IMuMessageDefaultTypeInternal {
  constexpr IMuMessageDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~IMuMessageDefaultTypeInternal() {}
  union {
    IMuMessage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IMuMessageDefaultTypeInternal _IMuMessage_default_instance_;
constexpr CCPing::CCPing(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : tick_(int64_t{0}){}
struct CCPingDefaultTypeInternal {
  constexpr CCPingDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCPingDefaultTypeInternal() {}
  union {
    CCPing _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCPingDefaultTypeInternal _CCPing_default_instance_;
constexpr CCRadarMessage::CCRadarMessage(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : radar0_(0)
  , radar1_(0)
  , radar2_(0)
  , radar3_(0)
  , radar4_(0)
  , radar5_(0)
  , radar6_(0)
  , radar7_(0){}
struct CCRadarMessageDefaultTypeInternal {
  constexpr CCRadarMessageDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCRadarMessageDefaultTypeInternal() {}
  union {
    CCRadarMessage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCRadarMessageDefaultTypeInternal _CCRadarMessage_default_instance_;
constexpr CCRobotAnalog::CCRobotAnalog(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : steer_(0)
  , arm_(0)
  , bucket_(0)
  , throttle_(0)
  , brake_(0)
  , gears_(0)

  , emergency_(false)
  , resume_(false)
  , frontlight_(false)
  , backlight_(false)
  , directionlight_(0)

  , wipe_(false)
  , buzzer_(false)
  , gears_d_(0)
{}
struct CCRobotAnalogDefaultTypeInternal {
  constexpr CCRobotAnalogDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCRobotAnalogDefaultTypeInternal() {}
  union {
    CCRobotAnalog _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCRobotAnalogDefaultTypeInternal _CCRobotAnalog_default_instance_;
constexpr CCBootStrapReq::CCBootStrapReq(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct CCBootStrapReqDefaultTypeInternal {
  constexpr CCBootStrapReqDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCBootStrapReqDefaultTypeInternal() {}
  union {
    CCBootStrapReq _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCBootStrapReqDefaultTypeInternal _CCBootStrapReq_default_instance_;
constexpr CCBooStrapRep::CCBooStrapRep(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ret_(false){}
struct CCBooStrapRepDefaultTypeInternal {
  constexpr CCBooStrapRepDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCBooStrapRepDefaultTypeInternal() {}
  union {
    CCBooStrapRep _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCBooStrapRepDefaultTypeInternal _CCBooStrapRep_default_instance_;
constexpr CCStartupReq::CCStartupReq(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct CCStartupReqDefaultTypeInternal {
  constexpr CCStartupReqDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCStartupReqDefaultTypeInternal() {}
  union {
    CCStartupReq _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCStartupReqDefaultTypeInternal _CCStartupReq_default_instance_;
constexpr CCStartupRep::CCStartupRep(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ret_(false){}
struct CCStartupRepDefaultTypeInternal {
  constexpr CCStartupRepDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCStartupRepDefaultTypeInternal() {}
  union {
    CCStartupRep _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCStartupRepDefaultTypeInternal _CCStartupRep_default_instance_;
constexpr CCSwitch::CCSwitch(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : front_(false){}
struct CCSwitchDefaultTypeInternal {
  constexpr CCSwitchDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCSwitchDefaultTypeInternal() {}
  union {
    CCSwitch _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCSwitchDefaultTypeInternal _CCSwitch_default_instance_;
constexpr LidarPoint::LidarPoint(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : data_()
  , frame_id_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , timestamp_(0)
  , seq_(0u)
  , height_(0u)
  , width_(0u)
  , is_dense_(false)
  , is_left_(false){}
struct LidarPointDefaultTypeInternal {
  constexpr LidarPointDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LidarPointDefaultTypeInternal() {}
  union {
    LidarPoint _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LidarPointDefaultTypeInternal _LidarPoint_default_instance_;
constexpr SensorStop::SensorStop(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct SensorStopDefaultTypeInternal {
  constexpr SensorStopDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SensorStopDefaultTypeInternal() {}
  union {
    SensorStop _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SensorStopDefaultTypeInternal _SensorStop_default_instance_;
constexpr StopAck::StopAck(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct StopAckDefaultTypeInternal {
  constexpr StopAckDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~StopAckDefaultTypeInternal() {}
  union {
    StopAck _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT StopAckDefaultTypeInternal _StopAck_default_instance_;
constexpr CCManipulation::CCManipulation(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : sensor_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , car_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct CCManipulationDefaultTypeInternal {
  constexpr CCManipulationDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCManipulationDefaultTypeInternal() {}
  union {
    CCManipulation _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCManipulationDefaultTypeInternal _CCManipulation_default_instance_;
constexpr SCAddRobot::SCAddRobot(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : robot_(nullptr){}
struct SCAddRobotDefaultTypeInternal {
  constexpr SCAddRobotDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCAddRobotDefaultTypeInternal() {}
  union {
    SCAddRobot _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCAddRobotDefaultTypeInternal _SCAddRobot_default_instance_;
constexpr SCDelRobot::SCDelRobot(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : peer_(0)
  , egotype_(0){}
struct SCDelRobotDefaultTypeInternal {
  constexpr SCDelRobotDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SCDelRobotDefaultTypeInternal() {}
  union {
    SCDelRobot _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SCDelRobotDefaultTypeInternal _SCDelRobot_default_instance_;
constexpr State::State(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : error_buff_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , all_buff_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , engine_speed_(0)
  , travel_speed_(0)
  , fuel_level_(0)
  , engine_temperature_(0)
  , hydraulic_oil_temperature_(0)
  , main_pump_1_pressure_(0)
  , main_pump_2_pressure_(0)
  , hand_gear_(0)
  , actual_gear_(0)
  , gripper_height_(0)
  , amplitude_(0)
  , boom_angle_(0)
  , stick_angle_(0)
  , idle_protection_(0)
  , front_toggle_(0)
  , back_toggle_(0)
  , interlock_(0)
  , safety_switch_(0)
  , arm_lift_pilot_(0)
  , arm_lowering_pilot_(0)
  , lever_lifting_pilot_(0)
  , rod_lowering_pilot_(0)
  , left_rotary_pilot_(0)
  , right_rotary_pilot_(0)
  , grab_open_pilot_(0)
  , grab_close_pilot_(0)
  , safety_valves_(0)
  , function_code_(0)
  , main_add_(0)
  , sub_add_(0)
  , paramter_(0)
  , engine_spn_(0)
  , engine_fmi_(0)
  , engine_num_(0){}
struct StateDefaultTypeInternal {
  constexpr StateDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~StateDefaultTypeInternal() {}
  union {
    State _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT StateDefaultTypeInternal _State_default_instance_;
constexpr can_net_frame::can_net_frame(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : data_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , dlc_(0)
  , canid_(0){}
struct can_net_frameDefaultTypeInternal {
  constexpr can_net_frameDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~can_net_frameDefaultTypeInternal() {}
  union {
    can_net_frame _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT can_net_frameDefaultTypeInternal _can_net_frame_default_instance_;
constexpr CCCanMsg::CCCanMsg(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : frams_(){}
struct CCCanMsgDefaultTypeInternal {
  constexpr CCCanMsgDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CCCanMsgDefaultTypeInternal() {}
  union {
    CCCanMsg _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CCCanMsgDefaultTypeInternal _CCCanMsg_default_instance_;
}  // namespace RemoNet
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_protocol_2eproto[42];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_protocol_2eproto[8];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_protocol_2eproto = nullptr;

const uint32_t TableStruct_protocol_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSAdd, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSAdd, serial_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSAdd, type_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSAdd, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCAdd, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCAdd, ret_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCAdd, uid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCAdd, cid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCAdd, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCKickOff, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Robot, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Robot, rid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Robot, name_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Robot, type_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Robot, state_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSRobot, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCRobot, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCRobot, robot_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSSign, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSSign, account_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSSign, password_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCSign, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCSign, ret_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCSign, uid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCSign, cid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCSign, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSReq, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSReq, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSReq, index_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSReq, egotype_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCReq, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCReq, desc_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCReq, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCReq, egotype_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSRep, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSRep, desc_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSRep, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSRep, index_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CSRep, egotype_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCRep, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCRep, desc_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCRep, index_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCRep, egotype_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCRep, peer_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Offer, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Offer, index_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Offer, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Offer, type_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Offer, sdp_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Answer, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Answer, index_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Answer, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Answer, type_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Answer, sdp_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, index_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, type_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, candidate_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, sdpmlineindex_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, sdpmid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Candidate, egotype_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Leave, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Leave, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Leave, egotype_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Close, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Close, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Close, egotype_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::Close, index_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::TestTextReq, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::TestTextReq, text_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CanMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CanMessage, head_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CanMessage, canid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CanMessage, data_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCCanMesage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCCanMesage, islidar_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCCanMesage, message_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Wiper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::Wiper, ret_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::FrontLight, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::FrontLight, ret_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::BackLight, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::BackLight, ret_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCAskDataChannel, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::IMuMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::IMuMessage, rx_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::IMuMessage, ry_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCPing, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCPing, tick_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar0_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar1_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar2_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar3_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar4_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar5_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar6_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRadarMessage, radar7_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, steer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, arm_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, bucket_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, throttle_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, brake_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, emergency_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, resume_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, gears_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, frontlight_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, backlight_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, wipe_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, directionlight_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, buzzer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCRobotAnalog, gears_d_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCBootStrapReq, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCBooStrapRep, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCBooStrapRep, ret_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCStartupReq, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCStartupRep, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCStartupRep, ret_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCSwitch, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCSwitch, front_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, timestamp_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, seq_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, frame_id_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, height_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, width_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, is_dense_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, is_left_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::LidarPoint, data_),
  1,
  2,
  0,
  3,
  4,
  5,
  6,
  ~0u,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SensorStop, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::StopAck, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCManipulation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCManipulation, sensor_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCManipulation, car_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCAddRobot, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCAddRobot, robot_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCDelRobot, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCDelRobot, peer_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::SCDelRobot, egotype_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, engine_speed_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, travel_speed_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, fuel_level_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, engine_temperature_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, hydraulic_oil_temperature_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, main_pump_1_pressure_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, main_pump_2_pressure_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, hand_gear_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, actual_gear_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, gripper_height_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, amplitude_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, boom_angle_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, stick_angle_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, idle_protection_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, front_toggle_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, back_toggle_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, error_buff_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, interlock_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, safety_switch_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, arm_lift_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, arm_lowering_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, lever_lifting_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, rod_lowering_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, left_rotary_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, right_rotary_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, grab_open_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, grab_close_pilot_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, safety_valves_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, function_code_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, main_add_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, sub_add_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, paramter_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, engine_spn_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, engine_fmi_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, engine_num_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::State, all_buff_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::can_net_frame, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::can_net_frame, dlc_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::can_net_frame, canid_),
  PROTOBUF_FIELD_OFFSET(::RemoNet::can_net_frame, data_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCCanMsg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::RemoNet::CCCanMsg, frams_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::RemoNet::CSAdd)},
  { 9, -1, -1, sizeof(::RemoNet::SCAdd)},
  { 19, -1, -1, sizeof(::RemoNet::SCKickOff)},
  { 25, -1, -1, sizeof(::RemoNet::Robot)},
  { 35, -1, -1, sizeof(::RemoNet::CSRobot)},
  { 41, -1, -1, sizeof(::RemoNet::SCRobot)},
  { 48, -1, -1, sizeof(::RemoNet::CSSign)},
  { 56, -1, -1, sizeof(::RemoNet::SCSign)},
  { 66, -1, -1, sizeof(::RemoNet::CSReq)},
  { 75, -1, -1, sizeof(::RemoNet::SCReq)},
  { 84, -1, -1, sizeof(::RemoNet::CSRep)},
  { 94, -1, -1, sizeof(::RemoNet::SCRep)},
  { 104, -1, -1, sizeof(::RemoNet::Offer)},
  { 114, -1, -1, sizeof(::RemoNet::Answer)},
  { 124, -1, -1, sizeof(::RemoNet::Candidate)},
  { 137, -1, -1, sizeof(::RemoNet::Leave)},
  { 145, -1, -1, sizeof(::RemoNet::Close)},
  { 154, -1, -1, sizeof(::RemoNet::TestTextReq)},
  { 161, -1, -1, sizeof(::RemoNet::CanMessage)},
  { 170, -1, -1, sizeof(::RemoNet::CCCanMesage)},
  { 178, -1, -1, sizeof(::RemoNet::Wiper)},
  { 185, -1, -1, sizeof(::RemoNet::FrontLight)},
  { 192, -1, -1, sizeof(::RemoNet::BackLight)},
  { 199, -1, -1, sizeof(::RemoNet::CCAskDataChannel)},
  { 205, -1, -1, sizeof(::RemoNet::IMuMessage)},
  { 213, -1, -1, sizeof(::RemoNet::CCPing)},
  { 220, -1, -1, sizeof(::RemoNet::CCRadarMessage)},
  { 234, -1, -1, sizeof(::RemoNet::CCRobotAnalog)},
  { 254, -1, -1, sizeof(::RemoNet::CCBootStrapReq)},
  { 260, -1, -1, sizeof(::RemoNet::CCBooStrapRep)},
  { 267, -1, -1, sizeof(::RemoNet::CCStartupReq)},
  { 273, -1, -1, sizeof(::RemoNet::CCStartupRep)},
  { 280, -1, -1, sizeof(::RemoNet::CCSwitch)},
  { 287, 301, -1, sizeof(::RemoNet::LidarPoint)},
  { 309, -1, -1, sizeof(::RemoNet::SensorStop)},
  { 315, -1, -1, sizeof(::RemoNet::StopAck)},
  { 321, -1, -1, sizeof(::RemoNet::CCManipulation)},
  { 329, -1, -1, sizeof(::RemoNet::SCAddRobot)},
  { 336, -1, -1, sizeof(::RemoNet::SCDelRobot)},
  { 344, -1, -1, sizeof(::RemoNet::State)},
  { 386, -1, -1, sizeof(::RemoNet::can_net_frame)},
  { 395, -1, -1, sizeof(::RemoNet::CCCanMsg)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CSAdd_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCAdd_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCKickOff_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_Robot_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CSRobot_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCRobot_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CSSign_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCSign_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CSReq_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCReq_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CSRep_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCRep_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_Offer_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_Answer_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_Candidate_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_Leave_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_Close_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_TestTextReq_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CanMessage_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCCanMesage_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_Wiper_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_FrontLight_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_BackLight_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCAskDataChannel_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_IMuMessage_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCPing_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCRadarMessage_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCRobotAnalog_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCBootStrapReq_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCBooStrapRep_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCStartupReq_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCStartupRep_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCSwitch_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_LidarPoint_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SensorStop_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_StopAck_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCManipulation_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCAddRobot_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_SCDelRobot_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_State_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_can_net_frame_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::RemoNet::_CCCanMsg_default_instance_),
};

const char descriptor_table_protodef_protocol_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\016protocol.proto\022\007RemoNet\"3\n\005CSAdd\022\016\n\006se"
  "rial\030\001 \001(\t\022\014\n\004type\030\002 \001(\005\022\014\n\004name\030\003 \001(\t\"<"
  "\n\005SCAdd\022\013\n\003ret\030\001 \001(\010\022\013\n\003uid\030\002 \001(\005\022\013\n\003cid"
  "\030\003 \001(\005\022\014\n\004name\030\004 \001(\t\"\013\n\tSCKickOff\"\213\001\n\005Ro"
  "bot\022\013\n\003rid\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\022\014\n\004type\030\003"
  " \001(\005\022(\n\005state\030\004 \001(\0162\031.RemoNet.Robot.Robo"
  "tState\"/\n\nRobotState\022\013\n\007Offline\020\000\022\n\n\006Onl"
  "ine\020\001\022\010\n\004Busy\020\002\"\t\n\007CSRobot\"(\n\007SCRobot\022\035\n"
  "\005robot\030\001 \003(\0132\016.RemoNet.Robot\"+\n\006CSSign\022\017"
  "\n\007account\030\001 \001(\t\022\020\n\010password\030\002 \001(\t\"=\n\006SCS"
  "ign\022\013\n\003ret\030\001 \001(\010\022\013\n\003uid\030\002 \001(\005\022\013\n\003cid\030\003 \001"
  "(\005\022\014\n\004name\030\004 \001(\t\"5\n\005CSReq\022\014\n\004peer\030\001 \001(\005\022"
  "\r\n\005index\030\002 \001(\005\022\017\n\007egotype\030\003 \001(\005\"H\n\005SCReq"
  "\022 \n\004desc\030\001 \001(\0162\022.RemoNet.VideoDesc\022\014\n\004pe"
  "er\030\002 \001(\005\022\017\n\007egotype\030\003 \001(\005\"W\n\005CSRep\022 \n\004de"
  "sc\030\001 \001(\0162\022.RemoNet.VideoDesc\022\014\n\004peer\030\002 \001"
  "(\005\022\r\n\005index\030\003 \001(\005\022\017\n\007egotype\030\004 \001(\005\"W\n\005SC"
  "Rep\022 \n\004desc\030\001 \001(\0162\022.RemoNet.VideoDesc\022\r\n"
  "\005index\030\002 \001(\005\022\017\n\007egotype\030\003 \001(\005\022\014\n\004peer\030\004 "
  "\001(\005\"\?\n\005Offer\022\r\n\005index\030\001 \001(\005\022\014\n\004peer\030\002 \001("
  "\005\022\014\n\004type\030\003 \001(\t\022\013\n\003sdp\030\004 \001(\t\"@\n\006Answer\022\r"
  "\n\005index\030\001 \001(\005\022\014\n\004peer\030\002 \001(\005\022\014\n\004type\030\003 \001("
  "\t\022\013\n\003sdp\030\004 \001(\t\"\201\001\n\tCandidate\022\r\n\005index\030\001 "
  "\001(\005\022\014\n\004peer\030\002 \001(\005\022\014\n\004type\030\003 \001(\t\022\021\n\tcandi"
  "date\030\004 \001(\t\022\025\n\rsdpMLineIndex\030\005 \001(\005\022\016\n\006sdp"
  "Mid\030\006 \001(\t\022\017\n\007egotype\030\007 \001(\005\"&\n\005Leave\022\014\n\004p"
  "eer\030\001 \001(\005\022\017\n\007egotype\030\002 \001(\005\"5\n\005Close\022\014\n\004p"
  "eer\030\001 \001(\005\022\017\n\007egotype\030\002 \001(\005\022\r\n\005index\030\003 \001("
  "\005\"\033\n\013TestTextReq\022\014\n\004text\030\001 \001(\t\"7\n\nCanMes"
  "sage\022\014\n\004head\030\001 \001(\005\022\r\n\005canid\030\002 \001(\005\022\014\n\004dat"
  "a\030\003 \001(\014\"D\n\013CCCanMesage\022\017\n\007islidar\030\001 \001(\010\022"
  "$\n\007message\030\002 \003(\0132\023.RemoNet.CanMessage\"\024\n"
  "\005Wiper\022\013\n\003ret\030\001 \001(\010\"\031\n\nFrontLight\022\013\n\003ret"
  "\030\001 \001(\010\"\030\n\tBackLight\022\013\n\003ret\030\001 \001(\010\"\022\n\020CCAs"
  "kDataChannel\"$\n\nIMuMessage\022\n\n\002rx\030\001 \001(\002\022\n"
  "\n\002ry\030\002 \001(\002\"\026\n\006CCPing\022\014\n\004tick\030\001 \001(\003\"\220\001\n\016C"
  "CRadarMessage\022\016\n\006radar0\030\001 \001(\005\022\016\n\006radar1\030"
  "\002 \001(\005\022\016\n\006radar2\030\003 \001(\005\022\016\n\006radar3\030\004 \001(\005\022\016\n"
  "\006radar4\030\005 \001(\005\022\016\n\006radar5\030\006 \001(\005\022\016\n\006radar6\030"
  "\007 \001(\005\022\016\n\006radar7\030\010 \001(\005\"\267\002\n\rCCRobotAnalog\022"
  "\r\n\005steer\030\001 \001(\005\022\013\n\003arm\030\002 \001(\005\022\016\n\006bucket\030\003 "
  "\001(\005\022\020\n\010throttle\030\004 \001(\005\022\r\n\005brake\030\005 \001(\005\022\021\n\t"
  "emergency\030\010 \001(\010\022\016\n\006resume\030\t \001(\010\022\035\n\005gears"
  "\030\n \001(\0162\016.RemoNet.Gears\022\022\n\nfrontlight\030\013 \001"
  "(\010\022\021\n\tbacklight\030\014 \001(\010\022\014\n\004wipe\030\r \001(\010\022/\n\016d"
  "irectionlight\030\016 \001(\0162\027.RemoNet.DirectionL"
  "ight\022\016\n\006buzzer\030\017 \001(\010\022!\n\007gears_d\030\020 \001(\0162\020."
  "RemoNet.Gears_D\"\020\n\016CCBootStrapReq\"\034\n\rCCB"
  "ooStrapRep\022\013\n\003ret\030\001 \001(\010\"\016\n\014CCStartupReq\""
  "\033\n\014CCStartupRep\022\013\n\003ret\030\001 \001(\010\"\031\n\010CCSwitch"
  "\022\r\n\005front\030\001 \001(\010\"\202\002\n\nLidarPoint\022\026\n\ttimest"
  "amp\030\001 \001(\001H\000\210\001\001\022\020\n\003seq\030\002 \001(\rH\001\210\001\001\022\025\n\010fram"
  "e_id\030\003 \001(\tH\002\210\001\001\022\023\n\006height\030\004 \001(\rH\003\210\001\001\022\022\n\005"
  "width\030\005 \001(\rH\004\210\001\001\022\025\n\010is_dense\030\006 \001(\010H\005\210\001\001\022"
  "\024\n\007is_left\030\007 \001(\010H\006\210\001\001\022\014\n\004data\030\010 \003(\002B\014\n\n_"
  "timestampB\006\n\004_seqB\013\n\t_frame_idB\t\n\007_heigh"
  "tB\010\n\006_widthB\013\n\t_is_denseB\n\n\010_is_left\"\014\n\n"
  "SensorStop\"\t\n\007StopAck\"-\n\016CCManipulation\022"
  "\016\n\006sensor\030\001 \001(\014\022\013\n\003car\030\002 \001(\014\"+\n\nSCAddRob"
  "ot\022\035\n\005robot\030\001 \001(\0132\016.RemoNet.Robot\"+\n\nSCD"
  "elRobot\022\014\n\004peer\030\001 \001(\005\022\017\n\007egotype\030\002 \001(\005\"\310"
  "\006\n\005State\022\024\n\014engine_speed\030\001 \001(\005\022\024\n\014travel"
  "_speed\030\002 \001(\005\022\022\n\nfuel_level\030\003 \001(\005\022\032\n\022engi"
  "ne_temperature\030\004 \001(\005\022!\n\031hydraulic_oil_te"
  "mperature\030\005 \001(\005\022\034\n\024main_pump_1_pressure\030"
  "\006 \001(\005\022\034\n\024main_pump_2_pressure\030\007 \001(\005\022\021\n\th"
  "and_gear\030\010 \001(\005\022\023\n\013actual_gear\030\t \001(\005\022\026\n\016g"
  "ripper_height\030\n \001(\002\022\021\n\tamplitude\030\013 \001(\002\022\022"
  "\n\nboom_angle\030\014 \001(\005\022\023\n\013stick_angle\030\r \001(\005\022"
  "\027\n\017idle_protection\030\016 \001(\005\022\024\n\014front_toggle"
  "\030\017 \001(\005\022\023\n\013back_toggle\030\020 \001(\005\022\022\n\nerror_Buf"
  "f\030\021 \001(\014\022\021\n\tinterlock\030\022 \001(\005\022\025\n\rsafety_swi"
  "tch\030\023 \001(\005\022\026\n\016arm_lift_pilot\030\024 \001(\005\022\032\n\022arm"
  "_lowering_pilot\030\025 \001(\005\022\033\n\023lever_lifting_p"
  "ilot\030\026 \001(\005\022\032\n\022rod_lowering_pilot\030\027 \001(\005\022\031"
  "\n\021left_rotary_pilot\030\030 \001(\005\022\032\n\022right_rotar"
  "y_pilot\030\031 \001(\005\022\027\n\017grab_open_pilot\030\032 \001(\005\022\030"
  "\n\020grab_close_pilot\030\033 \001(\005\022\025\n\rsafety_valve"
  "s\030\034 \001(\005\022\025\n\rfunction_code\030\035 \001(\005\022\020\n\010main_a"
  "dd\030\036 \001(\005\022\017\n\007sub_add\030\037 \001(\005\022\020\n\010paramter\030  "
  "\001(\005\022\022\n\nengine_spn\030! \001(\005\022\022\n\nengine_fmi\030\" "
  "\001(\005\022\022\n\nengine_num\030# \001(\005\022\020\n\010all_Buff\030$ \001("
  "\014\"9\n\rcan_net_frame\022\013\n\003dlc\030\001 \001(\021\022\r\n\005canid"
  "\030\002 \001(\005\022\014\n\004data\030\003 \001(\014\"1\n\010CCCanMsg\022%\n\005fram"
  "s\030\001 \003(\0132\026.RemoNet.can_net_frame*\346\001\n\tCSMe"
  "ssage\022\013\n\007CS_NONE\020\000\022\014\n\007CS_Sign\020\320\017\022\013\n\006CS_R"
  "eq\020\321\017\022\013\n\006CS_Rep\020\322\017\022\021\n\014CS_CancelReq\020\323\017\022\r\n"
  "\010CS_Offer\020\324\017\022\016\n\tCS_Answer\020\325\017\022\021\n\014CS_Candi"
  "date\020\326\017\022\r\n\010CS_Leave\020\327\017\022\021\n\014CS_KeepAlive\020\330"
  "\017\022\013\n\006CS_Add\020\331\017\022\r\n\010CS_Robot\020\332\017\022\022\n\rCS_Clos"
  "eVideo\020\333\017\022\r\n\010CS_State\020\336\017*\223\003\n\tSCMessage\022\013"
  "\n\007SC_NONE\020\000\022\014\n\007SC_Sign\020\240\037\022\013\n\006SC_Req\020\241\037\022\013"
  "\n\006SC_Rep\020\242\037\022\016\n\tSC_Cancel\020\243\037\022\r\n\010SC_Offer\020"
  "\244\037\022\016\n\tSC_Answer\020\245\037\022\021\n\014SC_Candidate\020\246\037\022\013\n"
  "\006SC_Add\020\247\037\022\r\n\010SC_Robot\020\250\037\022\021\n\014SC_NotifyRe"
  "q\020\251\037\022\021\n\014SC_NotifyRep\020\252\037\022\024\n\017SC_NotifyAnsw"
  "er\020\253\037\022\023\n\016SC_NotifyOffer\020\254\037\022\027\n\022SC_NotifyC"
  "andidate\020\255\037\022\023\n\016SC_NotifyLeave\020\256\037\022\024\n\017SC_N"
  "otifyCancel\020\257\037\022\021\n\014SC_NotifyAdd\020\260\037\022\021\n\014SC_"
  "NotifyDel\020\261\037\022\030\n\023SC_NotifyCloseVideo\020\262\037\022\017"
  "\n\nSC_KickOff\020\263\037\022\r\n\010SC_State\020\266\037*\321\002\n\tCCMes"
  "sage\022\013\n\007CC_None\020\000\022\014\n\007CC_Text\020\300>\022\013\n\006CC_CA"
  "N\020\301>\022\013\n\006CC_IMU\020\302>\022\026\n\021CC_ASKDATACHANNEL\020\303"
  ">\022\024\n\017CC_Manipulation\020\304>\022\r\n\010CC_Radar\020\305>\022\016"
  "\n\tCC_Switch\020\306>\022\014\n\007CC_Ping\020\307>\022\022\n\rCC_Senso"
  "rStop\020\310>\022\017\n\nCC_StopACK\020\311>\022\021\n\014CC_LIDARDAT"
  "A\020\312>\022\016\n\tCC_CANMSG\020\313>\022\r\n\010CC_STATE\020\314>\022\023\n\016C"
  "C_RobotAnalog\020\321>\022\017\n\nCC_BootReq\020\315>\022\022\n\rCC_"
  "StartupReq\020\316>\022\017\n\nCC_BootRep\020\317>\022\022\n\rCC_Sta"
  "rtupRep\020\320>*F\n\tVideoDesc\022\006\n\002OK\020\000\022\010\n\004Busy\020"
  "\001\022\n\n\006Reject\020\002\022\013\n\007NoFound\020\003\022\016\n\nIsVideoing"
  "\020\004*&\n\005Gears\022\010\n\004None\020\000\022\005\n\001N\020\001\022\005\n\001D\020\002\022\005\n\001R"
  "\020\003*9\n\007Gears_D\022\n\n\006None_d\020\000\022\007\n\003D_1\020\001\022\007\n\003D_"
  "2\020\002\022\007\n\003D_3\020\003\022\007\n\003D_4\020\004*=\n\016DirectionLight\022"
  "\016\n\nRightLight\020\000\022\r\n\tLeftLight\020\001\022\014\n\010OffLig"
  "ht\020\002b\006proto3"
  ;
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_protocol_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_protocol_2eproto = {
  false, false, 4612, descriptor_table_protodef_protocol_2eproto, "protocol.proto", 
  &descriptor_table_protocol_2eproto_once, nullptr, 0, 42,
  schemas, file_default_instances, TableStruct_protocol_2eproto::offsets,
  file_level_metadata_protocol_2eproto, file_level_enum_descriptors_protocol_2eproto, file_level_service_descriptors_protocol_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_protocol_2eproto_getter() {
  return &descriptor_table_protocol_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_protocol_2eproto(&descriptor_table_protocol_2eproto);
namespace RemoNet {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Robot_RobotState_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[0];
}
bool Robot_RobotState_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr Robot_RobotState Robot::Offline;
constexpr Robot_RobotState Robot::Online;
constexpr Robot_RobotState Robot::Busy;
constexpr Robot_RobotState Robot::RobotState_MIN;
constexpr Robot_RobotState Robot::RobotState_MAX;
constexpr int Robot::RobotState_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CSMessage_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[1];
}
bool CSMessage_IsValid(int value) {
  switch (value) {
    case 0:
    case 2000:
    case 2001:
    case 2002:
    case 2003:
    case 2004:
    case 2005:
    case 2006:
    case 2007:
    case 2008:
    case 2009:
    case 2010:
    case 2011:
    case 2014:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SCMessage_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[2];
}
bool SCMessage_IsValid(int value) {
  switch (value) {
    case 0:
    case 4000:
    case 4001:
    case 4002:
    case 4003:
    case 4004:
    case 4005:
    case 4006:
    case 4007:
    case 4008:
    case 4009:
    case 4010:
    case 4011:
    case 4012:
    case 4013:
    case 4014:
    case 4015:
    case 4016:
    case 4017:
    case 4018:
    case 4019:
    case 4022:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CCMessage_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[3];
}
bool CCMessage_IsValid(int value) {
  switch (value) {
    case 0:
    case 8000:
    case 8001:
    case 8002:
    case 8003:
    case 8004:
    case 8005:
    case 8006:
    case 8007:
    case 8008:
    case 8009:
    case 8010:
    case 8011:
    case 8012:
    case 8013:
    case 8014:
    case 8015:
    case 8016:
    case 8017:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* VideoDesc_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[4];
}
bool VideoDesc_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Gears_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[5];
}
bool Gears_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Gears_D_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[6];
}
bool Gears_D_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DirectionLight_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_protocol_2eproto);
  return file_level_enum_descriptors_protocol_2eproto[7];
}
bool DirectionLight_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}


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

class CSAdd::_Internal {
 public:
};

CSAdd::CSAdd(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CSAdd)
}
CSAdd::CSAdd(const CSAdd& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  serial_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    serial_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_serial().empty()) {
    serial_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_serial(), 
      GetArenaForAllocation());
  }
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(), 
      GetArenaForAllocation());
  }
  type_ = from.type_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.CSAdd)
}

inline void CSAdd::SharedCtor() {
serial_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  serial_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
type_ = 0;
}

CSAdd::~CSAdd() {
  // @@protoc_insertion_point(destructor:RemoNet.CSAdd)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CSAdd::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  serial_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void CSAdd::ArenaDtor(void* object) {
  CSAdd* _this = reinterpret_cast< CSAdd* >(object);
  (void)_this;
}
void CSAdd::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CSAdd::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CSAdd::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CSAdd)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  serial_.ClearToEmpty();
  name_.ClearToEmpty();
  type_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CSAdd::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string serial = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_serial();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.CSAdd.serial"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.CSAdd.name"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CSAdd::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CSAdd)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string serial = 1;
  if (!this->_internal_serial().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_serial().data(), static_cast<int>(this->_internal_serial().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.CSAdd.serial");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_serial(), target);
  }

  // int32 type = 2;
  if (this->_internal_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_type(), target);
  }

  // string name = 3;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.CSAdd.name");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CSAdd)
  return target;
}

size_t CSAdd::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CSAdd)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string serial = 1;
  if (!this->_internal_serial().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_serial());
  }

  // string name = 3;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // int32 type = 2;
  if (this->_internal_type() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CSAdd::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CSAdd::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CSAdd::GetClassData() const { return &_class_data_; }

void CSAdd::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CSAdd *>(to)->MergeFrom(
      static_cast<const CSAdd &>(from));
}


void CSAdd::MergeFrom(const CSAdd& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CSAdd)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_serial().empty()) {
    _internal_set_serial(from._internal_serial());
  }
  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (from._internal_type() != 0) {
    _internal_set_type(from._internal_type());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CSAdd::CopyFrom(const CSAdd& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CSAdd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CSAdd::InternalSwap(CSAdd* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &serial_, lhs_arena,
      &other->serial_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  swap(type_, other->type_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CSAdd::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[0]);
}

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

class SCAdd::_Internal {
 public:
};

SCAdd::SCAdd(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCAdd)
}
SCAdd::SCAdd(const SCAdd& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(), 
      GetArenaForAllocation());
  }
  ::memcpy(&ret_, &from.ret_,
    static_cast<size_t>(reinterpret_cast<char*>(&cid_) -
    reinterpret_cast<char*>(&ret_)) + sizeof(cid_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCAdd)
}

inline void SCAdd::SharedCtor() {
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&ret_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&cid_) -
    reinterpret_cast<char*>(&ret_)) + sizeof(cid_));
}

SCAdd::~SCAdd() {
  // @@protoc_insertion_point(destructor:RemoNet.SCAdd)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SCAdd::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SCAdd::ArenaDtor(void* object) {
  SCAdd* _this = reinterpret_cast< SCAdd* >(object);
  (void)_this;
}
void SCAdd::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SCAdd::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SCAdd::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.SCAdd)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  name_.ClearToEmpty();
  ::memset(&ret_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&cid_) -
      reinterpret_cast<char*>(&ret_)) + sizeof(cid_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SCAdd::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool ret = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ret_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 uid = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 cid = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          cid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.SCAdd.name"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SCAdd::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.SCAdd)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool ret = 1;
  if (this->_internal_ret() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_ret(), target);
  }

  // int32 uid = 2;
  if (this->_internal_uid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_uid(), target);
  }

  // int32 cid = 3;
  if (this->_internal_cid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_cid(), target);
  }

  // string name = 4;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.SCAdd.name");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.SCAdd)
  return target;
}

size_t SCAdd::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.SCAdd)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name = 4;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

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

  // int32 uid = 2;
  if (this->_internal_uid() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_uid());
  }

  // int32 cid = 3;
  if (this->_internal_cid() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_cid());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCAdd::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SCAdd::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCAdd::GetClassData() const { return &_class_data_; }

void SCAdd::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SCAdd *>(to)->MergeFrom(
      static_cast<const SCAdd &>(from));
}


void SCAdd::MergeFrom(const SCAdd& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.SCAdd)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (from._internal_ret() != 0) {
    _internal_set_ret(from._internal_ret());
  }
  if (from._internal_uid() != 0) {
    _internal_set_uid(from._internal_uid());
  }
  if (from._internal_cid() != 0) {
    _internal_set_cid(from._internal_cid());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SCAdd::CopyFrom(const SCAdd& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.SCAdd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SCAdd::InternalSwap(SCAdd* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SCAdd, cid_)
      + sizeof(SCAdd::cid_)
      - PROTOBUF_FIELD_OFFSET(SCAdd, ret_)>(
          reinterpret_cast<char*>(&ret_),
          reinterpret_cast<char*>(&other->ret_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SCAdd::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[1]);
}

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

class SCKickOff::_Internal {
 public:
};

SCKickOff::SCKickOff(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCKickOff)
}
SCKickOff::SCKickOff(const SCKickOff& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCKickOff)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCKickOff::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCKickOff::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata SCKickOff::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[2]);
}

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

class Robot::_Internal {
 public:
};

Robot::Robot(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.Robot)
}
Robot::Robot(const Robot& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(), 
      GetArenaForAllocation());
  }
  ::memcpy(&rid_, &from.rid_,
    static_cast<size_t>(reinterpret_cast<char*>(&state_) -
    reinterpret_cast<char*>(&rid_)) + sizeof(state_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.Robot)
}

inline void Robot::SharedCtor() {
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&rid_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&state_) -
    reinterpret_cast<char*>(&rid_)) + sizeof(state_));
}

Robot::~Robot() {
  // @@protoc_insertion_point(destructor:RemoNet.Robot)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Robot::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Robot::ArenaDtor(void* object) {
  Robot* _this = reinterpret_cast< Robot* >(object);
  (void)_this;
}
void Robot::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Robot::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Robot::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.Robot)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  name_.ClearToEmpty();
  ::memset(&rid_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&state_) -
      reinterpret_cast<char*>(&rid_)) + sizeof(state_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Robot::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 rid = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          rid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Robot.name"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .RemoNet.Robot.RobotState state = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_state(static_cast<::RemoNet::Robot_RobotState>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Robot::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.Robot)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 rid = 1;
  if (this->_internal_rid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_rid(), target);
  }

  // string name = 2;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Robot.name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name(), target);
  }

  // int32 type = 3;
  if (this->_internal_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_type(), target);
  }

  // .RemoNet.Robot.RobotState state = 4;
  if (this->_internal_state() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      4, this->_internal_state(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.Robot)
  return target;
}

size_t Robot::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.Robot)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  // int32 rid = 1;
  if (this->_internal_rid() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_rid());
  }

  // int32 type = 3;
  if (this->_internal_type() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_type());
  }

  // .RemoNet.Robot.RobotState state = 4;
  if (this->_internal_state() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_state());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Robot::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Robot::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Robot::GetClassData() const { return &_class_data_; }

void Robot::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Robot *>(to)->MergeFrom(
      static_cast<const Robot &>(from));
}


void Robot::MergeFrom(const Robot& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.Robot)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (from._internal_rid() != 0) {
    _internal_set_rid(from._internal_rid());
  }
  if (from._internal_type() != 0) {
    _internal_set_type(from._internal_type());
  }
  if (from._internal_state() != 0) {
    _internal_set_state(from._internal_state());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Robot::CopyFrom(const Robot& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.Robot)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Robot::InternalSwap(Robot* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Robot, state_)
      + sizeof(Robot::state_)
      - PROTOBUF_FIELD_OFFSET(Robot, rid_)>(
          reinterpret_cast<char*>(&rid_),
          reinterpret_cast<char*>(&other->rid_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Robot::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[3]);
}

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

class CSRobot::_Internal {
 public:
};

CSRobot::CSRobot(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:RemoNet.CSRobot)
}
CSRobot::CSRobot(const CSRobot& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.CSRobot)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CSRobot::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CSRobot::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata CSRobot::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[4]);
}

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

class SCRobot::_Internal {
 public:
};

SCRobot::SCRobot(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  robot_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCRobot)
}
SCRobot::SCRobot(const SCRobot& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      robot_(from.robot_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCRobot)
}

inline void SCRobot::SharedCtor() {
}

SCRobot::~SCRobot() {
  // @@protoc_insertion_point(destructor:RemoNet.SCRobot)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SCRobot::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SCRobot::ArenaDtor(void* object) {
  SCRobot* _this = reinterpret_cast< SCRobot* >(object);
  (void)_this;
}
void SCRobot::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SCRobot::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SCRobot::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.SCRobot)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  robot_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SCRobot::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .RemoNet.Robot robot = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_robot(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SCRobot::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.SCRobot)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .RemoNet.Robot robot = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_robot_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_robot(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.SCRobot)
  return target;
}

size_t SCRobot::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.SCRobot)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .RemoNet.Robot robot = 1;
  total_size += 1UL * this->_internal_robot_size();
  for (const auto& msg : this->robot_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCRobot::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SCRobot::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCRobot::GetClassData() const { return &_class_data_; }

void SCRobot::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SCRobot *>(to)->MergeFrom(
      static_cast<const SCRobot &>(from));
}


void SCRobot::MergeFrom(const SCRobot& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.SCRobot)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  robot_.MergeFrom(from.robot_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SCRobot::CopyFrom(const SCRobot& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.SCRobot)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SCRobot::InternalSwap(SCRobot* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  robot_.InternalSwap(&other->robot_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SCRobot::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[5]);
}

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

class CSSign::_Internal {
 public:
};

CSSign::CSSign(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CSSign)
}
CSSign::CSSign(const CSSign& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  account_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    account_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_account().empty()) {
    account_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_account(), 
      GetArenaForAllocation());
  }
  password_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_password().empty()) {
    password_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_password(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:RemoNet.CSSign)
}

inline void CSSign::SharedCtor() {
account_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  account_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
password_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CSSign::~CSSign() {
  // @@protoc_insertion_point(destructor:RemoNet.CSSign)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CSSign::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  account_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  password_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void CSSign::ArenaDtor(void* object) {
  CSSign* _this = reinterpret_cast< CSSign* >(object);
  (void)_this;
}
void CSSign::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CSSign::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CSSign::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CSSign)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  account_.ClearToEmpty();
  password_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CSSign::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string account = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_account();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.CSSign.account"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string password = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_password();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.CSSign.password"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CSSign::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CSSign)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string account = 1;
  if (!this->_internal_account().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_account().data(), static_cast<int>(this->_internal_account().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.CSSign.account");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_account(), target);
  }

  // string password = 2;
  if (!this->_internal_password().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_password().data(), static_cast<int>(this->_internal_password().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.CSSign.password");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_password(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CSSign)
  return target;
}

size_t CSSign::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CSSign)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string account = 1;
  if (!this->_internal_account().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_account());
  }

  // string password = 2;
  if (!this->_internal_password().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_password());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CSSign::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CSSign::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CSSign::GetClassData() const { return &_class_data_; }

void CSSign::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CSSign *>(to)->MergeFrom(
      static_cast<const CSSign &>(from));
}


void CSSign::MergeFrom(const CSSign& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CSSign)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_account().empty()) {
    _internal_set_account(from._internal_account());
  }
  if (!from._internal_password().empty()) {
    _internal_set_password(from._internal_password());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CSSign::CopyFrom(const CSSign& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CSSign)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CSSign::InternalSwap(CSSign* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &account_, lhs_arena,
      &other->account_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &password_, lhs_arena,
      &other->password_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CSSign::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[6]);
}

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

class SCSign::_Internal {
 public:
};

SCSign::SCSign(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCSign)
}
SCSign::SCSign(const SCSign& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(), 
      GetArenaForAllocation());
  }
  ::memcpy(&ret_, &from.ret_,
    static_cast<size_t>(reinterpret_cast<char*>(&cid_) -
    reinterpret_cast<char*>(&ret_)) + sizeof(cid_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCSign)
}

inline void SCSign::SharedCtor() {
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&ret_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&cid_) -
    reinterpret_cast<char*>(&ret_)) + sizeof(cid_));
}

SCSign::~SCSign() {
  // @@protoc_insertion_point(destructor:RemoNet.SCSign)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SCSign::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SCSign::ArenaDtor(void* object) {
  SCSign* _this = reinterpret_cast< SCSign* >(object);
  (void)_this;
}
void SCSign::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SCSign::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SCSign::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.SCSign)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  name_.ClearToEmpty();
  ::memset(&ret_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&cid_) -
      reinterpret_cast<char*>(&ret_)) + sizeof(cid_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SCSign::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool ret = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ret_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 uid = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 cid = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          cid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.SCSign.name"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SCSign::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.SCSign)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool ret = 1;
  if (this->_internal_ret() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_ret(), target);
  }

  // int32 uid = 2;
  if (this->_internal_uid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_uid(), target);
  }

  // int32 cid = 3;
  if (this->_internal_cid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_cid(), target);
  }

  // string name = 4;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.SCSign.name");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.SCSign)
  return target;
}

size_t SCSign::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.SCSign)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name = 4;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

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

  // int32 uid = 2;
  if (this->_internal_uid() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_uid());
  }

  // int32 cid = 3;
  if (this->_internal_cid() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_cid());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCSign::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SCSign::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCSign::GetClassData() const { return &_class_data_; }

void SCSign::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SCSign *>(to)->MergeFrom(
      static_cast<const SCSign &>(from));
}


void SCSign::MergeFrom(const SCSign& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.SCSign)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (from._internal_ret() != 0) {
    _internal_set_ret(from._internal_ret());
  }
  if (from._internal_uid() != 0) {
    _internal_set_uid(from._internal_uid());
  }
  if (from._internal_cid() != 0) {
    _internal_set_cid(from._internal_cid());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SCSign::CopyFrom(const SCSign& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.SCSign)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SCSign::InternalSwap(SCSign* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SCSign, cid_)
      + sizeof(SCSign::cid_)
      - PROTOBUF_FIELD_OFFSET(SCSign, ret_)>(
          reinterpret_cast<char*>(&ret_),
          reinterpret_cast<char*>(&other->ret_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SCSign::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[7]);
}

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

class CSReq::_Internal {
 public:
};

CSReq::CSReq(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CSReq)
}
CSReq::CSReq(const CSReq& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&peer_, &from.peer_,
    static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.CSReq)
}

inline void CSReq::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&peer_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
}

CSReq::~CSReq() {
  // @@protoc_insertion_point(destructor:RemoNet.CSReq)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CSReq::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CSReq::ArenaDtor(void* object) {
  CSReq* _this = reinterpret_cast< CSReq* >(object);
  (void)_this;
}
void CSReq::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CSReq::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CSReq::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CSReq)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&peer_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&egotype_) -
      reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CSReq::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 peer = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 index = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CSReq::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CSReq)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_peer(), target);
  }

  // int32 index = 2;
  if (this->_internal_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_index(), target);
  }

  // int32 egotype = 3;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_egotype(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CSReq)
  return target;
}

size_t CSReq::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CSReq)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  // int32 index = 2;
  if (this->_internal_index() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
  }

  // int32 egotype = 3;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CSReq::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CSReq::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CSReq::GetClassData() const { return &_class_data_; }

void CSReq::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CSReq *>(to)->MergeFrom(
      static_cast<const CSReq &>(from));
}


void CSReq::MergeFrom(const CSReq& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CSReq)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  if (from._internal_index() != 0) {
    _internal_set_index(from._internal_index());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CSReq::CopyFrom(const CSReq& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CSReq)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CSReq::InternalSwap(CSReq* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CSReq, egotype_)
      + sizeof(CSReq::egotype_)
      - PROTOBUF_FIELD_OFFSET(CSReq, peer_)>(
          reinterpret_cast<char*>(&peer_),
          reinterpret_cast<char*>(&other->peer_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CSReq::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[8]);
}

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

class SCReq::_Internal {
 public:
};

SCReq::SCReq(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCReq)
}
SCReq::SCReq(const SCReq& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&desc_, &from.desc_,
    static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&desc_)) + sizeof(egotype_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCReq)
}

inline void SCReq::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&desc_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&desc_)) + sizeof(egotype_));
}

SCReq::~SCReq() {
  // @@protoc_insertion_point(destructor:RemoNet.SCReq)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SCReq::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SCReq::ArenaDtor(void* object) {
  SCReq* _this = reinterpret_cast< SCReq* >(object);
  (void)_this;
}
void SCReq::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SCReq::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SCReq::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.SCReq)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&desc_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&egotype_) -
      reinterpret_cast<char*>(&desc_)) + sizeof(egotype_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SCReq::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .RemoNet.VideoDesc desc = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_desc(static_cast<::RemoNet::VideoDesc>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 peer = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SCReq::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.SCReq)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .RemoNet.VideoDesc desc = 1;
  if (this->_internal_desc() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_desc(), target);
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_peer(), target);
  }

  // int32 egotype = 3;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_egotype(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.SCReq)
  return target;
}

size_t SCReq::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.SCReq)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .RemoNet.VideoDesc desc = 1;
  if (this->_internal_desc() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_desc());
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  // int32 egotype = 3;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCReq::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SCReq::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCReq::GetClassData() const { return &_class_data_; }

void SCReq::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SCReq *>(to)->MergeFrom(
      static_cast<const SCReq &>(from));
}


void SCReq::MergeFrom(const SCReq& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.SCReq)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_desc() != 0) {
    _internal_set_desc(from._internal_desc());
  }
  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SCReq::CopyFrom(const SCReq& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.SCReq)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SCReq::InternalSwap(SCReq* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SCReq, egotype_)
      + sizeof(SCReq::egotype_)
      - PROTOBUF_FIELD_OFFSET(SCReq, desc_)>(
          reinterpret_cast<char*>(&desc_),
          reinterpret_cast<char*>(&other->desc_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SCReq::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[9]);
}

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

class CSRep::_Internal {
 public:
};

CSRep::CSRep(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CSRep)
}
CSRep::CSRep(const CSRep& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&desc_, &from.desc_,
    static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&desc_)) + sizeof(egotype_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.CSRep)
}

inline void CSRep::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&desc_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&desc_)) + sizeof(egotype_));
}

CSRep::~CSRep() {
  // @@protoc_insertion_point(destructor:RemoNet.CSRep)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CSRep::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CSRep::ArenaDtor(void* object) {
  CSRep* _this = reinterpret_cast< CSRep* >(object);
  (void)_this;
}
void CSRep::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CSRep::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CSRep::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CSRep)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&desc_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&egotype_) -
      reinterpret_cast<char*>(&desc_)) + sizeof(egotype_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CSRep::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .RemoNet.VideoDesc desc = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_desc(static_cast<::RemoNet::VideoDesc>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 peer = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 index = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CSRep::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CSRep)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .RemoNet.VideoDesc desc = 1;
  if (this->_internal_desc() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_desc(), target);
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_peer(), target);
  }

  // int32 index = 3;
  if (this->_internal_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_index(), target);
  }

  // int32 egotype = 4;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_egotype(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CSRep)
  return target;
}

size_t CSRep::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CSRep)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .RemoNet.VideoDesc desc = 1;
  if (this->_internal_desc() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_desc());
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  // int32 index = 3;
  if (this->_internal_index() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
  }

  // int32 egotype = 4;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CSRep::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CSRep::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CSRep::GetClassData() const { return &_class_data_; }

void CSRep::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CSRep *>(to)->MergeFrom(
      static_cast<const CSRep &>(from));
}


void CSRep::MergeFrom(const CSRep& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CSRep)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_desc() != 0) {
    _internal_set_desc(from._internal_desc());
  }
  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  if (from._internal_index() != 0) {
    _internal_set_index(from._internal_index());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CSRep::CopyFrom(const CSRep& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CSRep)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CSRep::InternalSwap(CSRep* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CSRep, egotype_)
      + sizeof(CSRep::egotype_)
      - PROTOBUF_FIELD_OFFSET(CSRep, desc_)>(
          reinterpret_cast<char*>(&desc_),
          reinterpret_cast<char*>(&other->desc_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CSRep::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[10]);
}

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

class SCRep::_Internal {
 public:
};

SCRep::SCRep(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCRep)
}
SCRep::SCRep(const SCRep& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&desc_, &from.desc_,
    static_cast<size_t>(reinterpret_cast<char*>(&peer_) -
    reinterpret_cast<char*>(&desc_)) + sizeof(peer_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCRep)
}

inline void SCRep::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&desc_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&peer_) -
    reinterpret_cast<char*>(&desc_)) + sizeof(peer_));
}

SCRep::~SCRep() {
  // @@protoc_insertion_point(destructor:RemoNet.SCRep)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SCRep::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SCRep::ArenaDtor(void* object) {
  SCRep* _this = reinterpret_cast< SCRep* >(object);
  (void)_this;
}
void SCRep::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SCRep::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SCRep::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.SCRep)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&desc_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&peer_) -
      reinterpret_cast<char*>(&desc_)) + sizeof(peer_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SCRep::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .RemoNet.VideoDesc desc = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_desc(static_cast<::RemoNet::VideoDesc>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 index = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 peer = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SCRep::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.SCRep)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .RemoNet.VideoDesc desc = 1;
  if (this->_internal_desc() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_desc(), target);
  }

  // int32 index = 2;
  if (this->_internal_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_index(), target);
  }

  // int32 egotype = 3;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_egotype(), target);
  }

  // int32 peer = 4;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_peer(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.SCRep)
  return target;
}

size_t SCRep::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.SCRep)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .RemoNet.VideoDesc desc = 1;
  if (this->_internal_desc() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_desc());
  }

  // int32 index = 2;
  if (this->_internal_index() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
  }

  // int32 egotype = 3;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  // int32 peer = 4;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCRep::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SCRep::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCRep::GetClassData() const { return &_class_data_; }

void SCRep::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SCRep *>(to)->MergeFrom(
      static_cast<const SCRep &>(from));
}


void SCRep::MergeFrom(const SCRep& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.SCRep)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_desc() != 0) {
    _internal_set_desc(from._internal_desc());
  }
  if (from._internal_index() != 0) {
    _internal_set_index(from._internal_index());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SCRep::CopyFrom(const SCRep& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.SCRep)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SCRep::InternalSwap(SCRep* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SCRep, peer_)
      + sizeof(SCRep::peer_)
      - PROTOBUF_FIELD_OFFSET(SCRep, desc_)>(
          reinterpret_cast<char*>(&desc_),
          reinterpret_cast<char*>(&other->desc_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SCRep::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[11]);
}

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

class Offer::_Internal {
 public:
};

Offer::Offer(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.Offer)
}
Offer::Offer(const Offer& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_type().empty()) {
    type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_type(), 
      GetArenaForAllocation());
  }
  sdp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    sdp_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_sdp().empty()) {
    sdp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdp(), 
      GetArenaForAllocation());
  }
  ::memcpy(&index_, &from.index_,
    static_cast<size_t>(reinterpret_cast<char*>(&peer_) -
    reinterpret_cast<char*>(&index_)) + sizeof(peer_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.Offer)
}

inline void Offer::SharedCtor() {
type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sdp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  sdp_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&peer_) -
    reinterpret_cast<char*>(&index_)) + sizeof(peer_));
}

Offer::~Offer() {
  // @@protoc_insertion_point(destructor:RemoNet.Offer)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Offer::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdp_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Offer::ArenaDtor(void* object) {
  Offer* _this = reinterpret_cast< Offer* >(object);
  (void)_this;
}
void Offer::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Offer::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Offer::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.Offer)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  type_.ClearToEmpty();
  sdp_.ClearToEmpty();
  ::memset(&index_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&peer_) -
      reinterpret_cast<char*>(&index_)) + sizeof(peer_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Offer::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 index = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 peer = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_type();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Offer.type"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string sdp = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_sdp();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Offer.sdp"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Offer::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.Offer)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 index = 1;
  if (this->_internal_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_peer(), target);
  }

  // string type = 3;
  if (!this->_internal_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_type().data(), static_cast<int>(this->_internal_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Offer.type");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_type(), target);
  }

  // string sdp = 4;
  if (!this->_internal_sdp().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sdp().data(), static_cast<int>(this->_internal_sdp().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Offer.sdp");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_sdp(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.Offer)
  return target;
}

size_t Offer::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.Offer)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string type = 3;
  if (!this->_internal_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_type());
  }

  // string sdp = 4;
  if (!this->_internal_sdp().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sdp());
  }

  // int32 index = 1;
  if (this->_internal_index() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Offer::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Offer::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Offer::GetClassData() const { return &_class_data_; }

void Offer::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Offer *>(to)->MergeFrom(
      static_cast<const Offer &>(from));
}


void Offer::MergeFrom(const Offer& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.Offer)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_type().empty()) {
    _internal_set_type(from._internal_type());
  }
  if (!from._internal_sdp().empty()) {
    _internal_set_sdp(from._internal_sdp());
  }
  if (from._internal_index() != 0) {
    _internal_set_index(from._internal_index());
  }
  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Offer::CopyFrom(const Offer& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.Offer)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Offer::InternalSwap(Offer* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &type_, lhs_arena,
      &other->type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &sdp_, lhs_arena,
      &other->sdp_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Offer, peer_)
      + sizeof(Offer::peer_)
      - PROTOBUF_FIELD_OFFSET(Offer, index_)>(
          reinterpret_cast<char*>(&index_),
          reinterpret_cast<char*>(&other->index_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Offer::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[12]);
}

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

class Answer::_Internal {
 public:
};

Answer::Answer(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.Answer)
}
Answer::Answer(const Answer& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_type().empty()) {
    type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_type(), 
      GetArenaForAllocation());
  }
  sdp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    sdp_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_sdp().empty()) {
    sdp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdp(), 
      GetArenaForAllocation());
  }
  ::memcpy(&index_, &from.index_,
    static_cast<size_t>(reinterpret_cast<char*>(&peer_) -
    reinterpret_cast<char*>(&index_)) + sizeof(peer_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.Answer)
}

inline void Answer::SharedCtor() {
type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sdp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  sdp_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&peer_) -
    reinterpret_cast<char*>(&index_)) + sizeof(peer_));
}

Answer::~Answer() {
  // @@protoc_insertion_point(destructor:RemoNet.Answer)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Answer::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdp_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Answer::ArenaDtor(void* object) {
  Answer* _this = reinterpret_cast< Answer* >(object);
  (void)_this;
}
void Answer::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Answer::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Answer::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.Answer)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  type_.ClearToEmpty();
  sdp_.ClearToEmpty();
  ::memset(&index_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&peer_) -
      reinterpret_cast<char*>(&index_)) + sizeof(peer_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Answer::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 index = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 peer = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_type();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Answer.type"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string sdp = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_sdp();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Answer.sdp"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Answer::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.Answer)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 index = 1;
  if (this->_internal_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_peer(), target);
  }

  // string type = 3;
  if (!this->_internal_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_type().data(), static_cast<int>(this->_internal_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Answer.type");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_type(), target);
  }

  // string sdp = 4;
  if (!this->_internal_sdp().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sdp().data(), static_cast<int>(this->_internal_sdp().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Answer.sdp");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_sdp(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.Answer)
  return target;
}

size_t Answer::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.Answer)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string type = 3;
  if (!this->_internal_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_type());
  }

  // string sdp = 4;
  if (!this->_internal_sdp().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sdp());
  }

  // int32 index = 1;
  if (this->_internal_index() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Answer::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Answer::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Answer::GetClassData() const { return &_class_data_; }

void Answer::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Answer *>(to)->MergeFrom(
      static_cast<const Answer &>(from));
}


void Answer::MergeFrom(const Answer& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.Answer)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_type().empty()) {
    _internal_set_type(from._internal_type());
  }
  if (!from._internal_sdp().empty()) {
    _internal_set_sdp(from._internal_sdp());
  }
  if (from._internal_index() != 0) {
    _internal_set_index(from._internal_index());
  }
  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Answer::CopyFrom(const Answer& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.Answer)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Answer::InternalSwap(Answer* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &type_, lhs_arena,
      &other->type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &sdp_, lhs_arena,
      &other->sdp_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Answer, peer_)
      + sizeof(Answer::peer_)
      - PROTOBUF_FIELD_OFFSET(Answer, index_)>(
          reinterpret_cast<char*>(&index_),
          reinterpret_cast<char*>(&other->index_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Answer::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[13]);
}

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

class Candidate::_Internal {
 public:
};

Candidate::Candidate(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.Candidate)
}
Candidate::Candidate(const Candidate& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_type().empty()) {
    type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_type(), 
      GetArenaForAllocation());
  }
  candidate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    candidate_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_candidate().empty()) {
    candidate_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_candidate(), 
      GetArenaForAllocation());
  }
  sdpmid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    sdpmid_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_sdpmid().empty()) {
    sdpmid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdpmid(), 
      GetArenaForAllocation());
  }
  ::memcpy(&index_, &from.index_,
    static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&index_)) + sizeof(egotype_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.Candidate)
}

inline void Candidate::SharedCtor() {
type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
candidate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  candidate_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sdpmid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  sdpmid_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&index_)) + sizeof(egotype_));
}

Candidate::~Candidate() {
  // @@protoc_insertion_point(destructor:RemoNet.Candidate)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Candidate::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  candidate_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdpmid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Candidate::ArenaDtor(void* object) {
  Candidate* _this = reinterpret_cast< Candidate* >(object);
  (void)_this;
}
void Candidate::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Candidate::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Candidate::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.Candidate)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  type_.ClearToEmpty();
  candidate_.ClearToEmpty();
  sdpmid_.ClearToEmpty();
  ::memset(&index_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&egotype_) -
      reinterpret_cast<char*>(&index_)) + sizeof(egotype_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Candidate::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 index = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 peer = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_type();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Candidate.type"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string candidate = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_candidate();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Candidate.candidate"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sdpMLineIndex = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          sdpmlineindex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string sdpMid = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_sdpmid();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.Candidate.sdpMid"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Candidate::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.Candidate)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 index = 1;
  if (this->_internal_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_peer(), target);
  }

  // string type = 3;
  if (!this->_internal_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_type().data(), static_cast<int>(this->_internal_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Candidate.type");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_type(), target);
  }

  // string candidate = 4;
  if (!this->_internal_candidate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_candidate().data(), static_cast<int>(this->_internal_candidate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Candidate.candidate");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_candidate(), target);
  }

  // int32 sdpMLineIndex = 5;
  if (this->_internal_sdpmlineindex() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_sdpmlineindex(), target);
  }

  // string sdpMid = 6;
  if (!this->_internal_sdpmid().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sdpmid().data(), static_cast<int>(this->_internal_sdpmid().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.Candidate.sdpMid");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_sdpmid(), target);
  }

  // int32 egotype = 7;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_egotype(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.Candidate)
  return target;
}

size_t Candidate::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.Candidate)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string type = 3;
  if (!this->_internal_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_type());
  }

  // string candidate = 4;
  if (!this->_internal_candidate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_candidate());
  }

  // string sdpMid = 6;
  if (!this->_internal_sdpmid().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sdpmid());
  }

  // int32 index = 1;
  if (this->_internal_index() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
  }

  // int32 peer = 2;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  // int32 sdpMLineIndex = 5;
  if (this->_internal_sdpmlineindex() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_sdpmlineindex());
  }

  // int32 egotype = 7;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Candidate::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Candidate::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Candidate::GetClassData() const { return &_class_data_; }

void Candidate::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Candidate *>(to)->MergeFrom(
      static_cast<const Candidate &>(from));
}


void Candidate::MergeFrom(const Candidate& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.Candidate)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_type().empty()) {
    _internal_set_type(from._internal_type());
  }
  if (!from._internal_candidate().empty()) {
    _internal_set_candidate(from._internal_candidate());
  }
  if (!from._internal_sdpmid().empty()) {
    _internal_set_sdpmid(from._internal_sdpmid());
  }
  if (from._internal_index() != 0) {
    _internal_set_index(from._internal_index());
  }
  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  if (from._internal_sdpmlineindex() != 0) {
    _internal_set_sdpmlineindex(from._internal_sdpmlineindex());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Candidate::CopyFrom(const Candidate& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.Candidate)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Candidate::InternalSwap(Candidate* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &type_, lhs_arena,
      &other->type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &candidate_, lhs_arena,
      &other->candidate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &sdpmid_, lhs_arena,
      &other->sdpmid_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Candidate, egotype_)
      + sizeof(Candidate::egotype_)
      - PROTOBUF_FIELD_OFFSET(Candidate, index_)>(
          reinterpret_cast<char*>(&index_),
          reinterpret_cast<char*>(&other->index_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Candidate::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[14]);
}

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

class Leave::_Internal {
 public:
};

Leave::Leave(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.Leave)
}
Leave::Leave(const Leave& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&peer_, &from.peer_,
    static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.Leave)
}

inline void Leave::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&peer_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
}

Leave::~Leave() {
  // @@protoc_insertion_point(destructor:RemoNet.Leave)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Leave::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void Leave::ArenaDtor(void* object) {
  Leave* _this = reinterpret_cast< Leave* >(object);
  (void)_this;
}
void Leave::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Leave::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Leave::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.Leave)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&peer_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&egotype_) -
      reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Leave::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 peer = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Leave::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.Leave)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_peer(), target);
  }

  // int32 egotype = 2;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_egotype(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.Leave)
  return target;
}

size_t Leave::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.Leave)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  // int32 egotype = 2;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Leave::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Leave::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Leave::GetClassData() const { return &_class_data_; }

void Leave::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Leave *>(to)->MergeFrom(
      static_cast<const Leave &>(from));
}


void Leave::MergeFrom(const Leave& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.Leave)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Leave::CopyFrom(const Leave& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.Leave)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Leave::InternalSwap(Leave* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Leave, egotype_)
      + sizeof(Leave::egotype_)
      - PROTOBUF_FIELD_OFFSET(Leave, peer_)>(
          reinterpret_cast<char*>(&peer_),
          reinterpret_cast<char*>(&other->peer_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Leave::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[15]);
}

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

class Close::_Internal {
 public:
};

Close::Close(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.Close)
}
Close::Close(const Close& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&peer_, &from.peer_,
    static_cast<size_t>(reinterpret_cast<char*>(&index_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(index_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.Close)
}

inline void Close::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&peer_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&index_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(index_));
}

Close::~Close() {
  // @@protoc_insertion_point(destructor:RemoNet.Close)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Close::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void Close::ArenaDtor(void* object) {
  Close* _this = reinterpret_cast< Close* >(object);
  (void)_this;
}
void Close::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Close::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Close::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.Close)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&peer_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&index_) -
      reinterpret_cast<char*>(&peer_)) + sizeof(index_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Close::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 peer = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 index = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Close::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.Close)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_peer(), target);
  }

  // int32 egotype = 2;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_egotype(), target);
  }

  // int32 index = 3;
  if (this->_internal_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_index(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.Close)
  return target;
}

size_t Close::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.Close)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  // int32 egotype = 2;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  // int32 index = 3;
  if (this->_internal_index() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Close::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Close::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Close::GetClassData() const { return &_class_data_; }

void Close::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Close *>(to)->MergeFrom(
      static_cast<const Close &>(from));
}


void Close::MergeFrom(const Close& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.Close)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  if (from._internal_index() != 0) {
    _internal_set_index(from._internal_index());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Close::CopyFrom(const Close& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.Close)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Close::InternalSwap(Close* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Close, index_)
      + sizeof(Close::index_)
      - PROTOBUF_FIELD_OFFSET(Close, peer_)>(
          reinterpret_cast<char*>(&peer_),
          reinterpret_cast<char*>(&other->peer_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Close::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[16]);
}

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

class TestTextReq::_Internal {
 public:
};

TestTextReq::TestTextReq(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.TestTextReq)
}
TestTextReq::TestTextReq(const TestTextReq& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  text_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    text_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_text().empty()) {
    text_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_text(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:RemoNet.TestTextReq)
}

inline void TestTextReq::SharedCtor() {
text_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  text_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

TestTextReq::~TestTextReq() {
  // @@protoc_insertion_point(destructor:RemoNet.TestTextReq)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void TestTextReq::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  text_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void TestTextReq::ArenaDtor(void* object) {
  TestTextReq* _this = reinterpret_cast< TestTextReq* >(object);
  (void)_this;
}
void TestTextReq::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TestTextReq::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void TestTextReq::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.TestTextReq)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  text_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TestTextReq::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string text = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_text();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.TestTextReq.text"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* TestTextReq::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.TestTextReq)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string text = 1;
  if (!this->_internal_text().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_text().data(), static_cast<int>(this->_internal_text().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.TestTextReq.text");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_text(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.TestTextReq)
  return target;
}

size_t TestTextReq::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.TestTextReq)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string text = 1;
  if (!this->_internal_text().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_text());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData TestTextReq::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    TestTextReq::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*TestTextReq::GetClassData() const { return &_class_data_; }

void TestTextReq::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<TestTextReq *>(to)->MergeFrom(
      static_cast<const TestTextReq &>(from));
}


void TestTextReq::MergeFrom(const TestTextReq& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.TestTextReq)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_text().empty()) {
    _internal_set_text(from._internal_text());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void TestTextReq::CopyFrom(const TestTextReq& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.TestTextReq)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void TestTextReq::InternalSwap(TestTextReq* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &text_, lhs_arena,
      &other->text_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata TestTextReq::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[17]);
}

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

class CanMessage::_Internal {
 public:
};

CanMessage::CanMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CanMessage)
}
CanMessage::CanMessage(const CanMessage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_data().empty()) {
    data_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_data(), 
      GetArenaForAllocation());
  }
  ::memcpy(&head_, &from.head_,
    static_cast<size_t>(reinterpret_cast<char*>(&canid_) -
    reinterpret_cast<char*>(&head_)) + sizeof(canid_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.CanMessage)
}

inline void CanMessage::SharedCtor() {
data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&head_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&canid_) -
    reinterpret_cast<char*>(&head_)) + sizeof(canid_));
}

CanMessage::~CanMessage() {
  // @@protoc_insertion_point(destructor:RemoNet.CanMessage)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CanMessage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void CanMessage::ArenaDtor(void* object) {
  CanMessage* _this = reinterpret_cast< CanMessage* >(object);
  (void)_this;
}
void CanMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CanMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CanMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CanMessage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  data_.ClearToEmpty();
  ::memset(&head_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&canid_) -
      reinterpret_cast<char*>(&head_)) + sizeof(canid_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CanMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 canid = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          canid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bytes data = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CanMessage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CanMessage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 head = 1;
  if (this->_internal_head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_head(), target);
  }

  // int32 canid = 2;
  if (this->_internal_canid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_canid(), target);
  }

  // bytes data = 3;
  if (!this->_internal_data().empty()) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_data(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CanMessage)
  return target;
}

size_t CanMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CanMessage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bytes data = 3;
  if (!this->_internal_data().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_data());
  }

  // int32 head = 1;
  if (this->_internal_head() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_head());
  }

  // int32 canid = 2;
  if (this->_internal_canid() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_canid());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CanMessage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CanMessage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CanMessage::GetClassData() const { return &_class_data_; }

void CanMessage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CanMessage *>(to)->MergeFrom(
      static_cast<const CanMessage &>(from));
}


void CanMessage::MergeFrom(const CanMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CanMessage)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_data().empty()) {
    _internal_set_data(from._internal_data());
  }
  if (from._internal_head() != 0) {
    _internal_set_head(from._internal_head());
  }
  if (from._internal_canid() != 0) {
    _internal_set_canid(from._internal_canid());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CanMessage::CopyFrom(const CanMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CanMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CanMessage::InternalSwap(CanMessage* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &data_, lhs_arena,
      &other->data_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CanMessage, canid_)
      + sizeof(CanMessage::canid_)
      - PROTOBUF_FIELD_OFFSET(CanMessage, head_)>(
          reinterpret_cast<char*>(&head_),
          reinterpret_cast<char*>(&other->head_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CanMessage::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[18]);
}

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

class CCCanMesage::_Internal {
 public:
};

CCCanMesage::CCCanMesage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  message_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCCanMesage)
}
CCCanMesage::CCCanMesage(const CCCanMesage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      message_(from.message_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  islidar_ = from.islidar_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCCanMesage)
}

inline void CCCanMesage::SharedCtor() {
islidar_ = false;
}

CCCanMesage::~CCCanMesage() {
  // @@protoc_insertion_point(destructor:RemoNet.CCCanMesage)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCCanMesage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCCanMesage::ArenaDtor(void* object) {
  CCCanMesage* _this = reinterpret_cast< CCCanMesage* >(object);
  (void)_this;
}
void CCCanMesage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCCanMesage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCCanMesage::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCCanMesage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  message_.Clear();
  islidar_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCCanMesage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool islidar = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          islidar_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .RemoNet.CanMessage message = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_message(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCCanMesage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCCanMesage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool islidar = 1;
  if (this->_internal_islidar() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_islidar(), target);
  }

  // repeated .RemoNet.CanMessage message = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_message_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_message(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCCanMesage)
  return target;
}

size_t CCCanMesage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCCanMesage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .RemoNet.CanMessage message = 2;
  total_size += 1UL * this->_internal_message_size();
  for (const auto& msg : this->message_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

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

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCCanMesage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCCanMesage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCCanMesage::GetClassData() const { return &_class_data_; }

void CCCanMesage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCCanMesage *>(to)->MergeFrom(
      static_cast<const CCCanMesage &>(from));
}


void CCCanMesage::MergeFrom(const CCCanMesage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCCanMesage)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  message_.MergeFrom(from.message_);
  if (from._internal_islidar() != 0) {
    _internal_set_islidar(from._internal_islidar());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCCanMesage::CopyFrom(const CCCanMesage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCCanMesage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCCanMesage::InternalSwap(CCCanMesage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  message_.InternalSwap(&other->message_);
  swap(islidar_, other->islidar_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CCCanMesage::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[19]);
}

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

class Wiper::_Internal {
 public:
};

Wiper::Wiper(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.Wiper)
}
Wiper::Wiper(const Wiper& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ret_ = from.ret_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.Wiper)
}

inline void Wiper::SharedCtor() {
ret_ = false;
}

Wiper::~Wiper() {
  // @@protoc_insertion_point(destructor:RemoNet.Wiper)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Wiper::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void Wiper::ArenaDtor(void* object) {
  Wiper* _this = reinterpret_cast< Wiper* >(object);
  (void)_this;
}
void Wiper::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Wiper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Wiper::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.Wiper)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ret_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Wiper::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool ret = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ret_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Wiper::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.Wiper)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool ret = 1;
  if (this->_internal_ret() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_ret(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.Wiper)
  return target;
}

size_t Wiper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.Wiper)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Wiper::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Wiper::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Wiper::GetClassData() const { return &_class_data_; }

void Wiper::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Wiper *>(to)->MergeFrom(
      static_cast<const Wiper &>(from));
}


void Wiper::MergeFrom(const Wiper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.Wiper)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_ret() != 0) {
    _internal_set_ret(from._internal_ret());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Wiper::CopyFrom(const Wiper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.Wiper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Wiper::InternalSwap(Wiper* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(ret_, other->ret_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Wiper::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[20]);
}

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

class FrontLight::_Internal {
 public:
};

FrontLight::FrontLight(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.FrontLight)
}
FrontLight::FrontLight(const FrontLight& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ret_ = from.ret_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.FrontLight)
}

inline void FrontLight::SharedCtor() {
ret_ = false;
}

FrontLight::~FrontLight() {
  // @@protoc_insertion_point(destructor:RemoNet.FrontLight)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void FrontLight::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void FrontLight::ArenaDtor(void* object) {
  FrontLight* _this = reinterpret_cast< FrontLight* >(object);
  (void)_this;
}
void FrontLight::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FrontLight::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void FrontLight::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.FrontLight)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ret_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FrontLight::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool ret = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ret_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FrontLight::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.FrontLight)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool ret = 1;
  if (this->_internal_ret() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_ret(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.FrontLight)
  return target;
}

size_t FrontLight::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.FrontLight)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FrontLight::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    FrontLight::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FrontLight::GetClassData() const { return &_class_data_; }

void FrontLight::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<FrontLight *>(to)->MergeFrom(
      static_cast<const FrontLight &>(from));
}


void FrontLight::MergeFrom(const FrontLight& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.FrontLight)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_ret() != 0) {
    _internal_set_ret(from._internal_ret());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FrontLight::CopyFrom(const FrontLight& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.FrontLight)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void FrontLight::InternalSwap(FrontLight* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(ret_, other->ret_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FrontLight::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[21]);
}

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

class BackLight::_Internal {
 public:
};

BackLight::BackLight(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.BackLight)
}
BackLight::BackLight(const BackLight& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ret_ = from.ret_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.BackLight)
}

inline void BackLight::SharedCtor() {
ret_ = false;
}

BackLight::~BackLight() {
  // @@protoc_insertion_point(destructor:RemoNet.BackLight)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void BackLight::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void BackLight::ArenaDtor(void* object) {
  BackLight* _this = reinterpret_cast< BackLight* >(object);
  (void)_this;
}
void BackLight::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void BackLight::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void BackLight::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.BackLight)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ret_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* BackLight::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool ret = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ret_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* BackLight::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.BackLight)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool ret = 1;
  if (this->_internal_ret() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_ret(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.BackLight)
  return target;
}

size_t BackLight::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.BackLight)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData BackLight::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    BackLight::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*BackLight::GetClassData() const { return &_class_data_; }

void BackLight::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<BackLight *>(to)->MergeFrom(
      static_cast<const BackLight &>(from));
}


void BackLight::MergeFrom(const BackLight& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.BackLight)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_ret() != 0) {
    _internal_set_ret(from._internal_ret());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void BackLight::CopyFrom(const BackLight& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.BackLight)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void BackLight::InternalSwap(BackLight* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(ret_, other->ret_);
}

::PROTOBUF_NAMESPACE_ID::Metadata BackLight::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[22]);
}

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

class CCAskDataChannel::_Internal {
 public:
};

CCAskDataChannel::CCAskDataChannel(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCAskDataChannel)
}
CCAskDataChannel::CCAskDataChannel(const CCAskDataChannel& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCAskDataChannel)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCAskDataChannel::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCAskDataChannel::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata CCAskDataChannel::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[23]);
}

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

class IMuMessage::_Internal {
 public:
};

IMuMessage::IMuMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.IMuMessage)
}
IMuMessage::IMuMessage(const IMuMessage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&rx_, &from.rx_,
    static_cast<size_t>(reinterpret_cast<char*>(&ry_) -
    reinterpret_cast<char*>(&rx_)) + sizeof(ry_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.IMuMessage)
}

inline void IMuMessage::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&rx_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&ry_) -
    reinterpret_cast<char*>(&rx_)) + sizeof(ry_));
}

IMuMessage::~IMuMessage() {
  // @@protoc_insertion_point(destructor:RemoNet.IMuMessage)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void IMuMessage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void IMuMessage::ArenaDtor(void* object) {
  IMuMessage* _this = reinterpret_cast< IMuMessage* >(object);
  (void)_this;
}
void IMuMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void IMuMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void IMuMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.IMuMessage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&rx_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&ry_) -
      reinterpret_cast<char*>(&rx_)) + sizeof(ry_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IMuMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // float rx = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          rx_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float ry = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          ry_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* IMuMessage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.IMuMessage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // float rx = 1;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_rx = this->_internal_rx();
  uint32_t raw_rx;
  memcpy(&raw_rx, &tmp_rx, sizeof(tmp_rx));
  if (raw_rx != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_rx(), target);
  }

  // float ry = 2;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_ry = this->_internal_ry();
  uint32_t raw_ry;
  memcpy(&raw_ry, &tmp_ry, sizeof(tmp_ry));
  if (raw_ry != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_ry(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.IMuMessage)
  return target;
}

size_t IMuMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.IMuMessage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float rx = 1;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_rx = this->_internal_rx();
  uint32_t raw_rx;
  memcpy(&raw_rx, &tmp_rx, sizeof(tmp_rx));
  if (raw_rx != 0) {
    total_size += 1 + 4;
  }

  // float ry = 2;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_ry = this->_internal_ry();
  uint32_t raw_ry;
  memcpy(&raw_ry, &tmp_ry, sizeof(tmp_ry));
  if (raw_ry != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IMuMessage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    IMuMessage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IMuMessage::GetClassData() const { return &_class_data_; }

void IMuMessage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<IMuMessage *>(to)->MergeFrom(
      static_cast<const IMuMessage &>(from));
}


void IMuMessage::MergeFrom(const IMuMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.IMuMessage)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_rx = from._internal_rx();
  uint32_t raw_rx;
  memcpy(&raw_rx, &tmp_rx, sizeof(tmp_rx));
  if (raw_rx != 0) {
    _internal_set_rx(from._internal_rx());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_ry = from._internal_ry();
  uint32_t raw_ry;
  memcpy(&raw_ry, &tmp_ry, sizeof(tmp_ry));
  if (raw_ry != 0) {
    _internal_set_ry(from._internal_ry());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void IMuMessage::CopyFrom(const IMuMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.IMuMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void IMuMessage::InternalSwap(IMuMessage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(IMuMessage, ry_)
      + sizeof(IMuMessage::ry_)
      - PROTOBUF_FIELD_OFFSET(IMuMessage, rx_)>(
          reinterpret_cast<char*>(&rx_),
          reinterpret_cast<char*>(&other->rx_));
}

::PROTOBUF_NAMESPACE_ID::Metadata IMuMessage::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[24]);
}

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

class CCPing::_Internal {
 public:
};

CCPing::CCPing(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCPing)
}
CCPing::CCPing(const CCPing& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  tick_ = from.tick_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCPing)
}

inline void CCPing::SharedCtor() {
tick_ = int64_t{0};
}

CCPing::~CCPing() {
  // @@protoc_insertion_point(destructor:RemoNet.CCPing)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCPing::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCPing::ArenaDtor(void* object) {
  CCPing* _this = reinterpret_cast< CCPing* >(object);
  (void)_this;
}
void CCPing::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCPing::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCPing::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCPing)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  tick_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCPing::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int64 tick = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          tick_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCPing::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCPing)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int64 tick = 1;
  if (this->_internal_tick() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_tick(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCPing)
  return target;
}

size_t CCPing::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCPing)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int64 tick = 1;
  if (this->_internal_tick() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_tick());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCPing::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCPing::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCPing::GetClassData() const { return &_class_data_; }

void CCPing::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCPing *>(to)->MergeFrom(
      static_cast<const CCPing &>(from));
}


void CCPing::MergeFrom(const CCPing& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCPing)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_tick() != 0) {
    _internal_set_tick(from._internal_tick());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCPing::CopyFrom(const CCPing& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCPing)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCPing::InternalSwap(CCPing* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(tick_, other->tick_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CCPing::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[25]);
}

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

class CCRadarMessage::_Internal {
 public:
};

CCRadarMessage::CCRadarMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCRadarMessage)
}
CCRadarMessage::CCRadarMessage(const CCRadarMessage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&radar0_, &from.radar0_,
    static_cast<size_t>(reinterpret_cast<char*>(&radar7_) -
    reinterpret_cast<char*>(&radar0_)) + sizeof(radar7_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCRadarMessage)
}

inline void CCRadarMessage::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&radar0_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&radar7_) -
    reinterpret_cast<char*>(&radar0_)) + sizeof(radar7_));
}

CCRadarMessage::~CCRadarMessage() {
  // @@protoc_insertion_point(destructor:RemoNet.CCRadarMessage)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCRadarMessage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCRadarMessage::ArenaDtor(void* object) {
  CCRadarMessage* _this = reinterpret_cast< CCRadarMessage* >(object);
  (void)_this;
}
void CCRadarMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCRadarMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCRadarMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCRadarMessage)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&radar0_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&radar7_) -
      reinterpret_cast<char*>(&radar0_)) + sizeof(radar7_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCRadarMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 radar0 = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          radar0_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 radar1 = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          radar1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 radar2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          radar2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 radar3 = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          radar3_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 radar4 = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          radar4_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 radar5 = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          radar5_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 radar6 = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          radar6_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 radar7 = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          radar7_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCRadarMessage::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCRadarMessage)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 radar0 = 1;
  if (this->_internal_radar0() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_radar0(), target);
  }

  // int32 radar1 = 2;
  if (this->_internal_radar1() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_radar1(), target);
  }

  // int32 radar2 = 3;
  if (this->_internal_radar2() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_radar2(), target);
  }

  // int32 radar3 = 4;
  if (this->_internal_radar3() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_radar3(), target);
  }

  // int32 radar4 = 5;
  if (this->_internal_radar4() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_radar4(), target);
  }

  // int32 radar5 = 6;
  if (this->_internal_radar5() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_radar5(), target);
  }

  // int32 radar6 = 7;
  if (this->_internal_radar6() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_radar6(), target);
  }

  // int32 radar7 = 8;
  if (this->_internal_radar7() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_radar7(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCRadarMessage)
  return target;
}

size_t CCRadarMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCRadarMessage)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 radar0 = 1;
  if (this->_internal_radar0() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar0());
  }

  // int32 radar1 = 2;
  if (this->_internal_radar1() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar1());
  }

  // int32 radar2 = 3;
  if (this->_internal_radar2() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar2());
  }

  // int32 radar3 = 4;
  if (this->_internal_radar3() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar3());
  }

  // int32 radar4 = 5;
  if (this->_internal_radar4() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar4());
  }

  // int32 radar5 = 6;
  if (this->_internal_radar5() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar5());
  }

  // int32 radar6 = 7;
  if (this->_internal_radar6() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar6());
  }

  // int32 radar7 = 8;
  if (this->_internal_radar7() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_radar7());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCRadarMessage::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCRadarMessage::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCRadarMessage::GetClassData() const { return &_class_data_; }

void CCRadarMessage::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCRadarMessage *>(to)->MergeFrom(
      static_cast<const CCRadarMessage &>(from));
}


void CCRadarMessage::MergeFrom(const CCRadarMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCRadarMessage)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_radar0() != 0) {
    _internal_set_radar0(from._internal_radar0());
  }
  if (from._internal_radar1() != 0) {
    _internal_set_radar1(from._internal_radar1());
  }
  if (from._internal_radar2() != 0) {
    _internal_set_radar2(from._internal_radar2());
  }
  if (from._internal_radar3() != 0) {
    _internal_set_radar3(from._internal_radar3());
  }
  if (from._internal_radar4() != 0) {
    _internal_set_radar4(from._internal_radar4());
  }
  if (from._internal_radar5() != 0) {
    _internal_set_radar5(from._internal_radar5());
  }
  if (from._internal_radar6() != 0) {
    _internal_set_radar6(from._internal_radar6());
  }
  if (from._internal_radar7() != 0) {
    _internal_set_radar7(from._internal_radar7());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCRadarMessage::CopyFrom(const CCRadarMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCRadarMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCRadarMessage::InternalSwap(CCRadarMessage* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CCRadarMessage, radar7_)
      + sizeof(CCRadarMessage::radar7_)
      - PROTOBUF_FIELD_OFFSET(CCRadarMessage, radar0_)>(
          reinterpret_cast<char*>(&radar0_),
          reinterpret_cast<char*>(&other->radar0_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CCRadarMessage::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[26]);
}

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

class CCRobotAnalog::_Internal {
 public:
};

CCRobotAnalog::CCRobotAnalog(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCRobotAnalog)
}
CCRobotAnalog::CCRobotAnalog(const CCRobotAnalog& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&steer_, &from.steer_,
    static_cast<size_t>(reinterpret_cast<char*>(&gears_d_) -
    reinterpret_cast<char*>(&steer_)) + sizeof(gears_d_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCRobotAnalog)
}

inline void CCRobotAnalog::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&steer_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&gears_d_) -
    reinterpret_cast<char*>(&steer_)) + sizeof(gears_d_));
}

CCRobotAnalog::~CCRobotAnalog() {
  // @@protoc_insertion_point(destructor:RemoNet.CCRobotAnalog)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCRobotAnalog::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCRobotAnalog::ArenaDtor(void* object) {
  CCRobotAnalog* _this = reinterpret_cast< CCRobotAnalog* >(object);
  (void)_this;
}
void CCRobotAnalog::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCRobotAnalog::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCRobotAnalog::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCRobotAnalog)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&steer_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&gears_d_) -
      reinterpret_cast<char*>(&steer_)) + sizeof(gears_d_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCRobotAnalog::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 steer = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          steer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 arm = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          arm_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 bucket = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          bucket_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 throttle = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          throttle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 brake = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          brake_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool emergency = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          emergency_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool resume = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          resume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .RemoNet.Gears gears = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_gears(static_cast<::RemoNet::Gears>(val));
        } else
          goto handle_unusual;
        continue;
      // bool frontlight = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          frontlight_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool backlight = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          backlight_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool wipe = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          wipe_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .RemoNet.DirectionLight directionlight = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_directionlight(static_cast<::RemoNet::DirectionLight>(val));
        } else
          goto handle_unusual;
        continue;
      // bool buzzer = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          buzzer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .RemoNet.Gears_D gears_d = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_gears_d(static_cast<::RemoNet::Gears_D>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCRobotAnalog::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCRobotAnalog)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 steer = 1;
  if (this->_internal_steer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_steer(), target);
  }

  // int32 arm = 2;
  if (this->_internal_arm() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_arm(), target);
  }

  // int32 bucket = 3;
  if (this->_internal_bucket() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_bucket(), target);
  }

  // int32 throttle = 4;
  if (this->_internal_throttle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_throttle(), target);
  }

  // int32 brake = 5;
  if (this->_internal_brake() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_brake(), target);
  }

  // bool emergency = 8;
  if (this->_internal_emergency() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(8, this->_internal_emergency(), target);
  }

  // bool resume = 9;
  if (this->_internal_resume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(9, this->_internal_resume(), target);
  }

  // .RemoNet.Gears gears = 10;
  if (this->_internal_gears() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      10, this->_internal_gears(), target);
  }

  // bool frontlight = 11;
  if (this->_internal_frontlight() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_frontlight(), target);
  }

  // bool backlight = 12;
  if (this->_internal_backlight() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_backlight(), target);
  }

  // bool wipe = 13;
  if (this->_internal_wipe() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_wipe(), target);
  }

  // .RemoNet.DirectionLight directionlight = 14;
  if (this->_internal_directionlight() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      14, this->_internal_directionlight(), target);
  }

  // bool buzzer = 15;
  if (this->_internal_buzzer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_buzzer(), target);
  }

  // .RemoNet.Gears_D gears_d = 16;
  if (this->_internal_gears_d() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      16, this->_internal_gears_d(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCRobotAnalog)
  return target;
}

size_t CCRobotAnalog::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCRobotAnalog)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 steer = 1;
  if (this->_internal_steer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_steer());
  }

  // int32 arm = 2;
  if (this->_internal_arm() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_arm());
  }

  // int32 bucket = 3;
  if (this->_internal_bucket() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_bucket());
  }

  // int32 throttle = 4;
  if (this->_internal_throttle() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_throttle());
  }

  // int32 brake = 5;
  if (this->_internal_brake() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_brake());
  }

  // .RemoNet.Gears gears = 10;
  if (this->_internal_gears() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_gears());
  }

  // bool emergency = 8;
  if (this->_internal_emergency() != 0) {
    total_size += 1 + 1;
  }

  // bool resume = 9;
  if (this->_internal_resume() != 0) {
    total_size += 1 + 1;
  }

  // bool frontlight = 11;
  if (this->_internal_frontlight() != 0) {
    total_size += 1 + 1;
  }

  // bool backlight = 12;
  if (this->_internal_backlight() != 0) {
    total_size += 1 + 1;
  }

  // .RemoNet.DirectionLight directionlight = 14;
  if (this->_internal_directionlight() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_directionlight());
  }

  // bool wipe = 13;
  if (this->_internal_wipe() != 0) {
    total_size += 1 + 1;
  }

  // bool buzzer = 15;
  if (this->_internal_buzzer() != 0) {
    total_size += 1 + 1;
  }

  // .RemoNet.Gears_D gears_d = 16;
  if (this->_internal_gears_d() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_gears_d());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCRobotAnalog::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCRobotAnalog::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCRobotAnalog::GetClassData() const { return &_class_data_; }

void CCRobotAnalog::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCRobotAnalog *>(to)->MergeFrom(
      static_cast<const CCRobotAnalog &>(from));
}


void CCRobotAnalog::MergeFrom(const CCRobotAnalog& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCRobotAnalog)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_steer() != 0) {
    _internal_set_steer(from._internal_steer());
  }
  if (from._internal_arm() != 0) {
    _internal_set_arm(from._internal_arm());
  }
  if (from._internal_bucket() != 0) {
    _internal_set_bucket(from._internal_bucket());
  }
  if (from._internal_throttle() != 0) {
    _internal_set_throttle(from._internal_throttle());
  }
  if (from._internal_brake() != 0) {
    _internal_set_brake(from._internal_brake());
  }
  if (from._internal_gears() != 0) {
    _internal_set_gears(from._internal_gears());
  }
  if (from._internal_emergency() != 0) {
    _internal_set_emergency(from._internal_emergency());
  }
  if (from._internal_resume() != 0) {
    _internal_set_resume(from._internal_resume());
  }
  if (from._internal_frontlight() != 0) {
    _internal_set_frontlight(from._internal_frontlight());
  }
  if (from._internal_backlight() != 0) {
    _internal_set_backlight(from._internal_backlight());
  }
  if (from._internal_directionlight() != 0) {
    _internal_set_directionlight(from._internal_directionlight());
  }
  if (from._internal_wipe() != 0) {
    _internal_set_wipe(from._internal_wipe());
  }
  if (from._internal_buzzer() != 0) {
    _internal_set_buzzer(from._internal_buzzer());
  }
  if (from._internal_gears_d() != 0) {
    _internal_set_gears_d(from._internal_gears_d());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCRobotAnalog::CopyFrom(const CCRobotAnalog& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCRobotAnalog)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCRobotAnalog::InternalSwap(CCRobotAnalog* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CCRobotAnalog, gears_d_)
      + sizeof(CCRobotAnalog::gears_d_)
      - PROTOBUF_FIELD_OFFSET(CCRobotAnalog, steer_)>(
          reinterpret_cast<char*>(&steer_),
          reinterpret_cast<char*>(&other->steer_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CCRobotAnalog::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[27]);
}

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

class CCBootStrapReq::_Internal {
 public:
};

CCBootStrapReq::CCBootStrapReq(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCBootStrapReq)
}
CCBootStrapReq::CCBootStrapReq(const CCBootStrapReq& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCBootStrapReq)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCBootStrapReq::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCBootStrapReq::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata CCBootStrapReq::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[28]);
}

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

class CCBooStrapRep::_Internal {
 public:
};

CCBooStrapRep::CCBooStrapRep(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCBooStrapRep)
}
CCBooStrapRep::CCBooStrapRep(const CCBooStrapRep& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ret_ = from.ret_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCBooStrapRep)
}

inline void CCBooStrapRep::SharedCtor() {
ret_ = false;
}

CCBooStrapRep::~CCBooStrapRep() {
  // @@protoc_insertion_point(destructor:RemoNet.CCBooStrapRep)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCBooStrapRep::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCBooStrapRep::ArenaDtor(void* object) {
  CCBooStrapRep* _this = reinterpret_cast< CCBooStrapRep* >(object);
  (void)_this;
}
void CCBooStrapRep::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCBooStrapRep::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCBooStrapRep::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCBooStrapRep)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ret_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCBooStrapRep::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool ret = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ret_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCBooStrapRep::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCBooStrapRep)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool ret = 1;
  if (this->_internal_ret() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_ret(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCBooStrapRep)
  return target;
}

size_t CCBooStrapRep::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCBooStrapRep)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCBooStrapRep::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCBooStrapRep::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCBooStrapRep::GetClassData() const { return &_class_data_; }

void CCBooStrapRep::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCBooStrapRep *>(to)->MergeFrom(
      static_cast<const CCBooStrapRep &>(from));
}


void CCBooStrapRep::MergeFrom(const CCBooStrapRep& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCBooStrapRep)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_ret() != 0) {
    _internal_set_ret(from._internal_ret());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCBooStrapRep::CopyFrom(const CCBooStrapRep& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCBooStrapRep)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCBooStrapRep::InternalSwap(CCBooStrapRep* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(ret_, other->ret_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CCBooStrapRep::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[29]);
}

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

class CCStartupReq::_Internal {
 public:
};

CCStartupReq::CCStartupReq(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCStartupReq)
}
CCStartupReq::CCStartupReq(const CCStartupReq& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCStartupReq)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCStartupReq::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCStartupReq::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata CCStartupReq::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[30]);
}

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

class CCStartupRep::_Internal {
 public:
};

CCStartupRep::CCStartupRep(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCStartupRep)
}
CCStartupRep::CCStartupRep(const CCStartupRep& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ret_ = from.ret_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCStartupRep)
}

inline void CCStartupRep::SharedCtor() {
ret_ = false;
}

CCStartupRep::~CCStartupRep() {
  // @@protoc_insertion_point(destructor:RemoNet.CCStartupRep)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCStartupRep::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCStartupRep::ArenaDtor(void* object) {
  CCStartupRep* _this = reinterpret_cast< CCStartupRep* >(object);
  (void)_this;
}
void CCStartupRep::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCStartupRep::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCStartupRep::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCStartupRep)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ret_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCStartupRep::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool ret = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          ret_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCStartupRep::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCStartupRep)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool ret = 1;
  if (this->_internal_ret() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_ret(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCStartupRep)
  return target;
}

size_t CCStartupRep::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCStartupRep)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCStartupRep::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCStartupRep::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCStartupRep::GetClassData() const { return &_class_data_; }

void CCStartupRep::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCStartupRep *>(to)->MergeFrom(
      static_cast<const CCStartupRep &>(from));
}


void CCStartupRep::MergeFrom(const CCStartupRep& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCStartupRep)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_ret() != 0) {
    _internal_set_ret(from._internal_ret());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCStartupRep::CopyFrom(const CCStartupRep& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCStartupRep)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCStartupRep::InternalSwap(CCStartupRep* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(ret_, other->ret_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CCStartupRep::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[31]);
}

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

class CCSwitch::_Internal {
 public:
};

CCSwitch::CCSwitch(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCSwitch)
}
CCSwitch::CCSwitch(const CCSwitch& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  front_ = from.front_;
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCSwitch)
}

inline void CCSwitch::SharedCtor() {
front_ = false;
}

CCSwitch::~CCSwitch() {
  // @@protoc_insertion_point(destructor:RemoNet.CCSwitch)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCSwitch::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCSwitch::ArenaDtor(void* object) {
  CCSwitch* _this = reinterpret_cast< CCSwitch* >(object);
  (void)_this;
}
void CCSwitch::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCSwitch::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCSwitch::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCSwitch)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  front_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCSwitch::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool front = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          front_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCSwitch::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCSwitch)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool front = 1;
  if (this->_internal_front() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_front(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCSwitch)
  return target;
}

size_t CCSwitch::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCSwitch)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCSwitch::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCSwitch::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCSwitch::GetClassData() const { return &_class_data_; }

void CCSwitch::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCSwitch *>(to)->MergeFrom(
      static_cast<const CCSwitch &>(from));
}


void CCSwitch::MergeFrom(const CCSwitch& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCSwitch)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_front() != 0) {
    _internal_set_front(from._internal_front());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCSwitch::CopyFrom(const CCSwitch& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCSwitch)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCSwitch::InternalSwap(CCSwitch* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(front_, other->front_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CCSwitch::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[32]);
}

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

class LidarPoint::_Internal {
 public:
  using HasBits = decltype(std::declval<LidarPoint>()._has_bits_);
  static void set_has_timestamp(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_seq(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_frame_id(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_height(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_width(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_is_dense(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_is_left(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
};

LidarPoint::LidarPoint(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  data_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.LidarPoint)
}
LidarPoint::LidarPoint(const LidarPoint& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_),
      data_(from.data_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  frame_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    frame_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_frame_id()) {
    frame_id_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_frame_id(), 
      GetArenaForAllocation());
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&is_left_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(is_left_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.LidarPoint)
}

inline void LidarPoint::SharedCtor() {
frame_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  frame_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&timestamp_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&is_left_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(is_left_));
}

LidarPoint::~LidarPoint() {
  // @@protoc_insertion_point(destructor:RemoNet.LidarPoint)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void LidarPoint::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  frame_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void LidarPoint::ArenaDtor(void* object) {
  LidarPoint* _this = reinterpret_cast< LidarPoint* >(object);
  (void)_this;
}
void LidarPoint::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LidarPoint::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void LidarPoint::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.LidarPoint)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  data_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    frame_id_.ClearNonDefaultToEmpty();
  }
  if (cached_has_bits & 0x0000007eu) {
    ::memset(&timestamp_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&is_left_) -
        reinterpret_cast<char*>(&timestamp_)) + sizeof(is_left_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LidarPoint::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional double timestamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 9)) {
          _Internal::set_has_timestamp(&has_bits);
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 seq = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_seq(&has_bits);
          seq_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional string frame_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_frame_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "RemoNet.LidarPoint.frame_id"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 height = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_height(&has_bits);
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 width = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _Internal::set_has_width(&has_bits);
          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional bool is_dense = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _Internal::set_has_is_dense(&has_bits);
          is_dense_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional bool is_left = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _Internal::set_has_is_left(&has_bits);
          is_left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float data = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_data(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 69) {
          _internal_add_data(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* LidarPoint::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.LidarPoint)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // optional double timestamp = 1;
  if (_internal_has_timestamp()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(1, this->_internal_timestamp(), target);
  }

  // optional uint32 seq = 2;
  if (_internal_has_seq()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_seq(), target);
  }

  // optional string frame_id = 3;
  if (_internal_has_frame_id()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_frame_id().data(), static_cast<int>(this->_internal_frame_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "RemoNet.LidarPoint.frame_id");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_frame_id(), target);
  }

  // optional uint32 height = 4;
  if (_internal_has_height()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(4, this->_internal_height(), target);
  }

  // optional uint32 width = 5;
  if (_internal_has_width()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_width(), target);
  }

  // optional bool is_dense = 6;
  if (_internal_has_is_dense()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_is_dense(), target);
  }

  // optional bool is_left = 7;
  if (_internal_has_is_left()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(7, this->_internal_is_left(), target);
  }

  // repeated float data = 8;
  if (this->_internal_data_size() > 0) {
    target = stream->WriteFixedPacked(8, _internal_data(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.LidarPoint)
  return target;
}

size_t LidarPoint::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.LidarPoint)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float data = 8;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_data_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x0000007fu) {
    // optional string frame_id = 3;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_frame_id());
    }

    // optional double timestamp = 1;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 8;
    }

    // optional uint32 seq = 2;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_seq());
    }

    // optional uint32 height = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_height());
    }

    // optional uint32 width = 5;
    if (cached_has_bits & 0x00000010u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32SizePlusOne(this->_internal_width());
    }

    // optional bool is_dense = 6;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 1;
    }

    // optional bool is_left = 7;
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 + 1;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LidarPoint::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    LidarPoint::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LidarPoint::GetClassData() const { return &_class_data_; }

void LidarPoint::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<LidarPoint *>(to)->MergeFrom(
      static_cast<const LidarPoint &>(from));
}


void LidarPoint::MergeFrom(const LidarPoint& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.LidarPoint)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  data_.MergeFrom(from.data_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000007fu) {
    if (cached_has_bits & 0x00000001u) {
      _internal_set_frame_id(from._internal_frame_id());
    }
    if (cached_has_bits & 0x00000002u) {
      timestamp_ = from.timestamp_;
    }
    if (cached_has_bits & 0x00000004u) {
      seq_ = from.seq_;
    }
    if (cached_has_bits & 0x00000008u) {
      height_ = from.height_;
    }
    if (cached_has_bits & 0x00000010u) {
      width_ = from.width_;
    }
    if (cached_has_bits & 0x00000020u) {
      is_dense_ = from.is_dense_;
    }
    if (cached_has_bits & 0x00000040u) {
      is_left_ = from.is_left_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void LidarPoint::CopyFrom(const LidarPoint& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.LidarPoint)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void LidarPoint::InternalSwap(LidarPoint* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  data_.InternalSwap(&other->data_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &frame_id_, lhs_arena,
      &other->frame_id_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LidarPoint, is_left_)
      + sizeof(LidarPoint::is_left_)
      - PROTOBUF_FIELD_OFFSET(LidarPoint, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LidarPoint::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[33]);
}

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

class SensorStop::_Internal {
 public:
};

SensorStop::SensorStop(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:RemoNet.SensorStop)
}
SensorStop::SensorStop(const SensorStop& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.SensorStop)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SensorStop::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SensorStop::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata SensorStop::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[34]);
}

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

class StopAck::_Internal {
 public:
};

StopAck::StopAck(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:RemoNet.StopAck)
}
StopAck::StopAck(const StopAck& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.StopAck)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StopAck::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StopAck::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata StopAck::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[35]);
}

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

class CCManipulation::_Internal {
 public:
};

CCManipulation::CCManipulation(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCManipulation)
}
CCManipulation::CCManipulation(const CCManipulation& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  sensor_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    sensor_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_sensor().empty()) {
    sensor_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sensor(), 
      GetArenaForAllocation());
  }
  car_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    car_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_car().empty()) {
    car_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_car(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCManipulation)
}

inline void CCManipulation::SharedCtor() {
sensor_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  sensor_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
car_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  car_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CCManipulation::~CCManipulation() {
  // @@protoc_insertion_point(destructor:RemoNet.CCManipulation)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCManipulation::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  sensor_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  car_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void CCManipulation::ArenaDtor(void* object) {
  CCManipulation* _this = reinterpret_cast< CCManipulation* >(object);
  (void)_this;
}
void CCManipulation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCManipulation::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCManipulation::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCManipulation)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  sensor_.ClearToEmpty();
  car_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCManipulation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bytes sensor = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_sensor();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bytes car = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_car();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCManipulation::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCManipulation)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bytes sensor = 1;
  if (!this->_internal_sensor().empty()) {
    target = stream->WriteBytesMaybeAliased(
        1, this->_internal_sensor(), target);
  }

  // bytes car = 2;
  if (!this->_internal_car().empty()) {
    target = stream->WriteBytesMaybeAliased(
        2, this->_internal_car(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCManipulation)
  return target;
}

size_t CCManipulation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCManipulation)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bytes sensor = 1;
  if (!this->_internal_sensor().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_sensor());
  }

  // bytes car = 2;
  if (!this->_internal_car().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_car());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCManipulation::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCManipulation::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCManipulation::GetClassData() const { return &_class_data_; }

void CCManipulation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCManipulation *>(to)->MergeFrom(
      static_cast<const CCManipulation &>(from));
}


void CCManipulation::MergeFrom(const CCManipulation& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCManipulation)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_sensor().empty()) {
    _internal_set_sensor(from._internal_sensor());
  }
  if (!from._internal_car().empty()) {
    _internal_set_car(from._internal_car());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCManipulation::CopyFrom(const CCManipulation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCManipulation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCManipulation::InternalSwap(CCManipulation* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &sensor_, lhs_arena,
      &other->sensor_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &car_, lhs_arena,
      &other->car_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CCManipulation::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[36]);
}

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

class SCAddRobot::_Internal {
 public:
  static const ::RemoNet::Robot& robot(const SCAddRobot* msg);
};

const ::RemoNet::Robot&
SCAddRobot::_Internal::robot(const SCAddRobot* msg) {
  return *msg->robot_;
}
SCAddRobot::SCAddRobot(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCAddRobot)
}
SCAddRobot::SCAddRobot(const SCAddRobot& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_robot()) {
    robot_ = new ::RemoNet::Robot(*from.robot_);
  } else {
    robot_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCAddRobot)
}

inline void SCAddRobot::SharedCtor() {
robot_ = nullptr;
}

SCAddRobot::~SCAddRobot() {
  // @@protoc_insertion_point(destructor:RemoNet.SCAddRobot)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SCAddRobot::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete robot_;
}

void SCAddRobot::ArenaDtor(void* object) {
  SCAddRobot* _this = reinterpret_cast< SCAddRobot* >(object);
  (void)_this;
}
void SCAddRobot::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SCAddRobot::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SCAddRobot::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.SCAddRobot)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && robot_ != nullptr) {
    delete robot_;
  }
  robot_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SCAddRobot::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .RemoNet.Robot robot = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SCAddRobot::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.SCAddRobot)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .RemoNet.Robot robot = 1;
  if (this->_internal_has_robot()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::robot(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.SCAddRobot)
  return target;
}

size_t SCAddRobot::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.SCAddRobot)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .RemoNet.Robot robot = 1;
  if (this->_internal_has_robot()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *robot_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCAddRobot::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SCAddRobot::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCAddRobot::GetClassData() const { return &_class_data_; }

void SCAddRobot::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SCAddRobot *>(to)->MergeFrom(
      static_cast<const SCAddRobot &>(from));
}


void SCAddRobot::MergeFrom(const SCAddRobot& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.SCAddRobot)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_robot()) {
    _internal_mutable_robot()->::RemoNet::Robot::MergeFrom(from._internal_robot());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SCAddRobot::CopyFrom(const SCAddRobot& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.SCAddRobot)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SCAddRobot::InternalSwap(SCAddRobot* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(robot_, other->robot_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SCAddRobot::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[37]);
}

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

class SCDelRobot::_Internal {
 public:
};

SCDelRobot::SCDelRobot(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.SCDelRobot)
}
SCDelRobot::SCDelRobot(const SCDelRobot& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&peer_, &from.peer_,
    static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.SCDelRobot)
}

inline void SCDelRobot::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&peer_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&egotype_) -
    reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
}

SCDelRobot::~SCDelRobot() {
  // @@protoc_insertion_point(destructor:RemoNet.SCDelRobot)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SCDelRobot::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SCDelRobot::ArenaDtor(void* object) {
  SCDelRobot* _this = reinterpret_cast< SCDelRobot* >(object);
  (void)_this;
}
void SCDelRobot::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SCDelRobot::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SCDelRobot::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.SCDelRobot)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&peer_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&egotype_) -
      reinterpret_cast<char*>(&peer_)) + sizeof(egotype_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SCDelRobot::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 peer = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          peer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 egotype = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          egotype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SCDelRobot::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.SCDelRobot)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_peer(), target);
  }

  // int32 egotype = 2;
  if (this->_internal_egotype() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_egotype(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.SCDelRobot)
  return target;
}

size_t SCDelRobot::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.SCDelRobot)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 peer = 1;
  if (this->_internal_peer() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_peer());
  }

  // int32 egotype = 2;
  if (this->_internal_egotype() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_egotype());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SCDelRobot::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SCDelRobot::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SCDelRobot::GetClassData() const { return &_class_data_; }

void SCDelRobot::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SCDelRobot *>(to)->MergeFrom(
      static_cast<const SCDelRobot &>(from));
}


void SCDelRobot::MergeFrom(const SCDelRobot& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.SCDelRobot)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_peer() != 0) {
    _internal_set_peer(from._internal_peer());
  }
  if (from._internal_egotype() != 0) {
    _internal_set_egotype(from._internal_egotype());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SCDelRobot::CopyFrom(const SCDelRobot& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.SCDelRobot)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SCDelRobot::InternalSwap(SCDelRobot* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SCDelRobot, egotype_)
      + sizeof(SCDelRobot::egotype_)
      - PROTOBUF_FIELD_OFFSET(SCDelRobot, peer_)>(
          reinterpret_cast<char*>(&peer_),
          reinterpret_cast<char*>(&other->peer_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SCDelRobot::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[38]);
}

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

class State::_Internal {
 public:
};

State::State(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.State)
}
State::State(const State& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  error_buff_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    error_buff_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_error_buff().empty()) {
    error_buff_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_error_buff(), 
      GetArenaForAllocation());
  }
  all_buff_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    all_buff_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_all_buff().empty()) {
    all_buff_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_all_buff(), 
      GetArenaForAllocation());
  }
  ::memcpy(&engine_speed_, &from.engine_speed_,
    static_cast<size_t>(reinterpret_cast<char*>(&engine_num_) -
    reinterpret_cast<char*>(&engine_speed_)) + sizeof(engine_num_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.State)
}

inline void State::SharedCtor() {
error_buff_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  error_buff_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
all_buff_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  all_buff_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&engine_speed_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&engine_num_) -
    reinterpret_cast<char*>(&engine_speed_)) + sizeof(engine_num_));
}

State::~State() {
  // @@protoc_insertion_point(destructor:RemoNet.State)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void State::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  error_buff_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  all_buff_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void State::ArenaDtor(void* object) {
  State* _this = reinterpret_cast< State* >(object);
  (void)_this;
}
void State::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void State::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void State::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.State)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  error_buff_.ClearToEmpty();
  all_buff_.ClearToEmpty();
  ::memset(&engine_speed_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&engine_num_) -
      reinterpret_cast<char*>(&engine_speed_)) + sizeof(engine_num_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* State::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 engine_speed = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          engine_speed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 travel_speed = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          travel_speed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 fuel_level = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          fuel_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 engine_temperature = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          engine_temperature_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 hydraulic_oil_temperature = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          hydraulic_oil_temperature_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 main_pump_1_pressure = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          main_pump_1_pressure_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 main_pump_2_pressure = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          main_pump_2_pressure_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 hand_gear = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          hand_gear_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 actual_gear = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          actual_gear_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // float gripper_height = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 85)) {
          gripper_height_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float amplitude = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 93)) {
          amplitude_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // int32 boom_angle = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          boom_angle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 stick_angle = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          stick_angle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 idle_protection = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          idle_protection_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 front_toggle = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          front_toggle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 back_toggle = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
          back_toggle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bytes error_Buff = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_error_buff();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 interlock = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
          interlock_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 safety_switch = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 152)) {
          safety_switch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 arm_lift_pilot = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
          arm_lift_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 arm_lowering_pilot = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 168)) {
          arm_lowering_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 lever_lifting_pilot = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 176)) {
          lever_lifting_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 rod_lowering_pilot = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 184)) {
          rod_lowering_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 left_rotary_pilot = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 192)) {
          left_rotary_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 right_rotary_pilot = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 200)) {
          right_rotary_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 grab_open_pilot = 26;
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 208)) {
          grab_open_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 grab_close_pilot = 27;
      case 27:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 216)) {
          grab_close_pilot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 safety_valves = 28;
      case 28:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 224)) {
          safety_valves_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 function_code = 29;
      case 29:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 232)) {
          function_code_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 main_add = 30;
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 240)) {
          main_add_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sub_add = 31;
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 248)) {
          sub_add_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 paramter = 32;
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 0)) {
          paramter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 engine_spn = 33;
      case 33:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          engine_spn_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 engine_fmi = 34;
      case 34:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          engine_fmi_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 engine_num = 35;
      case 35:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          engine_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bytes all_Buff = 36;
      case 36:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_all_buff();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* State::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.State)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 engine_speed = 1;
  if (this->_internal_engine_speed() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_engine_speed(), target);
  }

  // int32 travel_speed = 2;
  if (this->_internal_travel_speed() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_travel_speed(), target);
  }

  // int32 fuel_level = 3;
  if (this->_internal_fuel_level() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_fuel_level(), target);
  }

  // int32 engine_temperature = 4;
  if (this->_internal_engine_temperature() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_engine_temperature(), target);
  }

  // int32 hydraulic_oil_temperature = 5;
  if (this->_internal_hydraulic_oil_temperature() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_hydraulic_oil_temperature(), target);
  }

  // int32 main_pump_1_pressure = 6;
  if (this->_internal_main_pump_1_pressure() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_main_pump_1_pressure(), target);
  }

  // int32 main_pump_2_pressure = 7;
  if (this->_internal_main_pump_2_pressure() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_main_pump_2_pressure(), target);
  }

  // int32 hand_gear = 8;
  if (this->_internal_hand_gear() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_hand_gear(), target);
  }

  // int32 actual_gear = 9;
  if (this->_internal_actual_gear() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_actual_gear(), target);
  }

  // float gripper_height = 10;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_gripper_height = this->_internal_gripper_height();
  uint32_t raw_gripper_height;
  memcpy(&raw_gripper_height, &tmp_gripper_height, sizeof(tmp_gripper_height));
  if (raw_gripper_height != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(10, this->_internal_gripper_height(), target);
  }

  // float amplitude = 11;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_amplitude = this->_internal_amplitude();
  uint32_t raw_amplitude;
  memcpy(&raw_amplitude, &tmp_amplitude, sizeof(tmp_amplitude));
  if (raw_amplitude != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(11, this->_internal_amplitude(), target);
  }

  // int32 boom_angle = 12;
  if (this->_internal_boom_angle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(12, this->_internal_boom_angle(), target);
  }

  // int32 stick_angle = 13;
  if (this->_internal_stick_angle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(13, this->_internal_stick_angle(), target);
  }

  // int32 idle_protection = 14;
  if (this->_internal_idle_protection() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(14, this->_internal_idle_protection(), target);
  }

  // int32 front_toggle = 15;
  if (this->_internal_front_toggle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(15, this->_internal_front_toggle(), target);
  }

  // int32 back_toggle = 16;
  if (this->_internal_back_toggle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(16, this->_internal_back_toggle(), target);
  }

  // bytes error_Buff = 17;
  if (!this->_internal_error_buff().empty()) {
    target = stream->WriteBytesMaybeAliased(
        17, this->_internal_error_buff(), target);
  }

  // int32 interlock = 18;
  if (this->_internal_interlock() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(18, this->_internal_interlock(), target);
  }

  // int32 safety_switch = 19;
  if (this->_internal_safety_switch() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_safety_switch(), target);
  }

  // int32 arm_lift_pilot = 20;
  if (this->_internal_arm_lift_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_arm_lift_pilot(), target);
  }

  // int32 arm_lowering_pilot = 21;
  if (this->_internal_arm_lowering_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(21, this->_internal_arm_lowering_pilot(), target);
  }

  // int32 lever_lifting_pilot = 22;
  if (this->_internal_lever_lifting_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(22, this->_internal_lever_lifting_pilot(), target);
  }

  // int32 rod_lowering_pilot = 23;
  if (this->_internal_rod_lowering_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(23, this->_internal_rod_lowering_pilot(), target);
  }

  // int32 left_rotary_pilot = 24;
  if (this->_internal_left_rotary_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_left_rotary_pilot(), target);
  }

  // int32 right_rotary_pilot = 25;
  if (this->_internal_right_rotary_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(25, this->_internal_right_rotary_pilot(), target);
  }

  // int32 grab_open_pilot = 26;
  if (this->_internal_grab_open_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(26, this->_internal_grab_open_pilot(), target);
  }

  // int32 grab_close_pilot = 27;
  if (this->_internal_grab_close_pilot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(27, this->_internal_grab_close_pilot(), target);
  }

  // int32 safety_valves = 28;
  if (this->_internal_safety_valves() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(28, this->_internal_safety_valves(), target);
  }

  // int32 function_code = 29;
  if (this->_internal_function_code() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(29, this->_internal_function_code(), target);
  }

  // int32 main_add = 30;
  if (this->_internal_main_add() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(30, this->_internal_main_add(), target);
  }

  // int32 sub_add = 31;
  if (this->_internal_sub_add() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(31, this->_internal_sub_add(), target);
  }

  // int32 paramter = 32;
  if (this->_internal_paramter() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_paramter(), target);
  }

  // int32 engine_spn = 33;
  if (this->_internal_engine_spn() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(33, this->_internal_engine_spn(), target);
  }

  // int32 engine_fmi = 34;
  if (this->_internal_engine_fmi() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(34, this->_internal_engine_fmi(), target);
  }

  // int32 engine_num = 35;
  if (this->_internal_engine_num() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_engine_num(), target);
  }

  // bytes all_Buff = 36;
  if (!this->_internal_all_buff().empty()) {
    target = stream->WriteBytesMaybeAliased(
        36, this->_internal_all_buff(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.State)
  return target;
}

size_t State::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.State)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bytes error_Buff = 17;
  if (!this->_internal_error_buff().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_error_buff());
  }

  // bytes all_Buff = 36;
  if (!this->_internal_all_buff().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_all_buff());
  }

  // int32 engine_speed = 1;
  if (this->_internal_engine_speed() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_engine_speed());
  }

  // int32 travel_speed = 2;
  if (this->_internal_travel_speed() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_travel_speed());
  }

  // int32 fuel_level = 3;
  if (this->_internal_fuel_level() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_fuel_level());
  }

  // int32 engine_temperature = 4;
  if (this->_internal_engine_temperature() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_engine_temperature());
  }

  // int32 hydraulic_oil_temperature = 5;
  if (this->_internal_hydraulic_oil_temperature() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_hydraulic_oil_temperature());
  }

  // int32 main_pump_1_pressure = 6;
  if (this->_internal_main_pump_1_pressure() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_main_pump_1_pressure());
  }

  // int32 main_pump_2_pressure = 7;
  if (this->_internal_main_pump_2_pressure() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_main_pump_2_pressure());
  }

  // int32 hand_gear = 8;
  if (this->_internal_hand_gear() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_hand_gear());
  }

  // int32 actual_gear = 9;
  if (this->_internal_actual_gear() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_actual_gear());
  }

  // float gripper_height = 10;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_gripper_height = this->_internal_gripper_height();
  uint32_t raw_gripper_height;
  memcpy(&raw_gripper_height, &tmp_gripper_height, sizeof(tmp_gripper_height));
  if (raw_gripper_height != 0) {
    total_size += 1 + 4;
  }

  // float amplitude = 11;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_amplitude = this->_internal_amplitude();
  uint32_t raw_amplitude;
  memcpy(&raw_amplitude, &tmp_amplitude, sizeof(tmp_amplitude));
  if (raw_amplitude != 0) {
    total_size += 1 + 4;
  }

  // int32 boom_angle = 12;
  if (this->_internal_boom_angle() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_boom_angle());
  }

  // int32 stick_angle = 13;
  if (this->_internal_stick_angle() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_stick_angle());
  }

  // int32 idle_protection = 14;
  if (this->_internal_idle_protection() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_idle_protection());
  }

  // int32 front_toggle = 15;
  if (this->_internal_front_toggle() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_front_toggle());
  }

  // int32 back_toggle = 16;
  if (this->_internal_back_toggle() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_back_toggle());
  }

  // int32 interlock = 18;
  if (this->_internal_interlock() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_interlock());
  }

  // int32 safety_switch = 19;
  if (this->_internal_safety_switch() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_safety_switch());
  }

  // int32 arm_lift_pilot = 20;
  if (this->_internal_arm_lift_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_arm_lift_pilot());
  }

  // int32 arm_lowering_pilot = 21;
  if (this->_internal_arm_lowering_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_arm_lowering_pilot());
  }

  // int32 lever_lifting_pilot = 22;
  if (this->_internal_lever_lifting_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_lever_lifting_pilot());
  }

  // int32 rod_lowering_pilot = 23;
  if (this->_internal_rod_lowering_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_rod_lowering_pilot());
  }

  // int32 left_rotary_pilot = 24;
  if (this->_internal_left_rotary_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_left_rotary_pilot());
  }

  // int32 right_rotary_pilot = 25;
  if (this->_internal_right_rotary_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_right_rotary_pilot());
  }

  // int32 grab_open_pilot = 26;
  if (this->_internal_grab_open_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_grab_open_pilot());
  }

  // int32 grab_close_pilot = 27;
  if (this->_internal_grab_close_pilot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_grab_close_pilot());
  }

  // int32 safety_valves = 28;
  if (this->_internal_safety_valves() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_safety_valves());
  }

  // int32 function_code = 29;
  if (this->_internal_function_code() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_function_code());
  }

  // int32 main_add = 30;
  if (this->_internal_main_add() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_main_add());
  }

  // int32 sub_add = 31;
  if (this->_internal_sub_add() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_sub_add());
  }

  // int32 paramter = 32;
  if (this->_internal_paramter() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_paramter());
  }

  // int32 engine_spn = 33;
  if (this->_internal_engine_spn() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_engine_spn());
  }

  // int32 engine_fmi = 34;
  if (this->_internal_engine_fmi() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_engine_fmi());
  }

  // int32 engine_num = 35;
  if (this->_internal_engine_num() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_engine_num());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData State::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    State::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*State::GetClassData() const { return &_class_data_; }

void State::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<State *>(to)->MergeFrom(
      static_cast<const State &>(from));
}


void State::MergeFrom(const State& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.State)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_error_buff().empty()) {
    _internal_set_error_buff(from._internal_error_buff());
  }
  if (!from._internal_all_buff().empty()) {
    _internal_set_all_buff(from._internal_all_buff());
  }
  if (from._internal_engine_speed() != 0) {
    _internal_set_engine_speed(from._internal_engine_speed());
  }
  if (from._internal_travel_speed() != 0) {
    _internal_set_travel_speed(from._internal_travel_speed());
  }
  if (from._internal_fuel_level() != 0) {
    _internal_set_fuel_level(from._internal_fuel_level());
  }
  if (from._internal_engine_temperature() != 0) {
    _internal_set_engine_temperature(from._internal_engine_temperature());
  }
  if (from._internal_hydraulic_oil_temperature() != 0) {
    _internal_set_hydraulic_oil_temperature(from._internal_hydraulic_oil_temperature());
  }
  if (from._internal_main_pump_1_pressure() != 0) {
    _internal_set_main_pump_1_pressure(from._internal_main_pump_1_pressure());
  }
  if (from._internal_main_pump_2_pressure() != 0) {
    _internal_set_main_pump_2_pressure(from._internal_main_pump_2_pressure());
  }
  if (from._internal_hand_gear() != 0) {
    _internal_set_hand_gear(from._internal_hand_gear());
  }
  if (from._internal_actual_gear() != 0) {
    _internal_set_actual_gear(from._internal_actual_gear());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_gripper_height = from._internal_gripper_height();
  uint32_t raw_gripper_height;
  memcpy(&raw_gripper_height, &tmp_gripper_height, sizeof(tmp_gripper_height));
  if (raw_gripper_height != 0) {
    _internal_set_gripper_height(from._internal_gripper_height());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_amplitude = from._internal_amplitude();
  uint32_t raw_amplitude;
  memcpy(&raw_amplitude, &tmp_amplitude, sizeof(tmp_amplitude));
  if (raw_amplitude != 0) {
    _internal_set_amplitude(from._internal_amplitude());
  }
  if (from._internal_boom_angle() != 0) {
    _internal_set_boom_angle(from._internal_boom_angle());
  }
  if (from._internal_stick_angle() != 0) {
    _internal_set_stick_angle(from._internal_stick_angle());
  }
  if (from._internal_idle_protection() != 0) {
    _internal_set_idle_protection(from._internal_idle_protection());
  }
  if (from._internal_front_toggle() != 0) {
    _internal_set_front_toggle(from._internal_front_toggle());
  }
  if (from._internal_back_toggle() != 0) {
    _internal_set_back_toggle(from._internal_back_toggle());
  }
  if (from._internal_interlock() != 0) {
    _internal_set_interlock(from._internal_interlock());
  }
  if (from._internal_safety_switch() != 0) {
    _internal_set_safety_switch(from._internal_safety_switch());
  }
  if (from._internal_arm_lift_pilot() != 0) {
    _internal_set_arm_lift_pilot(from._internal_arm_lift_pilot());
  }
  if (from._internal_arm_lowering_pilot() != 0) {
    _internal_set_arm_lowering_pilot(from._internal_arm_lowering_pilot());
  }
  if (from._internal_lever_lifting_pilot() != 0) {
    _internal_set_lever_lifting_pilot(from._internal_lever_lifting_pilot());
  }
  if (from._internal_rod_lowering_pilot() != 0) {
    _internal_set_rod_lowering_pilot(from._internal_rod_lowering_pilot());
  }
  if (from._internal_left_rotary_pilot() != 0) {
    _internal_set_left_rotary_pilot(from._internal_left_rotary_pilot());
  }
  if (from._internal_right_rotary_pilot() != 0) {
    _internal_set_right_rotary_pilot(from._internal_right_rotary_pilot());
  }
  if (from._internal_grab_open_pilot() != 0) {
    _internal_set_grab_open_pilot(from._internal_grab_open_pilot());
  }
  if (from._internal_grab_close_pilot() != 0) {
    _internal_set_grab_close_pilot(from._internal_grab_close_pilot());
  }
  if (from._internal_safety_valves() != 0) {
    _internal_set_safety_valves(from._internal_safety_valves());
  }
  if (from._internal_function_code() != 0) {
    _internal_set_function_code(from._internal_function_code());
  }
  if (from._internal_main_add() != 0) {
    _internal_set_main_add(from._internal_main_add());
  }
  if (from._internal_sub_add() != 0) {
    _internal_set_sub_add(from._internal_sub_add());
  }
  if (from._internal_paramter() != 0) {
    _internal_set_paramter(from._internal_paramter());
  }
  if (from._internal_engine_spn() != 0) {
    _internal_set_engine_spn(from._internal_engine_spn());
  }
  if (from._internal_engine_fmi() != 0) {
    _internal_set_engine_fmi(from._internal_engine_fmi());
  }
  if (from._internal_engine_num() != 0) {
    _internal_set_engine_num(from._internal_engine_num());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void State::CopyFrom(const State& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.State)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void State::InternalSwap(State* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &error_buff_, lhs_arena,
      &other->error_buff_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &all_buff_, lhs_arena,
      &other->all_buff_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(State, engine_num_)
      + sizeof(State::engine_num_)
      - PROTOBUF_FIELD_OFFSET(State, engine_speed_)>(
          reinterpret_cast<char*>(&engine_speed_),
          reinterpret_cast<char*>(&other->engine_speed_));
}

::PROTOBUF_NAMESPACE_ID::Metadata State::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[39]);
}

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

class can_net_frame::_Internal {
 public:
};

can_net_frame::can_net_frame(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.can_net_frame)
}
can_net_frame::can_net_frame(const can_net_frame& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_data().empty()) {
    data_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_data(), 
      GetArenaForAllocation());
  }
  ::memcpy(&dlc_, &from.dlc_,
    static_cast<size_t>(reinterpret_cast<char*>(&canid_) -
    reinterpret_cast<char*>(&dlc_)) + sizeof(canid_));
  // @@protoc_insertion_point(copy_constructor:RemoNet.can_net_frame)
}

inline void can_net_frame::SharedCtor() {
data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&dlc_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&canid_) -
    reinterpret_cast<char*>(&dlc_)) + sizeof(canid_));
}

can_net_frame::~can_net_frame() {
  // @@protoc_insertion_point(destructor:RemoNet.can_net_frame)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void can_net_frame::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void can_net_frame::ArenaDtor(void* object) {
  can_net_frame* _this = reinterpret_cast< can_net_frame* >(object);
  (void)_this;
}
void can_net_frame::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void can_net_frame::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void can_net_frame::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.can_net_frame)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  data_.ClearToEmpty();
  ::memset(&dlc_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&canid_) -
      reinterpret_cast<char*>(&dlc_)) + sizeof(canid_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* can_net_frame::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // sint32 dlc = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          dlc_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 canid = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          canid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bytes data = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* can_net_frame::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.can_net_frame)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // sint32 dlc = 1;
  if (this->_internal_dlc() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteSInt32ToArray(1, this->_internal_dlc(), target);
  }

  // int32 canid = 2;
  if (this->_internal_canid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_canid(), target);
  }

  // bytes data = 3;
  if (!this->_internal_data().empty()) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_data(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.can_net_frame)
  return target;
}

size_t can_net_frame::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.can_net_frame)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bytes data = 3;
  if (!this->_internal_data().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_data());
  }

  // sint32 dlc = 1;
  if (this->_internal_dlc() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SInt32SizePlusOne(this->_internal_dlc());
  }

  // int32 canid = 2;
  if (this->_internal_canid() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_canid());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData can_net_frame::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    can_net_frame::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*can_net_frame::GetClassData() const { return &_class_data_; }

void can_net_frame::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<can_net_frame *>(to)->MergeFrom(
      static_cast<const can_net_frame &>(from));
}


void can_net_frame::MergeFrom(const can_net_frame& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.can_net_frame)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_data().empty()) {
    _internal_set_data(from._internal_data());
  }
  if (from._internal_dlc() != 0) {
    _internal_set_dlc(from._internal_dlc());
  }
  if (from._internal_canid() != 0) {
    _internal_set_canid(from._internal_canid());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void can_net_frame::CopyFrom(const can_net_frame& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.can_net_frame)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void can_net_frame::InternalSwap(can_net_frame* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &data_, lhs_arena,
      &other->data_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(can_net_frame, canid_)
      + sizeof(can_net_frame::canid_)
      - PROTOBUF_FIELD_OFFSET(can_net_frame, dlc_)>(
          reinterpret_cast<char*>(&dlc_),
          reinterpret_cast<char*>(&other->dlc_));
}

::PROTOBUF_NAMESPACE_ID::Metadata can_net_frame::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[40]);
}

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

class CCCanMsg::_Internal {
 public:
};

CCCanMsg::CCCanMsg(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  frams_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:RemoNet.CCCanMsg)
}
CCCanMsg::CCCanMsg(const CCCanMsg& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      frams_(from.frams_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:RemoNet.CCCanMsg)
}

inline void CCCanMsg::SharedCtor() {
}

CCCanMsg::~CCCanMsg() {
  // @@protoc_insertion_point(destructor:RemoNet.CCCanMsg)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void CCCanMsg::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CCCanMsg::ArenaDtor(void* object) {
  CCCanMsg* _this = reinterpret_cast< CCCanMsg* >(object);
  (void)_this;
}
void CCCanMsg::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CCCanMsg::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CCCanMsg::Clear() {
// @@protoc_insertion_point(message_clear_start:RemoNet.CCCanMsg)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  frams_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CCCanMsg::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .RemoNet.can_net_frame frams = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_frams(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CCCanMsg::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:RemoNet.CCCanMsg)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .RemoNet.can_net_frame frams = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_frams_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_frams(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:RemoNet.CCCanMsg)
  return target;
}

size_t CCCanMsg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:RemoNet.CCCanMsg)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .RemoNet.can_net_frame frams = 1;
  total_size += 1UL * this->_internal_frams_size();
  for (const auto& msg : this->frams_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CCCanMsg::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CCCanMsg::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CCCanMsg::GetClassData() const { return &_class_data_; }

void CCCanMsg::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CCCanMsg *>(to)->MergeFrom(
      static_cast<const CCCanMsg &>(from));
}


void CCCanMsg::MergeFrom(const CCCanMsg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:RemoNet.CCCanMsg)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  frams_.MergeFrom(from.frams_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CCCanMsg::CopyFrom(const CCCanMsg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:RemoNet.CCCanMsg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CCCanMsg::InternalSwap(CCCanMsg* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  frams_.InternalSwap(&other->frams_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CCCanMsg::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protocol_2eproto_getter, &descriptor_table_protocol_2eproto_once,
      file_level_metadata_protocol_2eproto[41]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace RemoNet
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::RemoNet::CSAdd* Arena::CreateMaybeMessage< ::RemoNet::CSAdd >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CSAdd >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCAdd* Arena::CreateMaybeMessage< ::RemoNet::SCAdd >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCAdd >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCKickOff* Arena::CreateMaybeMessage< ::RemoNet::SCKickOff >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCKickOff >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::Robot* Arena::CreateMaybeMessage< ::RemoNet::Robot >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::Robot >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CSRobot* Arena::CreateMaybeMessage< ::RemoNet::CSRobot >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CSRobot >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCRobot* Arena::CreateMaybeMessage< ::RemoNet::SCRobot >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCRobot >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CSSign* Arena::CreateMaybeMessage< ::RemoNet::CSSign >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CSSign >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCSign* Arena::CreateMaybeMessage< ::RemoNet::SCSign >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCSign >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CSReq* Arena::CreateMaybeMessage< ::RemoNet::CSReq >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CSReq >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCReq* Arena::CreateMaybeMessage< ::RemoNet::SCReq >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCReq >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CSRep* Arena::CreateMaybeMessage< ::RemoNet::CSRep >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CSRep >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCRep* Arena::CreateMaybeMessage< ::RemoNet::SCRep >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCRep >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::Offer* Arena::CreateMaybeMessage< ::RemoNet::Offer >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::Offer >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::Answer* Arena::CreateMaybeMessage< ::RemoNet::Answer >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::Answer >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::Candidate* Arena::CreateMaybeMessage< ::RemoNet::Candidate >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::Candidate >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::Leave* Arena::CreateMaybeMessage< ::RemoNet::Leave >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::Leave >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::Close* Arena::CreateMaybeMessage< ::RemoNet::Close >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::Close >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::TestTextReq* Arena::CreateMaybeMessage< ::RemoNet::TestTextReq >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::TestTextReq >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CanMessage* Arena::CreateMaybeMessage< ::RemoNet::CanMessage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CanMessage >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCCanMesage* Arena::CreateMaybeMessage< ::RemoNet::CCCanMesage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCCanMesage >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::Wiper* Arena::CreateMaybeMessage< ::RemoNet::Wiper >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::Wiper >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::FrontLight* Arena::CreateMaybeMessage< ::RemoNet::FrontLight >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::FrontLight >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::BackLight* Arena::CreateMaybeMessage< ::RemoNet::BackLight >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::BackLight >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCAskDataChannel* Arena::CreateMaybeMessage< ::RemoNet::CCAskDataChannel >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCAskDataChannel >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::IMuMessage* Arena::CreateMaybeMessage< ::RemoNet::IMuMessage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::IMuMessage >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCPing* Arena::CreateMaybeMessage< ::RemoNet::CCPing >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCPing >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCRadarMessage* Arena::CreateMaybeMessage< ::RemoNet::CCRadarMessage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCRadarMessage >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCRobotAnalog* Arena::CreateMaybeMessage< ::RemoNet::CCRobotAnalog >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCRobotAnalog >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCBootStrapReq* Arena::CreateMaybeMessage< ::RemoNet::CCBootStrapReq >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCBootStrapReq >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCBooStrapRep* Arena::CreateMaybeMessage< ::RemoNet::CCBooStrapRep >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCBooStrapRep >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCStartupReq* Arena::CreateMaybeMessage< ::RemoNet::CCStartupReq >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCStartupReq >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCStartupRep* Arena::CreateMaybeMessage< ::RemoNet::CCStartupRep >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCStartupRep >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCSwitch* Arena::CreateMaybeMessage< ::RemoNet::CCSwitch >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCSwitch >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::LidarPoint* Arena::CreateMaybeMessage< ::RemoNet::LidarPoint >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::LidarPoint >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SensorStop* Arena::CreateMaybeMessage< ::RemoNet::SensorStop >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SensorStop >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::StopAck* Arena::CreateMaybeMessage< ::RemoNet::StopAck >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::StopAck >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCManipulation* Arena::CreateMaybeMessage< ::RemoNet::CCManipulation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCManipulation >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCAddRobot* Arena::CreateMaybeMessage< ::RemoNet::SCAddRobot >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCAddRobot >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::SCDelRobot* Arena::CreateMaybeMessage< ::RemoNet::SCDelRobot >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::SCDelRobot >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::State* Arena::CreateMaybeMessage< ::RemoNet::State >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::State >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::can_net_frame* Arena::CreateMaybeMessage< ::RemoNet::can_net_frame >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::can_net_frame >(arena);
}
template<> PROTOBUF_NOINLINE ::RemoNet::CCCanMsg* Arena::CreateMaybeMessage< ::RemoNet::CCCanMsg >(Arena* arena) {
  return Arena::CreateMessageInternal< ::RemoNet::CCCanMsg >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>