/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: packets.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "packets.pb-c.h"
void   gg110_login_ok__init
                     (GG110LoginOK         *message)
{
  static GG110LoginOK init_value = GG110_LOGIN_OK__INIT;
  *message = init_value;
}
size_t gg110_login_ok__get_packed_size
                     (const GG110LoginOK *message)
{
  assert(message->base.descriptor == &gg110_login_ok__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_login_ok__pack
                     (const GG110LoginOK *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_login_ok__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_login_ok__pack_to_buffer
                     (const GG110LoginOK *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_login_ok__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110LoginOK *
       gg110_login_ok__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110LoginOK *)
     protobuf_c_message_unpack (&gg110_login_ok__descriptor,
                                allocator, len, data);
}
void   gg110_login_ok__free_unpacked
                     (GG110LoginOK *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_login_ok__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_pong__init
                     (GG110Pong         *message)
{
  static GG110Pong init_value = GG110_PONG__INIT;
  *message = init_value;
}
size_t gg110_pong__get_packed_size
                     (const GG110Pong *message)
{
  assert(message->base.descriptor == &gg110_pong__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_pong__pack
                     (const GG110Pong *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_pong__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_pong__pack_to_buffer
                     (const GG110Pong *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_pong__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110Pong *
       gg110_pong__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110Pong *)
     protobuf_c_message_unpack (&gg110_pong__descriptor,
                                allocator, len, data);
}
void   gg110_pong__free_unpacked
                     (GG110Pong *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_pong__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_ack__init
                     (GG110Ack         *message)
{
  static GG110Ack init_value = GG110_ACK__INIT;
  *message = init_value;
}
size_t gg110_ack__get_packed_size
                     (const GG110Ack *message)
{
  assert(message->base.descriptor == &gg110_ack__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_ack__pack
                     (const GG110Ack *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_ack__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_ack__pack_to_buffer
                     (const GG110Ack *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_ack__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110Ack *
       gg110_ack__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110Ack *)
     protobuf_c_message_unpack (&gg110_ack__descriptor,
                                allocator, len, data);
}
void   gg110_ack__free_unpacked
                     (GG110Ack *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_ack__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg105_login__init
                     (GG105Login         *message)
{
  static GG105Login init_value = GG105_LOGIN__INIT;
  *message = init_value;
}
size_t gg105_login__get_packed_size
                     (const GG105Login *message)
{
  assert(message->base.descriptor == &gg105_login__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg105_login__pack
                     (const GG105Login *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg105_login__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg105_login__pack_to_buffer
                     (const GG105Login *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg105_login__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG105Login *
       gg105_login__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG105Login *)
     protobuf_c_message_unpack (&gg105_login__descriptor,
                                allocator, len, data);
}
void   gg105_login__free_unpacked
                     (GG105Login *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg105_login__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_message_ack_link__init
                     (GG110MessageAckLink         *message)
{
  static GG110MessageAckLink init_value = GG110_MESSAGE_ACK_LINK__INIT;
  *message = init_value;
}
size_t gg110_message_ack_link__get_packed_size
                     (const GG110MessageAckLink *message)
{
  assert(message->base.descriptor == &gg110_message_ack_link__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_message_ack_link__pack
                     (const GG110MessageAckLink *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_message_ack_link__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_message_ack_link__pack_to_buffer
                     (const GG110MessageAckLink *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_message_ack_link__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110MessageAckLink *
       gg110_message_ack_link__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110MessageAckLink *)
     protobuf_c_message_unpack (&gg110_message_ack_link__descriptor,
                                allocator, len, data);
}
void   gg110_message_ack_link__free_unpacked
                     (GG110MessageAckLink *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_message_ack_link__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_message_ack__init
                     (GG110MessageAck         *message)
{
  static GG110MessageAck init_value = GG110_MESSAGE_ACK__INIT;
  *message = init_value;
}
size_t gg110_message_ack__get_packed_size
                     (const GG110MessageAck *message)
{
  assert(message->base.descriptor == &gg110_message_ack__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_message_ack__pack
                     (const GG110MessageAck *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_message_ack__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_message_ack__pack_to_buffer
                     (const GG110MessageAck *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_message_ack__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110MessageAck *
       gg110_message_ack__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110MessageAck *)
     protobuf_c_message_unpack (&gg110_message_ack__descriptor,
                                allocator, len, data);
}
void   gg110_message_ack__free_unpacked
                     (GG110MessageAck *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_message_ack__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_event__init
                     (GG110Event         *message)
{
  static GG110Event init_value = GG110_EVENT__INIT;
  *message = init_value;
}
size_t gg110_event__get_packed_size
                     (const GG110Event *message)
{
  assert(message->base.descriptor == &gg110_event__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_event__pack
                     (const GG110Event *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_event__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_event__pack_to_buffer
                     (const GG110Event *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_event__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110Event *
       gg110_event__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110Event *)
     protobuf_c_message_unpack (&gg110_event__descriptor,
                                allocator, len, data);
}
void   gg110_event__free_unpacked
                     (GG110Event *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_event__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_recv_message__init
                     (GG110RecvMessage         *message)
{
  static GG110RecvMessage init_value = GG110_RECV_MESSAGE__INIT;
  *message = init_value;
}
size_t gg110_recv_message__get_packed_size
                     (const GG110RecvMessage *message)
{
  assert(message->base.descriptor == &gg110_recv_message__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_recv_message__pack
                     (const GG110RecvMessage *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_recv_message__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_recv_message__pack_to_buffer
                     (const GG110RecvMessage *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_recv_message__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110RecvMessage *
       gg110_recv_message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110RecvMessage *)
     protobuf_c_message_unpack (&gg110_recv_message__descriptor,
                                allocator, len, data);
}
void   gg110_recv_message__free_unpacked
                     (GG110RecvMessage *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_recv_message__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_send_message__init
                     (GG110SendMessage         *message)
{
  static GG110SendMessage init_value = GG110_SEND_MESSAGE__INIT;
  *message = init_value;
}
size_t gg110_send_message__get_packed_size
                     (const GG110SendMessage *message)
{
  assert(message->base.descriptor == &gg110_send_message__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_send_message__pack
                     (const GG110SendMessage *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_send_message__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_send_message__pack_to_buffer
                     (const GG110SendMessage *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_send_message__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110SendMessage *
       gg110_send_message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110SendMessage *)
     protobuf_c_message_unpack (&gg110_send_message__descriptor,
                                allocator, len, data);
}
void   gg110_send_message__free_unpacked
                     (GG110SendMessage *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_send_message__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_imtoken__init
                     (GG110Imtoken         *message)
{
  static GG110Imtoken init_value = GG110_IMTOKEN__INIT;
  *message = init_value;
}
size_t gg110_imtoken__get_packed_size
                     (const GG110Imtoken *message)
{
  assert(message->base.descriptor == &gg110_imtoken__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_imtoken__pack
                     (const GG110Imtoken *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_imtoken__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_imtoken__pack_to_buffer
                     (const GG110Imtoken *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_imtoken__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110Imtoken *
       gg110_imtoken__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110Imtoken *)
     protobuf_c_message_unpack (&gg110_imtoken__descriptor,
                                allocator, len, data);
}
void   gg110_imtoken__free_unpacked
                     (GG110Imtoken *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_imtoken__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_chat_info_update__init
                     (GG110ChatInfoUpdate         *message)
{
  static GG110ChatInfoUpdate init_value = GG110_CHAT_INFO_UPDATE__INIT;
  *message = init_value;
}
size_t gg110_chat_info_update__get_packed_size
                     (const GG110ChatInfoUpdate *message)
{
  assert(message->base.descriptor == &gg110_chat_info_update__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_chat_info_update__pack
                     (const GG110ChatInfoUpdate *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_chat_info_update__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_chat_info_update__pack_to_buffer
                     (const GG110ChatInfoUpdate *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_chat_info_update__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110ChatInfoUpdate *
       gg110_chat_info_update__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110ChatInfoUpdate *)
     protobuf_c_message_unpack (&gg110_chat_info_update__descriptor,
                                allocator, len, data);
}
void   gg110_chat_info_update__free_unpacked
                     (GG110ChatInfoUpdate *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_chat_info_update__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   protobuf_kvp__init
                     (ProtobufKVP         *message)
{
  static ProtobufKVP init_value = PROTOBUF_KVP__INIT;
  *message = init_value;
}
size_t protobuf_kvp__get_packed_size
                     (const ProtobufKVP *message)
{
  assert(message->base.descriptor == &protobuf_kvp__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t protobuf_kvp__pack
                     (const ProtobufKVP *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &protobuf_kvp__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t protobuf_kvp__pack_to_buffer
                     (const ProtobufKVP *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &protobuf_kvp__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
ProtobufKVP *
       protobuf_kvp__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (ProtobufKVP *)
     protobuf_c_message_unpack (&protobuf_kvp__descriptor,
                                allocator, len, data);
}
void   protobuf_kvp__free_unpacked
                     (ProtobufKVP *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &protobuf_kvp__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_options__init
                     (GG110Options         *message)
{
  static GG110Options init_value = GG110_OPTIONS__INIT;
  *message = init_value;
}
size_t gg110_options__get_packed_size
                     (const GG110Options *message)
{
  assert(message->base.descriptor == &gg110_options__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_options__pack
                     (const GG110Options *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_options__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_options__pack_to_buffer
                     (const GG110Options *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_options__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110Options *
       gg110_options__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110Options *)
     protobuf_c_message_unpack (&gg110_options__descriptor,
                                allocator, len, data);
}
void   gg110_options__free_unpacked
                     (GG110Options *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_options__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_access_info__init
                     (GG110AccessInfo         *message)
{
  static GG110AccessInfo init_value = GG110_ACCESS_INFO__INIT;
  *message = init_value;
}
size_t gg110_access_info__get_packed_size
                     (const GG110AccessInfo *message)
{
  assert(message->base.descriptor == &gg110_access_info__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_access_info__pack
                     (const GG110AccessInfo *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_access_info__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_access_info__pack_to_buffer
                     (const GG110AccessInfo *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_access_info__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110AccessInfo *
       gg110_access_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110AccessInfo *)
     protobuf_c_message_unpack (&gg110_access_info__descriptor,
                                allocator, len, data);
}
void   gg110_access_info__free_unpacked
                     (GG110AccessInfo *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_access_info__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg112_transfer_info_uin__init
                     (GG112TransferInfoUin         *message)
{
  static GG112TransferInfoUin init_value = GG112_TRANSFER_INFO_UIN__INIT;
  *message = init_value;
}
size_t gg112_transfer_info_uin__get_packed_size
                     (const GG112TransferInfoUin *message)
{
  assert(message->base.descriptor == &gg112_transfer_info_uin__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg112_transfer_info_uin__pack
                     (const GG112TransferInfoUin *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg112_transfer_info_uin__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg112_transfer_info_uin__pack_to_buffer
                     (const GG112TransferInfoUin *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg112_transfer_info_uin__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG112TransferInfoUin *
       gg112_transfer_info_uin__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG112TransferInfoUin *)
     protobuf_c_message_unpack (&gg112_transfer_info_uin__descriptor,
                                allocator, len, data);
}
void   gg112_transfer_info_uin__free_unpacked
                     (GG112TransferInfoUin *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg112_transfer_info_uin__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg112_transfer_info_file__init
                     (GG112TransferInfoFile         *message)
{
  static GG112TransferInfoFile init_value = GG112_TRANSFER_INFO_FILE__INIT;
  *message = init_value;
}
size_t gg112_transfer_info_file__get_packed_size
                     (const GG112TransferInfoFile *message)
{
  assert(message->base.descriptor == &gg112_transfer_info_file__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg112_transfer_info_file__pack
                     (const GG112TransferInfoFile *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg112_transfer_info_file__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg112_transfer_info_file__pack_to_buffer
                     (const GG112TransferInfoFile *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg112_transfer_info_file__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG112TransferInfoFile *
       gg112_transfer_info_file__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG112TransferInfoFile *)
     protobuf_c_message_unpack (&gg112_transfer_info_file__descriptor,
                                allocator, len, data);
}
void   gg112_transfer_info_file__free_unpacked
                     (GG112TransferInfoFile *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg112_transfer_info_file__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg112_transfer_info__init
                     (GG112TransferInfo         *message)
{
  static GG112TransferInfo init_value = GG112_TRANSFER_INFO__INIT;
  *message = init_value;
}
size_t gg112_transfer_info__get_packed_size
                     (const GG112TransferInfo *message)
{
  assert(message->base.descriptor == &gg112_transfer_info__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg112_transfer_info__pack
                     (const GG112TransferInfo *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg112_transfer_info__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg112_transfer_info__pack_to_buffer
                     (const GG112TransferInfo *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg112_transfer_info__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG112TransferInfo *
       gg112_transfer_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG112TransferInfo *)
     protobuf_c_message_unpack (&gg112_transfer_info__descriptor,
                                allocator, len, data);
}
void   gg112_transfer_info__free_unpacked
                     (GG112TransferInfo *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg112_transfer_info__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   gg110_magic_notification__init
                     (GG110MagicNotification         *message)
{
  static GG110MagicNotification init_value = GG110_MAGIC_NOTIFICATION__INIT;
  *message = init_value;
}
size_t gg110_magic_notification__get_packed_size
                     (const GG110MagicNotification *message)
{
  assert(message->base.descriptor == &gg110_magic_notification__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t gg110_magic_notification__pack
                     (const GG110MagicNotification *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &gg110_magic_notification__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t gg110_magic_notification__pack_to_buffer
                     (const GG110MagicNotification *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &gg110_magic_notification__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
GG110MagicNotification *
       gg110_magic_notification__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (GG110MagicNotification *)
     protobuf_c_message_unpack (&gg110_magic_notification__descriptor,
                                allocator, len, data);
}
void   gg110_magic_notification__free_unpacked
                     (GG110MagicNotification *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &gg110_magic_notification__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const int32_t gg110_login_ok__dummy1__default_value = 1;
static const ProtobufCFieldDescriptor gg110_login_ok__field_descriptors[4] =
{
  {
    "dummy1",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG110LoginOK, dummy1),
    NULL,
    &gg110_login_ok__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummyhash",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110LoginOK, dummyhash),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "uin",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110LoginOK, uin),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "server_time",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG110LoginOK, server_time),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_login_ok__field_indices_by_name[] = {
  0,   /* field[0] = dummy1 */
  1,   /* field[1] = dummyhash */
  3,   /* field[3] = server_time */
  2,   /* field[2] = uin */
};
static const ProtobufCIntRange gg110_login_ok__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor gg110_login_ok__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110LoginOK",
  "GG110LoginOK",
  "GG110LoginOK",
  "",
  sizeof(GG110LoginOK),
  4,
  gg110_login_ok__field_descriptors,
  gg110_login_ok__field_indices_by_name,
  1,  gg110_login_ok__number_ranges,
  (ProtobufCMessageInit) gg110_login_ok__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor gg110_pong__field_descriptors[1] =
{
  {
    "server_time",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG110Pong, server_time),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_pong__field_indices_by_name[] = {
  0,   /* field[0] = server_time */
};
static const ProtobufCIntRange gg110_pong__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor gg110_pong__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110Pong",
  "GG110Pong",
  "GG110Pong",
  "",
  sizeof(GG110Pong),
  1,
  gg110_pong__field_descriptors,
  gg110_pong__field_indices_by_name,
  1,  gg110_pong__number_ranges,
  (ProtobufCMessageInit) gg110_pong__init,
  NULL,NULL,NULL    /* reserved[123] */
};
const ProtobufCEnumValue gg110_ack__type__enum_values_by_number[6] =
{
  { "MSG", "GG110_ACK__TYPE__MSG", 1 },
  { "CHAT", "GG110_ACK__TYPE__CHAT", 2 },
  { "CHAT_INFO", "GG110_ACK__TYPE__CHAT_INFO", 3 },
  { "MAGIC_NOTIFICATION", "GG110_ACK__TYPE__MAGIC_NOTIFICATION", 5 },
  { "MPA", "GG110_ACK__TYPE__MPA", 6 },
  { "TRANSFER_INFO", "GG110_ACK__TYPE__TRANSFER_INFO", 7 },
};
static const ProtobufCIntRange gg110_ack__type__value_ranges[] = {
{1, 0},{5, 3},{0, 6}
};
const ProtobufCEnumValueIndex gg110_ack__type__enum_values_by_name[6] =
{
  { "CHAT", 1 },
  { "CHAT_INFO", 2 },
  { "MAGIC_NOTIFICATION", 3 },
  { "MPA", 4 },
  { "MSG", 0 },
  { "TRANSFER_INFO", 5 },
};
const ProtobufCEnumDescriptor gg110_ack__type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "GG110Ack.Type",
  "Type",
  "GG110Ack__Type",
  "",
  6,
  gg110_ack__type__enum_values_by_number,
  6,
  gg110_ack__type__enum_values_by_name,
  2,
  gg110_ack__type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const uint32_t gg110_ack__dummy1__default_value = 1u;
static const ProtobufCFieldDescriptor gg110_ack__field_descriptors[3] =
{
  {
    "type",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(GG110Ack, type),
    &gg110_ack__type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seq",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110Ack, seq),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy1",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110Ack, dummy1),
    NULL,
    &gg110_ack__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_ack__field_indices_by_name[] = {
  2,   /* field[2] = dummy1 */
  1,   /* field[1] = seq */
  0,   /* field[0] = type */
};
static const ProtobufCIntRange gg110_ack__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor gg110_ack__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110Ack",
  "GG110Ack",
  "GG110Ack",
  "",
  sizeof(GG110Ack),
  3,
  gg110_ack__field_descriptors,
  gg110_ack__field_indices_by_name,
  1,  gg110_ack__number_ranges,
  (ProtobufCMessageInit) gg110_ack__init,
  NULL,NULL,NULL    /* reserved[123] */
};
char gg105_login__initial_descr__default_value[] = "";
static const uint32_t gg105_login__initial_status__default_value = 8227u;
static const int32_t gg105_login__dummy1__default_value = 4;
static const uint32_t gg105_login__dummy2__default_value = 65994615u;
static const uint32_t gg105_login__dummy3__default_value = 198164u;
static const int32_t gg105_login__dummy5__default_value = 255;
static const int32_t gg105_login__dummy6__default_value = 100;
static const uint32_t gg105_login__dummy7__default_value = 127u;
static const int32_t gg105_login__dummy8__default_value = 0;
static const uint32_t gg105_login__dummy10__default_value = 0u;
static const ProtobufCFieldDescriptor gg105_login__field_descriptors[16] =
{
  {
    "lang",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG105Login, lang),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "uin",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(GG105Login, uin),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "hash",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(GG105Login, hash),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy1",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG105Login, dummy1),
    NULL,
    &gg105_login__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy2",
    5,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG105Login, dummy2),
    NULL,
    &gg105_login__dummy2__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy3",
    6,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG105Login, dummy3),
    NULL,
    &gg105_login__dummy3__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "client",
    7,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG105Login, client),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "initial_status",
    8,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG105Login, initial_status),
    NULL,
    &gg105_login__initial_status__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "initial_descr",
    9,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG105Login, initial_descr),
    NULL,
    &gg105_login__initial_descr__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy4",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(GG105Login, dummy4),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "supported_features",
    11,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG105Login, supported_features),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy5",
    12,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG105Login, dummy5),
    NULL,
    &gg105_login__dummy5__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy6",
    13,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG105Login, dummy6),
    NULL,
    &gg105_login__dummy6__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy7",
    14,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED32,
    offsetof(GG105Login, has_dummy7),
    offsetof(GG105Login, dummy7),
    NULL,
    &gg105_login__dummy7__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy8",
    15,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT32,
    offsetof(GG105Login, has_dummy8),
    offsetof(GG105Login, dummy8),
    NULL,
    &gg105_login__dummy8__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy10",
    17,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(GG105Login, has_dummy10),
    offsetof(GG105Login, dummy10),
    NULL,
    &gg105_login__dummy10__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg105_login__field_indices_by_name[] = {
  6,   /* field[6] = client */
  3,   /* field[3] = dummy1 */
  15,   /* field[15] = dummy10 */
  4,   /* field[4] = dummy2 */
  5,   /* field[5] = dummy3 */
  9,   /* field[9] = dummy4 */
  11,   /* field[11] = dummy5 */
  12,   /* field[12] = dummy6 */
  13,   /* field[13] = dummy7 */
  14,   /* field[14] = dummy8 */
  2,   /* field[2] = hash */
  8,   /* field[8] = initial_descr */
  7,   /* field[7] = initial_status */
  0,   /* field[0] = lang */
  10,   /* field[10] = supported_features */
  1,   /* field[1] = uin */
};
static const ProtobufCIntRange gg105_login__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 17, 15 },
  { 0, 16 }
};
const ProtobufCMessageDescriptor gg105_login__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG105Login",
  "GG105Login",
  "GG105Login",
  "",
  sizeof(GG105Login),
  16,
  gg105_login__field_descriptors,
  gg105_login__field_indices_by_name,
  2,  gg105_login__number_ranges,
  (ProtobufCMessageInit) gg105_login__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor gg110_message_ack_link__field_descriptors[2] =
{
  {
    "id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(GG110MessageAckLink, id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "url",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110MessageAckLink, url),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_message_ack_link__field_indices_by_name[] = {
  0,   /* field[0] = id */
  1,   /* field[1] = url */
};
static const ProtobufCIntRange gg110_message_ack_link__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor gg110_message_ack_link__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110MessageAckLink",
  "GG110MessageAckLink",
  "GG110MessageAckLink",
  "",
  sizeof(GG110MessageAckLink),
  2,
  gg110_message_ack_link__field_descriptors,
  gg110_message_ack_link__field_indices_by_name,
  1,  gg110_message_ack_link__number_ranges,
  (ProtobufCMessageInit) gg110_message_ack_link__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const uint32_t gg110_message_ack__dummy1__default_value = 0u;
static const ProtobufCFieldDescriptor gg110_message_ack__field_descriptors[7] =
{
  {
    "msg_type",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110MessageAck, msg_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seq",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110MessageAck, seq),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG110MessageAck, time),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_id",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(GG110MessageAck, has_msg_id),
    offsetof(GG110MessageAck, msg_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "conv_id",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(GG110MessageAck, has_conv_id),
    offsetof(GG110MessageAck, conv_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "links",
    6,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(GG110MessageAck, n_links),
    offsetof(GG110MessageAck, links),
    &gg110_message_ack_link__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy1",
    7,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110MessageAck, dummy1),
    NULL,
    &gg110_message_ack__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_message_ack__field_indices_by_name[] = {
  4,   /* field[4] = conv_id */
  6,   /* field[6] = dummy1 */
  5,   /* field[5] = links */
  3,   /* field[3] = msg_id */
  0,   /* field[0] = msg_type */
  1,   /* field[1] = seq */
  2,   /* field[2] = time */
};
static const ProtobufCIntRange gg110_message_ack__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor gg110_message_ack__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110MessageAck",
  "GG110MessageAck",
  "GG110MessageAck",
  "",
  sizeof(GG110MessageAck),
  7,
  gg110_message_ack__field_descriptors,
  gg110_message_ack__field_indices_by_name,
  1,  gg110_message_ack__number_ranges,
  (ProtobufCMessageInit) gg110_message_ack__init,
  NULL,NULL,NULL    /* reserved[123] */
};
const ProtobufCEnumValue gg110_event__type__enum_values_by_number[2] =
{
  { "XML", "GG110_EVENT__TYPE__XML", 0 },
  { "JSON", "GG110_EVENT__TYPE__JSON", 2 },
};
static const ProtobufCIntRange gg110_event__type__value_ranges[] = {
{0, 0},{2, 1},{0, 2}
};
const ProtobufCEnumValueIndex gg110_event__type__enum_values_by_name[2] =
{
  { "JSON", 1 },
  { "XML", 0 },
};
const ProtobufCEnumDescriptor gg110_event__type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "GG110Event.Type",
  "Type",
  "GG110Event__Type",
  "",
  2,
  gg110_event__type__enum_values_by_number,
  2,
  gg110_event__type__enum_values_by_name,
  2,
  gg110_event__type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor gg110_event__field_descriptors[5] =
{
  {
    "type",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(GG110Event, type),
    &gg110_event__type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seq",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110Event, seq),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "data",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110Event, data),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "subtype",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110Event, subtype),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "id",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(GG110Event, has_id),
    offsetof(GG110Event, id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_event__field_indices_by_name[] = {
  2,   /* field[2] = data */
  4,   /* field[4] = id */
  1,   /* field[1] = seq */
  3,   /* field[3] = subtype */
  0,   /* field[0] = type */
};
static const ProtobufCIntRange gg110_event__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor gg110_event__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110Event",
  "GG110Event",
  "GG110Event",
  "",
  sizeof(GG110Event),
  5,
  gg110_event__field_descriptors,
  gg110_event__field_indices_by_name,
  1,  gg110_event__number_ranges,
  (ProtobufCMessageInit) gg110_event__init,
  NULL,NULL,NULL    /* reserved[123] */
};
char gg110_recv_message__msg_plain__default_value[] = "";
static const ProtobufCFieldDescriptor gg110_recv_message__field_descriptors[10] =
{
  {
    "sender",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(GG110RecvMessage, has_sender),
    offsetof(GG110RecvMessage, sender),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "flags",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110RecvMessage, flags),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seq",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110RecvMessage, seq),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG110RecvMessage, time),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_plain",
    5,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110RecvMessage, msg_plain),
    NULL,
    &gg110_recv_message__msg_plain__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_xhtml",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110RecvMessage, msg_xhtml),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "data",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(GG110RecvMessage, has_data),
    offsetof(GG110RecvMessage, data),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_id",
    9,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(GG110RecvMessage, has_msg_id),
    offsetof(GG110RecvMessage, msg_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "chat_id",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(GG110RecvMessage, has_chat_id),
    offsetof(GG110RecvMessage, chat_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "conv_id",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(GG110RecvMessage, has_conv_id),
    offsetof(GG110RecvMessage, conv_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_recv_message__field_indices_by_name[] = {
  8,   /* field[8] = chat_id */
  9,   /* field[9] = conv_id */
  6,   /* field[6] = data */
  1,   /* field[1] = flags */
  7,   /* field[7] = msg_id */
  4,   /* field[4] = msg_plain */
  5,   /* field[5] = msg_xhtml */
  0,   /* field[0] = sender */
  2,   /* field[2] = seq */
  3,   /* field[3] = time */
};
static const ProtobufCIntRange gg110_recv_message__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 9, 7 },
  { 0, 10 }
};
const ProtobufCMessageDescriptor gg110_recv_message__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110RecvMessage",
  "GG110RecvMessage",
  "GG110RecvMessage",
  "",
  sizeof(GG110RecvMessage),
  10,
  gg110_recv_message__field_descriptors,
  gg110_recv_message__field_indices_by_name,
  2,  gg110_recv_message__number_ranges,
  (ProtobufCMessageInit) gg110_recv_message__init,
  NULL,NULL,NULL    /* reserved[123] */
};
char gg110_send_message__dummy3__default_value[] = "";
static const uint32_t gg110_send_message__dummy1__default_value = 8u;
static const ProtobufCFieldDescriptor gg110_send_message__field_descriptors[7] =
{
  {
    "recipient",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(GG110SendMessage, has_recipient),
    offsetof(GG110SendMessage, recipient),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy1",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110SendMessage, dummy1),
    NULL,
    &gg110_send_message__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seq",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110SendMessage, seq),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_plain",
    5,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110SendMessage, msg_plain),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_xhtml",
    6,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110SendMessage, msg_xhtml),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy3",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110SendMessage, dummy3),
    NULL,
    &gg110_send_message__dummy3__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "chat_id",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(GG110SendMessage, has_chat_id),
    offsetof(GG110SendMessage, chat_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_send_message__field_indices_by_name[] = {
  6,   /* field[6] = chat_id */
  1,   /* field[1] = dummy1 */
  5,   /* field[5] = dummy3 */
  3,   /* field[3] = msg_plain */
  4,   /* field[4] = msg_xhtml */
  0,   /* field[0] = recipient */
  2,   /* field[2] = seq */
};
static const ProtobufCIntRange gg110_send_message__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 5, 3 },
  { 10, 6 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor gg110_send_message__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110SendMessage",
  "GG110SendMessage",
  "GG110SendMessage",
  "",
  sizeof(GG110SendMessage),
  7,
  gg110_send_message__field_descriptors,
  gg110_send_message__field_indices_by_name,
  3,  gg110_send_message__number_ranges,
  (ProtobufCMessageInit) gg110_send_message__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor gg110_imtoken__field_descriptors[1] =
{
  {
    "imtoken",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110Imtoken, imtoken),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_imtoken__field_indices_by_name[] = {
  0,   /* field[0] = imtoken */
};
static const ProtobufCIntRange gg110_imtoken__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor gg110_imtoken__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110Imtoken",
  "GG110Imtoken",
  "GG110Imtoken",
  "",
  sizeof(GG110Imtoken),
  1,
  gg110_imtoken__field_descriptors,
  gg110_imtoken__field_indices_by_name,
  1,  gg110_imtoken__number_ranges,
  (ProtobufCMessageInit) gg110_imtoken__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor gg110_chat_info_update__field_descriptors[10] =
{
  {
    "participant",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, participant),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "inviter",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, inviter),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "update_type",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, update_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, time),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy1",
    5,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, dummy1),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "version",
    6,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy2",
    7,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, dummy2),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_id",
    9,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, msg_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "chat_id",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, chat_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "conv_id",
    11,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(GG110ChatInfoUpdate, conv_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_chat_info_update__field_indices_by_name[] = {
  8,   /* field[8] = chat_id */
  9,   /* field[9] = conv_id */
  4,   /* field[4] = dummy1 */
  6,   /* field[6] = dummy2 */
  1,   /* field[1] = inviter */
  7,   /* field[7] = msg_id */
  0,   /* field[0] = participant */
  3,   /* field[3] = time */
  2,   /* field[2] = update_type */
  5,   /* field[5] = version */
};
static const ProtobufCIntRange gg110_chat_info_update__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 9, 7 },
  { 0, 10 }
};
const ProtobufCMessageDescriptor gg110_chat_info_update__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110ChatInfoUpdate",
  "GG110ChatInfoUpdate",
  "GG110ChatInfoUpdate",
  "",
  sizeof(GG110ChatInfoUpdate),
  10,
  gg110_chat_info_update__field_descriptors,
  gg110_chat_info_update__field_indices_by_name,
  2,  gg110_chat_info_update__number_ranges,
  (ProtobufCMessageInit) gg110_chat_info_update__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor protobuf_kvp__field_descriptors[2] =
{
  {
    "key",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ProtobufKVP, key),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ProtobufKVP, value),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned protobuf_kvp__field_indices_by_name[] = {
  0,   /* field[0] = key */
  1,   /* field[1] = value */
};
static const ProtobufCIntRange protobuf_kvp__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor protobuf_kvp__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ProtobufKVP",
  "ProtobufKVP",
  "ProtobufKVP",
  "",
  sizeof(ProtobufKVP),
  2,
  protobuf_kvp__field_descriptors,
  protobuf_kvp__field_indices_by_name,
  1,  protobuf_kvp__number_ranges,
  (ProtobufCMessageInit) protobuf_kvp__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const uint32_t gg110_options__dummy1__default_value = 0u;
static const ProtobufCFieldDescriptor gg110_options__field_descriptors[2] =
{
  {
    "options",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(GG110Options, n_options),
    offsetof(GG110Options, options),
    &protobuf_kvp__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy1",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110Options, dummy1),
    NULL,
    &gg110_options__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_options__field_indices_by_name[] = {
  1,   /* field[1] = dummy1 */
  0,   /* field[0] = options */
};
static const ProtobufCIntRange gg110_options__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor gg110_options__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110Options",
  "GG110Options",
  "GG110Options",
  "",
  sizeof(GG110Options),
  2,
  gg110_options__field_descriptors,
  gg110_options__field_indices_by_name,
  1,  gg110_options__number_ranges,
  (ProtobufCMessageInit) gg110_options__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const uint32_t gg110_access_info__dummy1__default_value = 1u;
static const ProtobufCFieldDescriptor gg110_access_info__field_descriptors[5] =
{
  {
    "dummy1",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110AccessInfo, dummy1),
    NULL,
    &gg110_access_info__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy2",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110AccessInfo, dummy2),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "last_message",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110AccessInfo, last_message),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "last_file_transfer",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110AccessInfo, last_file_transfer),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "last_conference_ch",
    5,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG110AccessInfo, last_conference_ch),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_access_info__field_indices_by_name[] = {
  0,   /* field[0] = dummy1 */
  1,   /* field[1] = dummy2 */
  4,   /* field[4] = last_conference_ch */
  3,   /* field[3] = last_file_transfer */
  2,   /* field[2] = last_message */
};
static const ProtobufCIntRange gg110_access_info__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor gg110_access_info__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110AccessInfo",
  "GG110AccessInfo",
  "GG110AccessInfo",
  "",
  sizeof(GG110AccessInfo),
  5,
  gg110_access_info__field_descriptors,
  gg110_access_info__field_indices_by_name,
  1,  gg110_access_info__number_ranges,
  (ProtobufCMessageInit) gg110_access_info__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const uint32_t gg112_transfer_info_uin__dummy1__default_value = 1u;
static const ProtobufCFieldDescriptor gg112_transfer_info_uin__field_descriptors[2] =
{
  {
    "dummy1",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoUin, dummy1),
    NULL,
    &gg112_transfer_info_uin__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "uin",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoUin, uin),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg112_transfer_info_uin__field_indices_by_name[] = {
  0,   /* field[0] = dummy1 */
  1,   /* field[1] = uin */
};
static const ProtobufCIntRange gg112_transfer_info_uin__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor gg112_transfer_info_uin__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG112TransferInfoUin",
  "GG112TransferInfoUin",
  "GG112TransferInfoUin",
  "",
  sizeof(GG112TransferInfoUin),
  2,
  gg112_transfer_info_uin__field_descriptors,
  gg112_transfer_info_uin__field_indices_by_name,
  1,  gg112_transfer_info_uin__number_ranges,
  (ProtobufCMessageInit) gg112_transfer_info_uin__init,
  NULL,NULL,NULL    /* reserved[123] */
};
char gg112_transfer_info_file__type__default_value[] = "other";
static const ProtobufCFieldDescriptor gg112_transfer_info_file__field_descriptors[6] =
{
  {
    "type",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoFile, type),
    NULL,
    &gg112_transfer_info_file__type__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "url",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoFile, url),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "content_type",
    6,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoFile, content_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "filename",
    7,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoFile, filename),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "filesize",
    8,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoFile, filesize),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_id",
    1001,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfoFile, msg_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg112_transfer_info_file__field_indices_by_name[] = {
  2,   /* field[2] = content_type */
  3,   /* field[3] = filename */
  4,   /* field[4] = filesize */
  5,   /* field[5] = msg_id */
  0,   /* field[0] = type */
  1,   /* field[1] = url */
};
static const ProtobufCIntRange gg112_transfer_info_file__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 6, 2 },
  { 1001, 5 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor gg112_transfer_info_file__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG112TransferInfoFile",
  "GG112TransferInfoFile",
  "GG112TransferInfoFile",
  "",
  sizeof(GG112TransferInfoFile),
  6,
  gg112_transfer_info_file__field_descriptors,
  gg112_transfer_info_file__field_indices_by_name,
  3,  gg112_transfer_info_file__number_ranges,
  (ProtobufCMessageInit) gg112_transfer_info_file__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor gg112_transfer_info__field_descriptors[9] =
{
  {
    "dummy1",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, dummy1),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "peer",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, peer),
    &gg112_transfer_info_uin__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED32,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, time),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sender",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, sender),
    &gg112_transfer_info_uin__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "data",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(GG112TransferInfo, n_data),
    offsetof(GG112TransferInfo, data),
    &protobuf_kvp__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "file",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, file),
    &gg112_transfer_info_file__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seq",
    7,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, seq),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "msg_id",
    1001,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, msg_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "conv_id",
    1002,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(GG112TransferInfo, conv_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg112_transfer_info__field_indices_by_name[] = {
  8,   /* field[8] = conv_id */
  4,   /* field[4] = data */
  0,   /* field[0] = dummy1 */
  5,   /* field[5] = file */
  7,   /* field[7] = msg_id */
  1,   /* field[1] = peer */
  3,   /* field[3] = sender */
  6,   /* field[6] = seq */
  2,   /* field[2] = time */
};
static const ProtobufCIntRange gg112_transfer_info__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 1001, 7 },
  { 0, 9 }
};
const ProtobufCMessageDescriptor gg112_transfer_info__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG112TransferInfo",
  "GG112TransferInfo",
  "GG112TransferInfo",
  "",
  sizeof(GG112TransferInfo),
  9,
  gg112_transfer_info__field_descriptors,
  gg112_transfer_info__field_indices_by_name,
  2,  gg112_transfer_info__number_ranges,
  (ProtobufCMessageInit) gg112_transfer_info__init,
  NULL,NULL,NULL    /* reserved[123] */
};
char gg110_magic_notification__dummy4__default_value[] = "";
static const int32_t gg110_magic_notification__dummy1__default_value = 2;
static const int32_t gg110_magic_notification__dummy2__default_value = 1;
static const int32_t gg110_magic_notification__dummy3__default_value = 1;
static const ProtobufCFieldDescriptor gg110_magic_notification__field_descriptors[6] =
{
  {
    "dummy1",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG110MagicNotification, dummy1),
    NULL,
    &gg110_magic_notification__dummy1__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seq",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG110MagicNotification, seq),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy2",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG110MagicNotification, dummy2),
    NULL,
    &gg110_magic_notification__dummy2__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy3",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(GG110MagicNotification, dummy3),
    NULL,
    &gg110_magic_notification__dummy3__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "uin",
    5,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(GG110MagicNotification, uin),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dummy4",
    6,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(GG110MagicNotification, dummy4),
    NULL,
    &gg110_magic_notification__dummy4__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned gg110_magic_notification__field_indices_by_name[] = {
  0,   /* field[0] = dummy1 */
  2,   /* field[2] = dummy2 */
  3,   /* field[3] = dummy3 */
  5,   /* field[5] = dummy4 */
  1,   /* field[1] = seq */
  4,   /* field[4] = uin */
};
static const ProtobufCIntRange gg110_magic_notification__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor gg110_magic_notification__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "GG110MagicNotification",
  "GG110MagicNotification",
  "GG110MagicNotification",
  "",
  sizeof(GG110MagicNotification),
  6,
  gg110_magic_notification__field_descriptors,
  gg110_magic_notification__field_indices_by_name,
  1,  gg110_magic_notification__number_ranges,
  (ProtobufCMessageInit) gg110_magic_notification__init,
  NULL,NULL,NULL    /* reserved[123] */
};
