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

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

#include "authentication.pb-c.h"
void   client_response_encrypted__init
                     (ClientResponseEncrypted         *message)
{
  static const ClientResponseEncrypted init_value = CLIENT_RESPONSE_ENCRYPTED__INIT;
  *message = init_value;
}
size_t client_response_encrypted__get_packed_size
                     (const ClientResponseEncrypted *message)
{
  assert(message->base.descriptor == &client_response_encrypted__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t client_response_encrypted__pack
                     (const ClientResponseEncrypted *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &client_response_encrypted__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t client_response_encrypted__pack_to_buffer
                     (const ClientResponseEncrypted *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &client_response_encrypted__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
ClientResponseEncrypted *
       client_response_encrypted__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (ClientResponseEncrypted *)
     protobuf_c_message_unpack (&client_response_encrypted__descriptor,
                                allocator, len, data);
}
void   client_response_encrypted__free_unpacked
                     (ClientResponseEncrypted *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &client_response_encrypted__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   login_credentials__init
                     (LoginCredentials         *message)
{
  static const LoginCredentials init_value = LOGIN_CREDENTIALS__INIT;
  *message = init_value;
}
size_t login_credentials__get_packed_size
                     (const LoginCredentials *message)
{
  assert(message->base.descriptor == &login_credentials__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t login_credentials__pack
                     (const LoginCredentials *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &login_credentials__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t login_credentials__pack_to_buffer
                     (const LoginCredentials *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &login_credentials__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
LoginCredentials *
       login_credentials__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (LoginCredentials *)
     protobuf_c_message_unpack (&login_credentials__descriptor,
                                allocator, len, data);
}
void   login_credentials__free_unpacked
                     (LoginCredentials *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &login_credentials__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fingerprint_response_union__init
                     (FingerprintResponseUnion         *message)
{
  static const FingerprintResponseUnion init_value = FINGERPRINT_RESPONSE_UNION__INIT;
  *message = init_value;
}
size_t fingerprint_response_union__get_packed_size
                     (const FingerprintResponseUnion *message)
{
  assert(message->base.descriptor == &fingerprint_response_union__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fingerprint_response_union__pack
                     (const FingerprintResponseUnion *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fingerprint_response_union__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fingerprint_response_union__pack_to_buffer
                     (const FingerprintResponseUnion *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fingerprint_response_union__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FingerprintResponseUnion *
       fingerprint_response_union__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FingerprintResponseUnion *)
     protobuf_c_message_unpack (&fingerprint_response_union__descriptor,
                                allocator, len, data);
}
void   fingerprint_response_union__free_unpacked
                     (FingerprintResponseUnion *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fingerprint_response_union__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fingerprint_grain_response__init
                     (FingerprintGrainResponse         *message)
{
  static const FingerprintGrainResponse init_value = FINGERPRINT_GRAIN_RESPONSE__INIT;
  *message = init_value;
}
size_t fingerprint_grain_response__get_packed_size
                     (const FingerprintGrainResponse *message)
{
  assert(message->base.descriptor == &fingerprint_grain_response__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fingerprint_grain_response__pack
                     (const FingerprintGrainResponse *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fingerprint_grain_response__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fingerprint_grain_response__pack_to_buffer
                     (const FingerprintGrainResponse *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fingerprint_grain_response__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FingerprintGrainResponse *
       fingerprint_grain_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FingerprintGrainResponse *)
     protobuf_c_message_unpack (&fingerprint_grain_response__descriptor,
                                allocator, len, data);
}
void   fingerprint_grain_response__free_unpacked
                     (FingerprintGrainResponse *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fingerprint_grain_response__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fingerprint_hmac_ripemd_response__init
                     (FingerprintHmacRipemdResponse         *message)
{
  static const FingerprintHmacRipemdResponse init_value = FINGERPRINT_HMAC_RIPEMD_RESPONSE__INIT;
  *message = init_value;
}
size_t fingerprint_hmac_ripemd_response__get_packed_size
                     (const FingerprintHmacRipemdResponse *message)
{
  assert(message->base.descriptor == &fingerprint_hmac_ripemd_response__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fingerprint_hmac_ripemd_response__pack
                     (const FingerprintHmacRipemdResponse *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fingerprint_hmac_ripemd_response__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fingerprint_hmac_ripemd_response__pack_to_buffer
                     (const FingerprintHmacRipemdResponse *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fingerprint_hmac_ripemd_response__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FingerprintHmacRipemdResponse *
       fingerprint_hmac_ripemd_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FingerprintHmacRipemdResponse *)
     protobuf_c_message_unpack (&fingerprint_hmac_ripemd_response__descriptor,
                                allocator, len, data);
}
void   fingerprint_hmac_ripemd_response__free_unpacked
                     (FingerprintHmacRipemdResponse *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fingerprint_hmac_ripemd_response__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   peer_ticket_union__init
                     (PeerTicketUnion         *message)
{
  static const PeerTicketUnion init_value = PEER_TICKET_UNION__INIT;
  *message = init_value;
}
size_t peer_ticket_union__get_packed_size
                     (const PeerTicketUnion *message)
{
  assert(message->base.descriptor == &peer_ticket_union__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t peer_ticket_union__pack
                     (const PeerTicketUnion *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &peer_ticket_union__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t peer_ticket_union__pack_to_buffer
                     (const PeerTicketUnion *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &peer_ticket_union__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
PeerTicketUnion *
       peer_ticket_union__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (PeerTicketUnion *)
     protobuf_c_message_unpack (&peer_ticket_union__descriptor,
                                allocator, len, data);
}
void   peer_ticket_union__free_unpacked
                     (PeerTicketUnion *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &peer_ticket_union__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   peer_ticket_public_key__init
                     (PeerTicketPublicKey         *message)
{
  static const PeerTicketPublicKey init_value = PEER_TICKET_PUBLIC_KEY__INIT;
  *message = init_value;
}
size_t peer_ticket_public_key__get_packed_size
                     (const PeerTicketPublicKey *message)
{
  assert(message->base.descriptor == &peer_ticket_public_key__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t peer_ticket_public_key__pack
                     (const PeerTicketPublicKey *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &peer_ticket_public_key__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t peer_ticket_public_key__pack_to_buffer
                     (const PeerTicketPublicKey *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &peer_ticket_public_key__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
PeerTicketPublicKey *
       peer_ticket_public_key__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (PeerTicketPublicKey *)
     protobuf_c_message_unpack (&peer_ticket_public_key__descriptor,
                                allocator, len, data);
}
void   peer_ticket_public_key__free_unpacked
                     (PeerTicketPublicKey *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &peer_ticket_public_key__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   peer_ticket_old__init
                     (PeerTicketOld         *message)
{
  static const PeerTicketOld init_value = PEER_TICKET_OLD__INIT;
  *message = init_value;
}
size_t peer_ticket_old__get_packed_size
                     (const PeerTicketOld *message)
{
  assert(message->base.descriptor == &peer_ticket_old__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t peer_ticket_old__pack
                     (const PeerTicketOld *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &peer_ticket_old__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t peer_ticket_old__pack_to_buffer
                     (const PeerTicketOld *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &peer_ticket_old__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
PeerTicketOld *
       peer_ticket_old__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (PeerTicketOld *)
     protobuf_c_message_unpack (&peer_ticket_old__descriptor,
                                allocator, len, data);
}
void   peer_ticket_old__free_unpacked
                     (PeerTicketOld *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &peer_ticket_old__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   system_info__init
                     (SystemInfo         *message)
{
  static const SystemInfo init_value = SYSTEM_INFO__INIT;
  *message = init_value;
}
size_t system_info__get_packed_size
                     (const SystemInfo *message)
{
  assert(message->base.descriptor == &system_info__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t system_info__pack
                     (const SystemInfo *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &system_info__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t system_info__pack_to_buffer
                     (const SystemInfo *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &system_info__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
SystemInfo *
       system_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (SystemInfo *)
     protobuf_c_message_unpack (&system_info__descriptor,
                                allocator, len, data);
}
void   system_info__free_unpacked
                     (SystemInfo *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &system_info__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   libspotify_app_key__init
                     (LibspotifyAppKey         *message)
{
  static const LibspotifyAppKey init_value = LIBSPOTIFY_APP_KEY__INIT;
  *message = init_value;
}
size_t libspotify_app_key__get_packed_size
                     (const LibspotifyAppKey *message)
{
  assert(message->base.descriptor == &libspotify_app_key__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t libspotify_app_key__pack
                     (const LibspotifyAppKey *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &libspotify_app_key__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t libspotify_app_key__pack_to_buffer
                     (const LibspotifyAppKey *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &libspotify_app_key__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
LibspotifyAppKey *
       libspotify_app_key__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (LibspotifyAppKey *)
     protobuf_c_message_unpack (&libspotify_app_key__descriptor,
                                allocator, len, data);
}
void   libspotify_app_key__free_unpacked
                     (LibspotifyAppKey *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &libspotify_app_key__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   client_info__init
                     (ClientInfo         *message)
{
  static const ClientInfo init_value = CLIENT_INFO__INIT;
  *message = init_value;
}
size_t client_info__get_packed_size
                     (const ClientInfo *message)
{
  assert(message->base.descriptor == &client_info__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t client_info__pack
                     (const ClientInfo *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &client_info__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t client_info__pack_to_buffer
                     (const ClientInfo *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &client_info__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
ClientInfo *
       client_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (ClientInfo *)
     protobuf_c_message_unpack (&client_info__descriptor,
                                allocator, len, data);
}
void   client_info__free_unpacked
                     (ClientInfo *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &client_info__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   client_info_facebook__init
                     (ClientInfoFacebook         *message)
{
  static const ClientInfoFacebook init_value = CLIENT_INFO_FACEBOOK__INIT;
  *message = init_value;
}
size_t client_info_facebook__get_packed_size
                     (const ClientInfoFacebook *message)
{
  assert(message->base.descriptor == &client_info_facebook__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t client_info_facebook__pack
                     (const ClientInfoFacebook *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &client_info_facebook__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t client_info_facebook__pack_to_buffer
                     (const ClientInfoFacebook *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &client_info_facebook__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
ClientInfoFacebook *
       client_info_facebook__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (ClientInfoFacebook *)
     protobuf_c_message_unpack (&client_info_facebook__descriptor,
                                allocator, len, data);
}
void   client_info_facebook__free_unpacked
                     (ClientInfoFacebook *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &client_info_facebook__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   apwelcome__init
                     (APWelcome         *message)
{
  static const APWelcome init_value = APWELCOME__INIT;
  *message = init_value;
}
size_t apwelcome__get_packed_size
                     (const APWelcome *message)
{
  assert(message->base.descriptor == &apwelcome__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t apwelcome__pack
                     (const APWelcome *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &apwelcome__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t apwelcome__pack_to_buffer
                     (const APWelcome *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &apwelcome__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
APWelcome *
       apwelcome__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (APWelcome *)
     protobuf_c_message_unpack (&apwelcome__descriptor,
                                allocator, len, data);
}
void   apwelcome__free_unpacked
                     (APWelcome *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &apwelcome__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   account_info__init
                     (AccountInfo         *message)
{
  static const AccountInfo init_value = ACCOUNT_INFO__INIT;
  *message = init_value;
}
size_t account_info__get_packed_size
                     (const AccountInfo *message)
{
  assert(message->base.descriptor == &account_info__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t account_info__pack
                     (const AccountInfo *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &account_info__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t account_info__pack_to_buffer
                     (const AccountInfo *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &account_info__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
AccountInfo *
       account_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (AccountInfo *)
     protobuf_c_message_unpack (&account_info__descriptor,
                                allocator, len, data);
}
void   account_info__free_unpacked
                     (AccountInfo *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &account_info__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   account_info_spotify__init
                     (AccountInfoSpotify         *message)
{
  static const AccountInfoSpotify init_value = ACCOUNT_INFO_SPOTIFY__INIT;
  *message = init_value;
}
size_t account_info_spotify__get_packed_size
                     (const AccountInfoSpotify *message)
{
  assert(message->base.descriptor == &account_info_spotify__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t account_info_spotify__pack
                     (const AccountInfoSpotify *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &account_info_spotify__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t account_info_spotify__pack_to_buffer
                     (const AccountInfoSpotify *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &account_info_spotify__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
AccountInfoSpotify *
       account_info_spotify__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (AccountInfoSpotify *)
     protobuf_c_message_unpack (&account_info_spotify__descriptor,
                                allocator, len, data);
}
void   account_info_spotify__free_unpacked
                     (AccountInfoSpotify *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &account_info_spotify__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   account_info_facebook__init
                     (AccountInfoFacebook         *message)
{
  static const AccountInfoFacebook init_value = ACCOUNT_INFO_FACEBOOK__INIT;
  *message = init_value;
}
size_t account_info_facebook__get_packed_size
                     (const AccountInfoFacebook *message)
{
  assert(message->base.descriptor == &account_info_facebook__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t account_info_facebook__pack
                     (const AccountInfoFacebook *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &account_info_facebook__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t account_info_facebook__pack_to_buffer
                     (const AccountInfoFacebook *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &account_info_facebook__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
AccountInfoFacebook *
       account_info_facebook__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (AccountInfoFacebook *)
     protobuf_c_message_unpack (&account_info_facebook__descriptor,
                                allocator, len, data);
}
void   account_info_facebook__free_unpacked
                     (AccountInfoFacebook *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &account_info_facebook__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor client_response_encrypted__field_descriptors[9] =
{
  {
    "login_credentials",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, login_credentials),
    &login_credentials__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "account_creation",
    20,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(ClientResponseEncrypted, has_account_creation),
    offsetof(ClientResponseEncrypted, account_creation),
    &account_creation__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "fingerprint_response",
    30,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, fingerprint_response),
    &fingerprint_response_union__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "peer_ticket",
    40,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, peer_ticket),
    &peer_ticket_union__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "system_info",
    50,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, system_info),
    &system_info__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "platform_model",
    60,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, platform_model),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "version_string",
    70,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, version_string),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "appkey",
    80,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, appkey),
    &libspotify_app_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "client_info",
    90,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(ClientResponseEncrypted, client_info),
    &client_info__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned client_response_encrypted__field_indices_by_name[] = {
  1,   /* field[1] = account_creation */
  7,   /* field[7] = appkey */
  8,   /* field[8] = client_info */
  2,   /* field[2] = fingerprint_response */
  0,   /* field[0] = login_credentials */
  3,   /* field[3] = peer_ticket */
  5,   /* field[5] = platform_model */
  4,   /* field[4] = system_info */
  6,   /* field[6] = version_string */
};
static const ProtobufCIntRange client_response_encrypted__number_ranges[9 + 1] =
{
  { 10, 0 },
  { 20, 1 },
  { 30, 2 },
  { 40, 3 },
  { 50, 4 },
  { 60, 5 },
  { 70, 6 },
  { 80, 7 },
  { 90, 8 },
  { 0, 9 }
};
const ProtobufCMessageDescriptor client_response_encrypted__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ClientResponseEncrypted",
  "ClientResponseEncrypted",
  "ClientResponseEncrypted",
  "",
  sizeof(ClientResponseEncrypted),
  9,
  client_response_encrypted__field_descriptors,
  client_response_encrypted__field_indices_by_name,
  9,  client_response_encrypted__number_ranges,
  (ProtobufCMessageInit) client_response_encrypted__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor login_credentials__field_descriptors[3] =
{
  {
    "username",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(LoginCredentials, username),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "typ",
    20,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(LoginCredentials, typ),
    &authentication_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "auth_data",
    30,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(LoginCredentials, has_auth_data),
    offsetof(LoginCredentials, auth_data),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned login_credentials__field_indices_by_name[] = {
  2,   /* field[2] = auth_data */
  1,   /* field[1] = typ */
  0,   /* field[0] = username */
};
static const ProtobufCIntRange login_credentials__number_ranges[3 + 1] =
{
  { 10, 0 },
  { 20, 1 },
  { 30, 2 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor login_credentials__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "LoginCredentials",
  "LoginCredentials",
  "LoginCredentials",
  "",
  sizeof(LoginCredentials),
  3,
  login_credentials__field_descriptors,
  login_credentials__field_indices_by_name,
  3,  login_credentials__number_ranges,
  (ProtobufCMessageInit) login_credentials__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fingerprint_response_union__field_descriptors[2] =
{
  {
    "grain",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FingerprintResponseUnion, grain),
    &fingerprint_grain_response__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "hmac_ripemd",
    20,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(FingerprintResponseUnion, hmac_ripemd),
    &fingerprint_hmac_ripemd_response__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fingerprint_response_union__field_indices_by_name[] = {
  0,   /* field[0] = grain */
  1,   /* field[1] = hmac_ripemd */
};
static const ProtobufCIntRange fingerprint_response_union__number_ranges[2 + 1] =
{
  { 10, 0 },
  { 20, 1 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor fingerprint_response_union__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "FingerprintResponseUnion",
  "FingerprintResponseUnion",
  "FingerprintResponseUnion",
  "",
  sizeof(FingerprintResponseUnion),
  2,
  fingerprint_response_union__field_descriptors,
  fingerprint_response_union__field_indices_by_name,
  2,  fingerprint_response_union__number_ranges,
  (ProtobufCMessageInit) fingerprint_response_union__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fingerprint_grain_response__field_descriptors[1] =
{
  {
    "encrypted_key",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(FingerprintGrainResponse, encrypted_key),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fingerprint_grain_response__field_indices_by_name[] = {
  0,   /* field[0] = encrypted_key */
};
static const ProtobufCIntRange fingerprint_grain_response__number_ranges[1 + 1] =
{
  { 10, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fingerprint_grain_response__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "FingerprintGrainResponse",
  "FingerprintGrainResponse",
  "FingerprintGrainResponse",
  "",
  sizeof(FingerprintGrainResponse),
  1,
  fingerprint_grain_response__field_descriptors,
  fingerprint_grain_response__field_indices_by_name,
  1,  fingerprint_grain_response__number_ranges,
  (ProtobufCMessageInit) fingerprint_grain_response__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fingerprint_hmac_ripemd_response__field_descriptors[1] =
{
  {
    "hmac",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(FingerprintHmacRipemdResponse, hmac),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fingerprint_hmac_ripemd_response__field_indices_by_name[] = {
  0,   /* field[0] = hmac */
};
static const ProtobufCIntRange fingerprint_hmac_ripemd_response__number_ranges[1 + 1] =
{
  { 10, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fingerprint_hmac_ripemd_response__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "FingerprintHmacRipemdResponse",
  "FingerprintHmacRipemdResponse",
  "FingerprintHmacRipemdResponse",
  "",
  sizeof(FingerprintHmacRipemdResponse),
  1,
  fingerprint_hmac_ripemd_response__field_descriptors,
  fingerprint_hmac_ripemd_response__field_indices_by_name,
  1,  fingerprint_hmac_ripemd_response__number_ranges,
  (ProtobufCMessageInit) fingerprint_hmac_ripemd_response__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor peer_ticket_union__field_descriptors[2] =
{
  {
    "public_key",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(PeerTicketUnion, public_key),
    &peer_ticket_public_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "old_ticket",
    20,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(PeerTicketUnion, old_ticket),
    &peer_ticket_old__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned peer_ticket_union__field_indices_by_name[] = {
  1,   /* field[1] = old_ticket */
  0,   /* field[0] = public_key */
};
static const ProtobufCIntRange peer_ticket_union__number_ranges[2 + 1] =
{
  { 10, 0 },
  { 20, 1 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor peer_ticket_union__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "PeerTicketUnion",
  "PeerTicketUnion",
  "PeerTicketUnion",
  "",
  sizeof(PeerTicketUnion),
  2,
  peer_ticket_union__field_descriptors,
  peer_ticket_union__field_indices_by_name,
  2,  peer_ticket_union__number_ranges,
  (ProtobufCMessageInit) peer_ticket_union__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor peer_ticket_public_key__field_descriptors[1] =
{
  {
    "public_key",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(PeerTicketPublicKey, public_key),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned peer_ticket_public_key__field_indices_by_name[] = {
  0,   /* field[0] = public_key */
};
static const ProtobufCIntRange peer_ticket_public_key__number_ranges[1 + 1] =
{
  { 10, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor peer_ticket_public_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "PeerTicketPublicKey",
  "PeerTicketPublicKey",
  "PeerTicketPublicKey",
  "",
  sizeof(PeerTicketPublicKey),
  1,
  peer_ticket_public_key__field_descriptors,
  peer_ticket_public_key__field_indices_by_name,
  1,  peer_ticket_public_key__number_ranges,
  (ProtobufCMessageInit) peer_ticket_public_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor peer_ticket_old__field_descriptors[2] =
{
  {
    "peer_ticket",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(PeerTicketOld, peer_ticket),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "peer_ticket_signature",
    20,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(PeerTicketOld, peer_ticket_signature),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned peer_ticket_old__field_indices_by_name[] = {
  0,   /* field[0] = peer_ticket */
  1,   /* field[1] = peer_ticket_signature */
};
static const ProtobufCIntRange peer_ticket_old__number_ranges[2 + 1] =
{
  { 10, 0 },
  { 20, 1 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor peer_ticket_old__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "PeerTicketOld",
  "PeerTicketOld",
  "PeerTicketOld",
  "",
  sizeof(PeerTicketOld),
  2,
  peer_ticket_old__field_descriptors,
  peer_ticket_old__field_indices_by_name,
  2,  peer_ticket_old__number_ranges,
  (ProtobufCMessageInit) peer_ticket_old__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor system_info__field_descriptors[10] =
{
  {
    "cpu_family",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(SystemInfo, cpu_family),
    &cpu_family__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "cpu_subtype",
    20,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(SystemInfo, has_cpu_subtype),
    offsetof(SystemInfo, cpu_subtype),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "cpu_ext",
    30,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(SystemInfo, has_cpu_ext),
    offsetof(SystemInfo, cpu_ext),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "brand",
    40,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(SystemInfo, has_brand),
    offsetof(SystemInfo, brand),
    &brand__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "brand_flags",
    50,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(SystemInfo, has_brand_flags),
    offsetof(SystemInfo, brand_flags),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "os",
    60,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(SystemInfo, os),
    &os__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "os_version",
    70,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(SystemInfo, has_os_version),
    offsetof(SystemInfo, os_version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "os_ext",
    80,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(SystemInfo, has_os_ext),
    offsetof(SystemInfo, os_ext),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "system_information_string",
    90,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(SystemInfo, system_information_string),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "device_id",
    100,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(SystemInfo, device_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned system_info__field_indices_by_name[] = {
  3,   /* field[3] = brand */
  4,   /* field[4] = brand_flags */
  2,   /* field[2] = cpu_ext */
  0,   /* field[0] = cpu_family */
  1,   /* field[1] = cpu_subtype */
  9,   /* field[9] = device_id */
  5,   /* field[5] = os */
  7,   /* field[7] = os_ext */
  6,   /* field[6] = os_version */
  8,   /* field[8] = system_information_string */
};
static const ProtobufCIntRange system_info__number_ranges[10 + 1] =
{
  { 10, 0 },
  { 20, 1 },
  { 30, 2 },
  { 40, 3 },
  { 50, 4 },
  { 60, 5 },
  { 70, 6 },
  { 80, 7 },
  { 90, 8 },
  { 100, 9 },
  { 0, 10 }
};
const ProtobufCMessageDescriptor system_info__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "SystemInfo",
  "SystemInfo",
  "SystemInfo",
  "",
  sizeof(SystemInfo),
  10,
  system_info__field_descriptors,
  system_info__field_indices_by_name,
  10,  system_info__number_ranges,
  (ProtobufCMessageInit) system_info__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor libspotify_app_key__field_descriptors[5] =
{
  {
    "version",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(LibspotifyAppKey, version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "devkey",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(LibspotifyAppKey, devkey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "signature",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(LibspotifyAppKey, signature),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "useragent",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(LibspotifyAppKey, useragent),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "callback_hash",
    5,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(LibspotifyAppKey, callback_hash),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned libspotify_app_key__field_indices_by_name[] = {
  4,   /* field[4] = callback_hash */
  1,   /* field[1] = devkey */
  2,   /* field[2] = signature */
  3,   /* field[3] = useragent */
  0,   /* field[0] = version */
};
static const ProtobufCIntRange libspotify_app_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor libspotify_app_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "LibspotifyAppKey",
  "LibspotifyAppKey",
  "LibspotifyAppKey",
  "",
  sizeof(LibspotifyAppKey),
  5,
  libspotify_app_key__field_descriptors,
  libspotify_app_key__field_indices_by_name,
  1,  libspotify_app_key__number_ranges,
  (ProtobufCMessageInit) libspotify_app_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor client_info__field_descriptors[3] =
{
  {
    "limited",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(ClientInfo, has_limited),
    offsetof(ClientInfo, limited),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "fb",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(ClientInfo, fb),
    &client_info_facebook__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "language",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ClientInfo, language),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned client_info__field_indices_by_name[] = {
  1,   /* field[1] = fb */
  2,   /* field[2] = language */
  0,   /* field[0] = limited */
};
static const ProtobufCIntRange client_info__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor client_info__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ClientInfo",
  "ClientInfo",
  "ClientInfo",
  "",
  sizeof(ClientInfo),
  3,
  client_info__field_descriptors,
  client_info__field_indices_by_name,
  1,  client_info__number_ranges,
  (ProtobufCMessageInit) client_info__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor client_info_facebook__field_descriptors[1] =
{
  {
    "machine_id",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ClientInfoFacebook, machine_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned client_info_facebook__field_indices_by_name[] = {
  0,   /* field[0] = machine_id */
};
static const ProtobufCIntRange client_info_facebook__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor client_info_facebook__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ClientInfoFacebook",
  "ClientInfoFacebook",
  "ClientInfoFacebook",
  "",
  sizeof(ClientInfoFacebook),
  1,
  client_info_facebook__field_descriptors,
  client_info_facebook__field_indices_by_name,
  1,  client_info_facebook__number_ranges,
  (ProtobufCMessageInit) client_info_facebook__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor apwelcome__field_descriptors[8] =
{
  {
    "canonical_username",
    10,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(APWelcome, canonical_username),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "account_type_logged_in",
    20,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(APWelcome, account_type_logged_in),
    &account_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "credentials_type_logged_in",
    25,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(APWelcome, credentials_type_logged_in),
    &account_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "reusable_auth_credentials_type",
    30,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(APWelcome, reusable_auth_credentials_type),
    &authentication_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "reusable_auth_credentials",
    40,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(APWelcome, reusable_auth_credentials),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "lfs_secret",
    50,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(APWelcome, has_lfs_secret),
    offsetof(APWelcome, lfs_secret),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "account_info",
    60,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(APWelcome, account_info),
    &account_info__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "fb",
    70,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(APWelcome, fb),
    &account_info_facebook__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned apwelcome__field_indices_by_name[] = {
  6,   /* field[6] = account_info */
  1,   /* field[1] = account_type_logged_in */
  0,   /* field[0] = canonical_username */
  2,   /* field[2] = credentials_type_logged_in */
  7,   /* field[7] = fb */
  5,   /* field[5] = lfs_secret */
  4,   /* field[4] = reusable_auth_credentials */
  3,   /* field[3] = reusable_auth_credentials_type */
};
static const ProtobufCIntRange apwelcome__number_ranges[8 + 1] =
{
  { 10, 0 },
  { 20, 1 },
  { 25, 2 },
  { 30, 3 },
  { 40, 4 },
  { 50, 5 },
  { 60, 6 },
  { 70, 7 },
  { 0, 8 }
};
const ProtobufCMessageDescriptor apwelcome__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "APWelcome",
  "APWelcome",
  "APWelcome",
  "",
  sizeof(APWelcome),
  8,
  apwelcome__field_descriptors,
  apwelcome__field_indices_by_name,
  8,  apwelcome__number_ranges,
  (ProtobufCMessageInit) apwelcome__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor account_info__field_descriptors[2] =
{
  {
    "spotify",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(AccountInfo, spotify),
    &account_info_spotify__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "facebook",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(AccountInfo, facebook),
    &account_info_facebook__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned account_info__field_indices_by_name[] = {
  1,   /* field[1] = facebook */
  0,   /* field[0] = spotify */
};
static const ProtobufCIntRange account_info__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor account_info__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "AccountInfo",
  "AccountInfo",
  "AccountInfo",
  "",
  sizeof(AccountInfo),
  2,
  account_info__field_descriptors,
  account_info__field_indices_by_name,
  1,  account_info__number_ranges,
  (ProtobufCMessageInit) account_info__init,
  NULL,NULL,NULL    /* reserved[123] */
};
#define account_info_spotify__field_descriptors NULL
#define account_info_spotify__field_indices_by_name NULL
#define account_info_spotify__number_ranges NULL
const ProtobufCMessageDescriptor account_info_spotify__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "AccountInfoSpotify",
  "AccountInfoSpotify",
  "AccountInfoSpotify",
  "",
  sizeof(AccountInfoSpotify),
  0,
  account_info_spotify__field_descriptors,
  account_info_spotify__field_indices_by_name,
  0,  account_info_spotify__number_ranges,
  (ProtobufCMessageInit) account_info_spotify__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor account_info_facebook__field_descriptors[2] =
{
  {
    "access_token",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(AccountInfoFacebook, access_token),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "machine_id",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(AccountInfoFacebook, machine_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned account_info_facebook__field_indices_by_name[] = {
  0,   /* field[0] = access_token */
  1,   /* field[1] = machine_id */
};
static const ProtobufCIntRange account_info_facebook__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor account_info_facebook__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "AccountInfoFacebook",
  "AccountInfoFacebook",
  "AccountInfoFacebook",
  "",
  sizeof(AccountInfoFacebook),
  2,
  account_info_facebook__field_descriptors,
  account_info_facebook__field_indices_by_name,
  1,  account_info_facebook__number_ranges,
  (ProtobufCMessageInit) account_info_facebook__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue authentication_type__enum_values_by_number[5] =
{
  { "AUTHENTICATION_USER_PASS", "AUTHENTICATION_TYPE__AUTHENTICATION_USER_PASS", 0 },
  { "AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS", "AUTHENTICATION_TYPE__AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS", 1 },
  { "AUTHENTICATION_STORED_FACEBOOK_CREDENTIALS", "AUTHENTICATION_TYPE__AUTHENTICATION_STORED_FACEBOOK_CREDENTIALS", 2 },
  { "AUTHENTICATION_SPOTIFY_TOKEN", "AUTHENTICATION_TYPE__AUTHENTICATION_SPOTIFY_TOKEN", 3 },
  { "AUTHENTICATION_FACEBOOK_TOKEN", "AUTHENTICATION_TYPE__AUTHENTICATION_FACEBOOK_TOKEN", 4 },
};
static const ProtobufCIntRange authentication_type__value_ranges[] = {
{0, 0},{0, 5}
};
static const ProtobufCEnumValueIndex authentication_type__enum_values_by_name[5] =
{
  { "AUTHENTICATION_FACEBOOK_TOKEN", 4 },
  { "AUTHENTICATION_SPOTIFY_TOKEN", 3 },
  { "AUTHENTICATION_STORED_FACEBOOK_CREDENTIALS", 2 },
  { "AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS", 1 },
  { "AUTHENTICATION_USER_PASS", 0 },
};
const ProtobufCEnumDescriptor authentication_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "AuthenticationType",
  "AuthenticationType",
  "AuthenticationType",
  "",
  5,
  authentication_type__enum_values_by_number,
  5,
  authentication_type__enum_values_by_name,
  1,
  authentication_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue account_creation__enum_values_by_number[2] =
{
  { "ACCOUNT_CREATION_ALWAYS_PROMPT", "ACCOUNT_CREATION__ACCOUNT_CREATION_ALWAYS_PROMPT", 1 },
  { "ACCOUNT_CREATION_ALWAYS_CREATE", "ACCOUNT_CREATION__ACCOUNT_CREATION_ALWAYS_CREATE", 3 },
};
static const ProtobufCIntRange account_creation__value_ranges[] = {
{1, 0},{3, 1},{0, 2}
};
static const ProtobufCEnumValueIndex account_creation__enum_values_by_name[2] =
{
  { "ACCOUNT_CREATION_ALWAYS_CREATE", 1 },
  { "ACCOUNT_CREATION_ALWAYS_PROMPT", 0 },
};
const ProtobufCEnumDescriptor account_creation__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "AccountCreation",
  "AccountCreation",
  "AccountCreation",
  "",
  2,
  account_creation__enum_values_by_number,
  2,
  account_creation__enum_values_by_name,
  2,
  account_creation__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue cpu_family__enum_values_by_number[10] =
{
  { "CPU_UNKNOWN", "CPU_FAMILY__CPU_UNKNOWN", 0 },
  { "CPU_X86", "CPU_FAMILY__CPU_X86", 1 },
  { "CPU_X86_64", "CPU_FAMILY__CPU_X86_64", 2 },
  { "CPU_PPC", "CPU_FAMILY__CPU_PPC", 3 },
  { "CPU_PPC_64", "CPU_FAMILY__CPU_PPC_64", 4 },
  { "CPU_ARM", "CPU_FAMILY__CPU_ARM", 5 },
  { "CPU_IA64", "CPU_FAMILY__CPU_IA64", 6 },
  { "CPU_SH", "CPU_FAMILY__CPU_SH", 7 },
  { "CPU_MIPS", "CPU_FAMILY__CPU_MIPS", 8 },
  { "CPU_BLACKFIN", "CPU_FAMILY__CPU_BLACKFIN", 9 },
};
static const ProtobufCIntRange cpu_family__value_ranges[] = {
{0, 0},{0, 10}
};
static const ProtobufCEnumValueIndex cpu_family__enum_values_by_name[10] =
{
  { "CPU_ARM", 5 },
  { "CPU_BLACKFIN", 9 },
  { "CPU_IA64", 6 },
  { "CPU_MIPS", 8 },
  { "CPU_PPC", 3 },
  { "CPU_PPC_64", 4 },
  { "CPU_SH", 7 },
  { "CPU_UNKNOWN", 0 },
  { "CPU_X86", 1 },
  { "CPU_X86_64", 2 },
};
const ProtobufCEnumDescriptor cpu_family__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "CpuFamily",
  "CpuFamily",
  "CpuFamily",
  "",
  10,
  cpu_family__enum_values_by_number,
  10,
  cpu_family__enum_values_by_name,
  1,
  cpu_family__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue brand__enum_values_by_number[4] =
{
  { "BRAND_UNBRANDED", "BRAND__BRAND_UNBRANDED", 0 },
  { "BRAND_INQ", "BRAND__BRAND_INQ", 1 },
  { "BRAND_HTC", "BRAND__BRAND_HTC", 2 },
  { "BRAND_NOKIA", "BRAND__BRAND_NOKIA", 3 },
};
static const ProtobufCIntRange brand__value_ranges[] = {
{0, 0},{0, 4}
};
static const ProtobufCEnumValueIndex brand__enum_values_by_name[4] =
{
  { "BRAND_HTC", 2 },
  { "BRAND_INQ", 1 },
  { "BRAND_NOKIA", 3 },
  { "BRAND_UNBRANDED", 0 },
};
const ProtobufCEnumDescriptor brand__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Brand",
  "Brand",
  "Brand",
  "",
  4,
  brand__enum_values_by_number,
  4,
  brand__enum_values_by_name,
  1,
  brand__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue os__enum_values_by_number[23] =
{
  { "OS_UNKNOWN", "OS__OS_UNKNOWN", 0 },
  { "OS_WINDOWS", "OS__OS_WINDOWS", 1 },
  { "OS_OSX", "OS__OS_OSX", 2 },
  { "OS_IPHONE", "OS__OS_IPHONE", 3 },
  { "OS_S60", "OS__OS_S60", 4 },
  { "OS_LINUX", "OS__OS_LINUX", 5 },
  { "OS_WINDOWS_CE", "OS__OS_WINDOWS_CE", 6 },
  { "OS_ANDROID", "OS__OS_ANDROID", 7 },
  { "OS_PALM", "OS__OS_PALM", 8 },
  { "OS_FREEBSD", "OS__OS_FREEBSD", 9 },
  { "OS_BLACKBERRY", "OS__OS_BLACKBERRY", 10 },
  { "OS_SONOS", "OS__OS_SONOS", 11 },
  { "OS_LOGITECH", "OS__OS_LOGITECH", 12 },
  { "OS_WP7", "OS__OS_WP7", 13 },
  { "OS_ONKYO", "OS__OS_ONKYO", 14 },
  { "OS_PHILIPS", "OS__OS_PHILIPS", 15 },
  { "OS_WD", "OS__OS_WD", 16 },
  { "OS_VOLVO", "OS__OS_VOLVO", 17 },
  { "OS_TIVO", "OS__OS_TIVO", 18 },
  { "OS_AWOX", "OS__OS_AWOX", 19 },
  { "OS_MEEGO", "OS__OS_MEEGO", 20 },
  { "OS_QNXNTO", "OS__OS_QNXNTO", 21 },
  { "OS_BCO", "OS__OS_BCO", 22 },
};
static const ProtobufCIntRange os__value_ranges[] = {
{0, 0},{0, 23}
};
static const ProtobufCEnumValueIndex os__enum_values_by_name[23] =
{
  { "OS_ANDROID", 7 },
  { "OS_AWOX", 19 },
  { "OS_BCO", 22 },
  { "OS_BLACKBERRY", 10 },
  { "OS_FREEBSD", 9 },
  { "OS_IPHONE", 3 },
  { "OS_LINUX", 5 },
  { "OS_LOGITECH", 12 },
  { "OS_MEEGO", 20 },
  { "OS_ONKYO", 14 },
  { "OS_OSX", 2 },
  { "OS_PALM", 8 },
  { "OS_PHILIPS", 15 },
  { "OS_QNXNTO", 21 },
  { "OS_S60", 4 },
  { "OS_SONOS", 11 },
  { "OS_TIVO", 18 },
  { "OS_UNKNOWN", 0 },
  { "OS_VOLVO", 17 },
  { "OS_WD", 16 },
  { "OS_WINDOWS", 1 },
  { "OS_WINDOWS_CE", 6 },
  { "OS_WP7", 13 },
};
const ProtobufCEnumDescriptor os__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Os",
  "Os",
  "Os",
  "",
  23,
  os__enum_values_by_number,
  23,
  os__enum_values_by_name,
  1,
  os__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue account_type__enum_values_by_number[2] =
{
  { "Spotify", "ACCOUNT_TYPE__Spotify", 0 },
  { "Facebook", "ACCOUNT_TYPE__Facebook", 1 },
};
static const ProtobufCIntRange account_type__value_ranges[] = {
{0, 0},{0, 2}
};
static const ProtobufCEnumValueIndex account_type__enum_values_by_name[2] =
{
  { "Facebook", 1 },
  { "Spotify", 0 },
};
const ProtobufCEnumDescriptor account_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "AccountType",
  "AccountType",
  "AccountType",
  "",
  2,
  account_type__enum_values_by_number,
  2,
  account_type__enum_values_by_name,
  1,
  account_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
