# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: keyexchange.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()

DESCRIPTOR = _descriptor.FileDescriptor(
    name='keyexchange.proto',
    package='spotify',
    syntax='proto2',
    serialized_options=b'\n\013com.spotify',
    create_key=_descriptor._internal_create_key,
    serialized_pb=
    b'\n\x11keyexchange.proto\x12\x07spotify\"\xe0\x02\n\x0b\x43lientHello\x12&\n\nbuild_info\x18\n \x02(\x0b\x32\x12.spotify.BuildInfo\x12\x34\n\x16\x66ingerprints_supported\x18\x14 \x03(\x0e\x32\x14.spotify.Fingerprint\x12\x34\n\x16\x63ryptosuites_supported\x18\x1e \x03(\x0e\x32\x14.spotify.Cryptosuite\x12\x30\n\x14powschemes_supported\x18( \x03(\x0e\x32\x12.spotify.Powscheme\x12:\n\x12login_crypto_hello\x18\x32 \x02(\x0b\x32\x1e.spotify.LoginCryptoHelloUnion\x12\x14\n\x0c\x63lient_nonce\x18< \x02(\x0c\x12\x0f\n\x07padding\x18\x46 \x01(\x0c\x12(\n\x0b\x66\x65\x61ture_set\x18P \x01(\x0b\x32\x13.spotify.FeatureSet\"\x92\x01\n\tBuildInfo\x12!\n\x07product\x18\n \x02(\x0e\x32\x10.spotify.Product\x12,\n\rproduct_flags\x18\x14 \x03(\x0e\x32\x15.spotify.ProductFlags\x12#\n\x08platform\x18\x1e \x02(\x0e\x32\x11.spotify.Platform\x12\x0f\n\x07version\x18( \x02(\x04\"W\n\x15LoginCryptoHelloUnion\x12>\n\x0e\x64iffie_hellman\x18\n \x01(\x0b\x32&.spotify.LoginCryptoDiffieHellmanHello\"F\n\x1dLoginCryptoDiffieHellmanHello\x12\n\n\x02gc\x18\n \x02(\x0c\x12\x19\n\x11server_keys_known\x18\x14 \x02(\r\";\n\nFeatureSet\x12\x13\n\x0b\x61utoupdate2\x18\x01 \x01(\x08\x12\x18\n\x10\x63urrent_location\x18\x02 \x01(\x08\"\x9c\x01\n\x11\x41PResponseMessage\x12\'\n\tchallenge\x18\n \x01(\x0b\x32\x14.spotify.APChallenge\x12\x30\n\x07upgrade\x18\x14 \x01(\x0b\x32\x1f.spotify.UpgradeRequiredMessage\x12,\n\x0clogin_failed\x18\x1e \x01(\x0b\x32\x16.spotify.APLoginFailed\"\xa7\x02\n\x0b\x41PChallenge\x12\x42\n\x16login_crypto_challenge\x18\n \x02(\x0b\x32\".spotify.LoginCryptoChallengeUnion\x12\x41\n\x15\x66ingerprint_challenge\x18\x14 \x02(\x0b\x32\".spotify.FingerprintChallengeUnion\x12\x31\n\rpow_challenge\x18\x1e \x02(\x0b\x32\x1a.spotify.PoWChallengeUnion\x12\x37\n\x10\x63rypto_challenge\x18( \x02(\x0b\x32\x1d.spotify.CryptoChallengeUnion\x12\x14\n\x0cserver_nonce\x18\x32 \x02(\x0c\x12\x0f\n\x07padding\x18< \x01(\x0c\"_\n\x19LoginCryptoChallengeUnion\x12\x42\n\x0e\x64iffie_hellman\x18\n \x01(\x0b\x32*.spotify.LoginCryptoDiffieHellmanChallenge\"c\n!LoginCryptoDiffieHellmanChallenge\x12\n\n\x02gs\x18\n \x02(\x0c\x12\x1c\n\x14server_signature_key\x18\x14 \x02(\x05\x12\x14\n\x0cgs_signature\x18\x1e \x02(\x0c\"\x8c\x01\n\x19\x46ingerprintChallengeUnion\x12\x31\n\x05grain\x18\n \x01(\x0b\x32\".spotify.FingerprintGrainChallenge\x12<\n\x0bhmac_ripemd\x18\x14 \x01(\x0b\x32\'.spotify.FingerprintHmacRipemdChallenge\"(\n\x19\x46ingerprintGrainChallenge\x12\x0b\n\x03kek\x18\n \x02(\x0c\"3\n\x1e\x46ingerprintHmacRipemdChallenge\x12\x11\n\tchallenge\x18\n \x02(\x0c\"E\n\x11PoWChallengeUnion\x12\x30\n\thash_cash\x18\n \x01(\x0b\x32\x1d.spotify.PoWHashCashChallenge\"F\n\x14PoWHashCashChallenge\x12\x0e\n\x06prefix\x18\n \x01(\x0c\x12\x0e\n\x06length\x18\x14 \x01(\x05\x12\x0e\n\x06target\x18\x1e \x01(\x05\"\x84\x01\n\x14\x43ryptoChallengeUnion\x12\x30\n\x07shannon\x18\n \x01(\x0b\x32\x1f.spotify.CryptoShannonChallenge\x12:\n\rrc4_sha1_hmac\x18\x14 \x01(\x0b\x32#.spotify.CryptoRc4Sha1HmacChallenge\"\x18\n\x16\x43ryptoShannonChallenge\"\x1c\n\x1a\x43ryptoRc4Sha1HmacChallenge\"]\n\x16UpgradeRequiredMessage\x12\x1b\n\x13upgrade_signed_part\x18\n \x02(\x0c\x12\x11\n\tsignature\x18\x14 \x02(\x0c\x12\x13\n\x0bhttp_suffix\x18\x1e \x01(\t\"w\n\rAPLoginFailed\x12&\n\nerror_code\x18\n \x02(\x0e\x32\x12.spotify.ErrorCode\x12\x13\n\x0bretry_delay\x18\x14 \x01(\x05\x12\x0e\n\x06\x65xpiry\x18\x1e \x01(\x05\x12\x19\n\x11\x65rror_description\x18( \x01(\t\"\xc3\x01\n\x17\x43lientResponsePlaintext\x12@\n\x15login_crypto_response\x18\n \x02(\x0b\x32!.spotify.LoginCryptoResponseUnion\x12/\n\x0cpow_response\x18\x14 \x02(\x0b\x32\x19.spotify.PoWResponseUnion\x12\x35\n\x0f\x63rypto_response\x18\x1e \x02(\x0b\x32\x1c.spotify.CryptoResponseUnion\"]\n\x18LoginCryptoResponseUnion\x12\x41\n\x0e\x64iffie_hellman\x18\n \x01(\x0b\x32).spotify.LoginCryptoDiffieHellmanResponse\"0\n LoginCryptoDiffieHellmanResponse\x12\x0c\n\x04hmac\x18\n \x02(\x0c\"C\n\x10PoWResponseUnion\x12/\n\thash_cash\x18\n \x01(\x0b\x32\x1c.spotify.PoWHashCashResponse\"*\n\x13PoWHashCashResponse\x12\x13\n\x0bhash_suffix\x18\n \x02(\x0c\"\x81\x01\n\x13\x43ryptoResponseUnion\x12/\n\x07shannon\x18\n \x01(\x0b\x32\x1e.spotify.CryptoShannonResponse\x12\x39\n\rrc4_sha1_hmac\x18\x14 \x01(\x0b\x32\".spotify.CryptoRc4Sha1HmacResponse\"&\n\x15\x43ryptoShannonResponse\x12\r\n\x05\x64ummy\x18\x01 \x01(\x05\"*\n\x19\x43ryptoRc4Sha1HmacResponse\x12\r\n\x05\x64ummy\x18\x01 \x01(\x05*\x7f\n\x07Product\x12\x12\n\x0ePRODUCT_CLIENT\x10\x00\x12\x16\n\x12PRODUCT_LIBSPOTIFY\x10\x01\x12\x12\n\x0ePRODUCT_MOBILE\x10\x02\x12\x13\n\x0fPRODUCT_PARTNER\x10\x03\x12\x1f\n\x1bPRODUCT_LIBSPOTIFY_EMBEDDED\x10\x05*A\n\x0cProductFlags\x12\x15\n\x11PRODUCT_FLAG_NONE\x10\x00\x12\x1a\n\x16PRODUCT_FLAG_DEV_BUILD\x10\x01*\xdc\x04\n\x08Platform\x12\x16\n\x12PLATFORM_WIN32_X86\x10\x00\x12\x14\n\x10PLATFORM_OSX_X86\x10\x01\x12\x16\n\x12PLATFORM_LINUX_X86\x10\x02\x12\x17\n\x13PLATFORM_IPHONE_ARM\x10\x03\x12\x14\n\x10PLATFORM_S60_ARM\x10\x04\x12\x14\n\x10PLATFORM_OSX_PPC\x10\x05\x12\x18\n\x14PLATFORM_ANDROID_ARM\x10\x06\x12\x1b\n\x17PLATFORM_WINDOWS_CE_ARM\x10\x07\x12\x19\n\x15PLATFORM_LINUX_X86_64\x10\x08\x12\x17\n\x13PLATFORM_OSX_X86_64\x10\t\x12\x15\n\x11PLATFORM_PALM_ARM\x10\n\x12\x15\n\x11PLATFORM_LINUX_SH\x10\x0b\x12\x18\n\x14PLATFORM_FREEBSD_X86\x10\x0c\x12\x1b\n\x17PLATFORM_FREEBSD_X86_64\x10\r\x12\x1b\n\x17PLATFORM_BLACKBERRY_ARM\x10\x0e\x12\x12\n\x0ePLATFORM_SONOS\x10\x0f\x12\x17\n\x13PLATFORM_LINUX_MIPS\x10\x10\x12\x16\n\x12PLATFORM_LINUX_ARM\x10\x11\x12\x19\n\x15PLATFORM_LOGITECH_ARM\x10\x12\x12\x1b\n\x17PLATFORM_LINUX_BLACKFIN\x10\x13\x12\x14\n\x10PLATFORM_WP7_ARM\x10\x14\x12\x16\n\x12PLATFORM_ONKYO_ARM\x10\x15\x12\x17\n\x13PLATFORM_QNXNTO_ARM\x10\x16\x12\x14\n\x10PLATFORM_BCO_ARM\x10\x17*A\n\x0b\x46ingerprint\x12\x15\n\x11\x46INGERPRINT_GRAIN\x10\x00\x12\x1b\n\x17\x46INGERPRINT_HMAC_RIPEMD\x10\x01*G\n\x0b\x43ryptosuite\x12\x18\n\x14\x43RYPTO_SUITE_SHANNON\x10\x00\x12\x1e\n\x1a\x43RYPTO_SUITE_RC4_SHA1_HMAC\x10\x01*\x1e\n\tPowscheme\x12\x11\n\rPOW_HASH_CASH\x10\x00*\x89\x02\n\tErrorCode\x12\x11\n\rProtocolError\x10\x00\x12\x10\n\x0cTryAnotherAP\x10\x02\x12\x13\n\x0f\x42\x61\x64\x43onnectionId\x10\x05\x12\x15\n\x11TravelRestriction\x10\t\x12\x1a\n\x16PremiumAccountRequired\x10\x0b\x12\x12\n\x0e\x42\x61\x64\x43redentials\x10\x0c\x12\x1f\n\x1b\x43ouldNotValidateCredentials\x10\r\x12\x11\n\rAccountExists\x10\x0e\x12\x1d\n\x19\x45xtraVerificationRequired\x10\x0f\x12\x11\n\rInvalidAppKey\x10\x10\x12\x15\n\x11\x41pplicationBanned\x10\x11\x42\r\n\x0b\x63om.spotify'
)

_PRODUCT = _descriptor.EnumDescriptor(
    name='Product',
    full_name='spotify.Product',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
        _descriptor.EnumValueDescriptor(
            name='PRODUCT_CLIENT',
            index=0,
            number=0,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PRODUCT_LIBSPOTIFY',
            index=1,
            number=1,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PRODUCT_MOBILE',
            index=2,
            number=2,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PRODUCT_PARTNER',
            index=3,
            number=3,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PRODUCT_LIBSPOTIFY_EMBEDDED',
            index=4,
            number=5,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=2871,
    serialized_end=2998,
)
_sym_db.RegisterEnumDescriptor(_PRODUCT)

Product = enum_type_wrapper.EnumTypeWrapper(_PRODUCT)
_PRODUCTFLAGS = _descriptor.EnumDescriptor(
    name='ProductFlags',
    full_name='spotify.ProductFlags',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
        _descriptor.EnumValueDescriptor(
            name='PRODUCT_FLAG_NONE',
            index=0,
            number=0,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PRODUCT_FLAG_DEV_BUILD',
            index=1,
            number=1,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=3000,
    serialized_end=3065,
)
_sym_db.RegisterEnumDescriptor(_PRODUCTFLAGS)

ProductFlags = enum_type_wrapper.EnumTypeWrapper(_PRODUCTFLAGS)
_PLATFORM = _descriptor.EnumDescriptor(
    name='Platform',
    full_name='spotify.Platform',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_WIN32_X86',
            index=0,
            number=0,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_OSX_X86',
            index=1,
            number=1,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_LINUX_X86',
            index=2,
            number=2,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_IPHONE_ARM',
            index=3,
            number=3,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_S60_ARM',
            index=4,
            number=4,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_OSX_PPC',
            index=5,
            number=5,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_ANDROID_ARM',
            index=6,
            number=6,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_WINDOWS_CE_ARM',
            index=7,
            number=7,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_LINUX_X86_64',
            index=8,
            number=8,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_OSX_X86_64',
            index=9,
            number=9,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_PALM_ARM',
            index=10,
            number=10,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_LINUX_SH',
            index=11,
            number=11,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_FREEBSD_X86',
            index=12,
            number=12,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_FREEBSD_X86_64',
            index=13,
            number=13,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_BLACKBERRY_ARM',
            index=14,
            number=14,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_SONOS',
            index=15,
            number=15,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_LINUX_MIPS',
            index=16,
            number=16,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_LINUX_ARM',
            index=17,
            number=17,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_LOGITECH_ARM',
            index=18,
            number=18,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_LINUX_BLACKFIN',
            index=19,
            number=19,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_WP7_ARM',
            index=20,
            number=20,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_ONKYO_ARM',
            index=21,
            number=21,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_QNXNTO_ARM',
            index=22,
            number=22,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PLATFORM_BCO_ARM',
            index=23,
            number=23,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=3068,
    serialized_end=3672,
)
_sym_db.RegisterEnumDescriptor(_PLATFORM)

Platform = enum_type_wrapper.EnumTypeWrapper(_PLATFORM)
_FINGERPRINT = _descriptor.EnumDescriptor(
    name='Fingerprint',
    full_name='spotify.Fingerprint',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
        _descriptor.EnumValueDescriptor(
            name='FINGERPRINT_GRAIN',
            index=0,
            number=0,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='FINGERPRINT_HMAC_RIPEMD',
            index=1,
            number=1,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=3674,
    serialized_end=3739,
)
_sym_db.RegisterEnumDescriptor(_FINGERPRINT)

Fingerprint = enum_type_wrapper.EnumTypeWrapper(_FINGERPRINT)
_CRYPTOSUITE = _descriptor.EnumDescriptor(
    name='Cryptosuite',
    full_name='spotify.Cryptosuite',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
        _descriptor.EnumValueDescriptor(
            name='CRYPTO_SUITE_SHANNON',
            index=0,
            number=0,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='CRYPTO_SUITE_RC4_SHA1_HMAC',
            index=1,
            number=1,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=3741,
    serialized_end=3812,
)
_sym_db.RegisterEnumDescriptor(_CRYPTOSUITE)

Cryptosuite = enum_type_wrapper.EnumTypeWrapper(_CRYPTOSUITE)
_POWSCHEME = _descriptor.EnumDescriptor(
    name='Powscheme',
    full_name='spotify.Powscheme',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
        _descriptor.EnumValueDescriptor(
            name='POW_HASH_CASH',
            index=0,
            number=0,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=3814,
    serialized_end=3844,
)
_sym_db.RegisterEnumDescriptor(_POWSCHEME)

Powscheme = enum_type_wrapper.EnumTypeWrapper(_POWSCHEME)
_ERRORCODE = _descriptor.EnumDescriptor(
    name='ErrorCode',
    full_name='spotify.ErrorCode',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
        _descriptor.EnumValueDescriptor(
            name='ProtocolError',
            index=0,
            number=0,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='TryAnotherAP',
            index=1,
            number=2,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='BadConnectionId',
            index=2,
            number=5,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='TravelRestriction',
            index=3,
            number=9,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='PremiumAccountRequired',
            index=4,
            number=11,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='BadCredentials',
            index=5,
            number=12,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='CouldNotValidateCredentials',
            index=6,
            number=13,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='AccountExists',
            index=7,
            number=14,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='ExtraVerificationRequired',
            index=8,
            number=15,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='InvalidAppKey',
            index=9,
            number=16,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
        _descriptor.EnumValueDescriptor(
            name='ApplicationBanned',
            index=10,
            number=17,
            serialized_options=None,
            type=None,
            create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=3847,
    serialized_end=4112,
)
_sym_db.RegisterEnumDescriptor(_ERRORCODE)

ErrorCode = enum_type_wrapper.EnumTypeWrapper(_ERRORCODE)
PRODUCT_CLIENT = 0
PRODUCT_LIBSPOTIFY = 1
PRODUCT_MOBILE = 2
PRODUCT_PARTNER = 3
PRODUCT_LIBSPOTIFY_EMBEDDED = 5
PRODUCT_FLAG_NONE = 0
PRODUCT_FLAG_DEV_BUILD = 1
PLATFORM_WIN32_X86 = 0
PLATFORM_OSX_X86 = 1
PLATFORM_LINUX_X86 = 2
PLATFORM_IPHONE_ARM = 3
PLATFORM_S60_ARM = 4
PLATFORM_OSX_PPC = 5
PLATFORM_ANDROID_ARM = 6
PLATFORM_WINDOWS_CE_ARM = 7
PLATFORM_LINUX_X86_64 = 8
PLATFORM_OSX_X86_64 = 9
PLATFORM_PALM_ARM = 10
PLATFORM_LINUX_SH = 11
PLATFORM_FREEBSD_X86 = 12
PLATFORM_FREEBSD_X86_64 = 13
PLATFORM_BLACKBERRY_ARM = 14
PLATFORM_SONOS = 15
PLATFORM_LINUX_MIPS = 16
PLATFORM_LINUX_ARM = 17
PLATFORM_LOGITECH_ARM = 18
PLATFORM_LINUX_BLACKFIN = 19
PLATFORM_WP7_ARM = 20
PLATFORM_ONKYO_ARM = 21
PLATFORM_QNXNTO_ARM = 22
PLATFORM_BCO_ARM = 23
FINGERPRINT_GRAIN = 0
FINGERPRINT_HMAC_RIPEMD = 1
CRYPTO_SUITE_SHANNON = 0
CRYPTO_SUITE_RC4_SHA1_HMAC = 1
POW_HASH_CASH = 0
ProtocolError = 0
TryAnotherAP = 2
BadConnectionId = 5
TravelRestriction = 9
PremiumAccountRequired = 11
BadCredentials = 12
CouldNotValidateCredentials = 13
AccountExists = 14
ExtraVerificationRequired = 15
InvalidAppKey = 16
ApplicationBanned = 17

_CLIENTHELLO = _descriptor.Descriptor(
    name='ClientHello',
    full_name='spotify.ClientHello',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='build_info',
            full_name='spotify.ClientHello.build_info',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='fingerprints_supported',
            full_name='spotify.ClientHello.fingerprints_supported',
            index=1,
            number=20,
            type=14,
            cpp_type=8,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='cryptosuites_supported',
            full_name='spotify.ClientHello.cryptosuites_supported',
            index=2,
            number=30,
            type=14,
            cpp_type=8,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='powschemes_supported',
            full_name='spotify.ClientHello.powschemes_supported',
            index=3,
            number=40,
            type=14,
            cpp_type=8,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='login_crypto_hello',
            full_name='spotify.ClientHello.login_crypto_hello',
            index=4,
            number=50,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='client_nonce',
            full_name='spotify.ClientHello.client_nonce',
            index=5,
            number=60,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='padding',
            full_name='spotify.ClientHello.padding',
            index=6,
            number=70,
            type=12,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='feature_set',
            full_name='spotify.ClientHello.feature_set',
            index=7,
            number=80,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=31,
    serialized_end=383,
)

_BUILDINFO = _descriptor.Descriptor(
    name='BuildInfo',
    full_name='spotify.BuildInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='product',
            full_name='spotify.BuildInfo.product',
            index=0,
            number=10,
            type=14,
            cpp_type=8,
            label=2,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='product_flags',
            full_name='spotify.BuildInfo.product_flags',
            index=1,
            number=20,
            type=14,
            cpp_type=8,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='platform',
            full_name='spotify.BuildInfo.platform',
            index=2,
            number=30,
            type=14,
            cpp_type=8,
            label=2,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='version',
            full_name='spotify.BuildInfo.version',
            index=3,
            number=40,
            type=4,
            cpp_type=4,
            label=2,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=386,
    serialized_end=532,
)

_LOGINCRYPTOHELLOUNION = _descriptor.Descriptor(
    name='LoginCryptoHelloUnion',
    full_name='spotify.LoginCryptoHelloUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='diffie_hellman',
            full_name='spotify.LoginCryptoHelloUnion.diffie_hellman',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=534,
    serialized_end=621,
)

_LOGINCRYPTODIFFIEHELLMANHELLO = _descriptor.Descriptor(
    name='LoginCryptoDiffieHellmanHello',
    full_name='spotify.LoginCryptoDiffieHellmanHello',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='gc',
            full_name='spotify.LoginCryptoDiffieHellmanHello.gc',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='server_keys_known',
            full_name='spotify.LoginCryptoDiffieHellmanHello.server_keys_known',
            index=1,
            number=20,
            type=13,
            cpp_type=3,
            label=2,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=623,
    serialized_end=693,
)

_FEATURESET = _descriptor.Descriptor(
    name='FeatureSet',
    full_name='spotify.FeatureSet',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='autoupdate2',
            full_name='spotify.FeatureSet.autoupdate2',
            index=0,
            number=1,
            type=8,
            cpp_type=7,
            label=1,
            has_default_value=False,
            default_value=False,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='current_location',
            full_name='spotify.FeatureSet.current_location',
            index=1,
            number=2,
            type=8,
            cpp_type=7,
            label=1,
            has_default_value=False,
            default_value=False,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=695,
    serialized_end=754,
)

_APRESPONSEMESSAGE = _descriptor.Descriptor(
    name='APResponseMessage',
    full_name='spotify.APResponseMessage',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='challenge',
            full_name='spotify.APResponseMessage.challenge',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='upgrade',
            full_name='spotify.APResponseMessage.upgrade',
            index=1,
            number=20,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='login_failed',
            full_name='spotify.APResponseMessage.login_failed',
            index=2,
            number=30,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=757,
    serialized_end=913,
)

_APCHALLENGE = _descriptor.Descriptor(
    name='APChallenge',
    full_name='spotify.APChallenge',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='login_crypto_challenge',
            full_name='spotify.APChallenge.login_crypto_challenge',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='fingerprint_challenge',
            full_name='spotify.APChallenge.fingerprint_challenge',
            index=1,
            number=20,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='pow_challenge',
            full_name='spotify.APChallenge.pow_challenge',
            index=2,
            number=30,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='crypto_challenge',
            full_name='spotify.APChallenge.crypto_challenge',
            index=3,
            number=40,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='server_nonce',
            full_name='spotify.APChallenge.server_nonce',
            index=4,
            number=50,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='padding',
            full_name='spotify.APChallenge.padding',
            index=5,
            number=60,
            type=12,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=916,
    serialized_end=1211,
)

_LOGINCRYPTOCHALLENGEUNION = _descriptor.Descriptor(
    name='LoginCryptoChallengeUnion',
    full_name='spotify.LoginCryptoChallengeUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='diffie_hellman',
            full_name='spotify.LoginCryptoChallengeUnion.diffie_hellman',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1213,
    serialized_end=1308,
)

_LOGINCRYPTODIFFIEHELLMANCHALLENGE = _descriptor.Descriptor(
    name='LoginCryptoDiffieHellmanChallenge',
    full_name='spotify.LoginCryptoDiffieHellmanChallenge',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='gs',
            full_name='spotify.LoginCryptoDiffieHellmanChallenge.gs',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='server_signature_key',
            full_name=
            'spotify.LoginCryptoDiffieHellmanChallenge.server_signature_key',
            index=1,
            number=20,
            type=5,
            cpp_type=1,
            label=2,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='gs_signature',
            full_name='spotify.LoginCryptoDiffieHellmanChallenge.gs_signature',
            index=2,
            number=30,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1310,
    serialized_end=1409,
)

_FINGERPRINTCHALLENGEUNION = _descriptor.Descriptor(
    name='FingerprintChallengeUnion',
    full_name='spotify.FingerprintChallengeUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='grain',
            full_name='spotify.FingerprintChallengeUnion.grain',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='hmac_ripemd',
            full_name='spotify.FingerprintChallengeUnion.hmac_ripemd',
            index=1,
            number=20,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1412,
    serialized_end=1552,
)

_FINGERPRINTGRAINCHALLENGE = _descriptor.Descriptor(
    name='FingerprintGrainChallenge',
    full_name='spotify.FingerprintGrainChallenge',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='kek',
            full_name='spotify.FingerprintGrainChallenge.kek',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1554,
    serialized_end=1594,
)

_FINGERPRINTHMACRIPEMDCHALLENGE = _descriptor.Descriptor(
    name='FingerprintHmacRipemdChallenge',
    full_name='spotify.FingerprintHmacRipemdChallenge',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='challenge',
            full_name='spotify.FingerprintHmacRipemdChallenge.challenge',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1596,
    serialized_end=1647,
)

_POWCHALLENGEUNION = _descriptor.Descriptor(
    name='PoWChallengeUnion',
    full_name='spotify.PoWChallengeUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='hash_cash',
            full_name='spotify.PoWChallengeUnion.hash_cash',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1649,
    serialized_end=1718,
)

_POWHASHCASHCHALLENGE = _descriptor.Descriptor(
    name='PoWHashCashChallenge',
    full_name='spotify.PoWHashCashChallenge',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='prefix',
            full_name='spotify.PoWHashCashChallenge.prefix',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='length',
            full_name='spotify.PoWHashCashChallenge.length',
            index=1,
            number=20,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='target',
            full_name='spotify.PoWHashCashChallenge.target',
            index=2,
            number=30,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1720,
    serialized_end=1790,
)

_CRYPTOCHALLENGEUNION = _descriptor.Descriptor(
    name='CryptoChallengeUnion',
    full_name='spotify.CryptoChallengeUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='shannon',
            full_name='spotify.CryptoChallengeUnion.shannon',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='rc4_sha1_hmac',
            full_name='spotify.CryptoChallengeUnion.rc4_sha1_hmac',
            index=1,
            number=20,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1793,
    serialized_end=1925,
)

_CRYPTOSHANNONCHALLENGE = _descriptor.Descriptor(
    name='CryptoShannonChallenge',
    full_name='spotify.CryptoShannonChallenge',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1927,
    serialized_end=1951,
)

_CRYPTORC4SHA1HMACCHALLENGE = _descriptor.Descriptor(
    name='CryptoRc4Sha1HmacChallenge',
    full_name='spotify.CryptoRc4Sha1HmacChallenge',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1953,
    serialized_end=1981,
)

_UPGRADEREQUIREDMESSAGE = _descriptor.Descriptor(
    name='UpgradeRequiredMessage',
    full_name='spotify.UpgradeRequiredMessage',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='upgrade_signed_part',
            full_name='spotify.UpgradeRequiredMessage.upgrade_signed_part',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='signature',
            full_name='spotify.UpgradeRequiredMessage.signature',
            index=1,
            number=20,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='http_suffix',
            full_name='spotify.UpgradeRequiredMessage.http_suffix',
            index=2,
            number=30,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode('utf-8'),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1983,
    serialized_end=2076,
)

_APLOGINFAILED = _descriptor.Descriptor(
    name='APLoginFailed',
    full_name='spotify.APLoginFailed',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='error_code',
            full_name='spotify.APLoginFailed.error_code',
            index=0,
            number=10,
            type=14,
            cpp_type=8,
            label=2,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='retry_delay',
            full_name='spotify.APLoginFailed.retry_delay',
            index=1,
            number=20,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='expiry',
            full_name='spotify.APLoginFailed.expiry',
            index=2,
            number=30,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='error_description',
            full_name='spotify.APLoginFailed.error_description',
            index=3,
            number=40,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=b"".decode('utf-8'),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2078,
    serialized_end=2197,
)

_CLIENTRESPONSEPLAINTEXT = _descriptor.Descriptor(
    name='ClientResponsePlaintext',
    full_name='spotify.ClientResponsePlaintext',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='login_crypto_response',
            full_name='spotify.ClientResponsePlaintext.login_crypto_response',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='pow_response',
            full_name='spotify.ClientResponsePlaintext.pow_response',
            index=1,
            number=20,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='crypto_response',
            full_name='spotify.ClientResponsePlaintext.crypto_response',
            index=2,
            number=30,
            type=11,
            cpp_type=10,
            label=2,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2200,
    serialized_end=2395,
)

_LOGINCRYPTORESPONSEUNION = _descriptor.Descriptor(
    name='LoginCryptoResponseUnion',
    full_name='spotify.LoginCryptoResponseUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='diffie_hellman',
            full_name='spotify.LoginCryptoResponseUnion.diffie_hellman',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2397,
    serialized_end=2490,
)

_LOGINCRYPTODIFFIEHELLMANRESPONSE = _descriptor.Descriptor(
    name='LoginCryptoDiffieHellmanResponse',
    full_name='spotify.LoginCryptoDiffieHellmanResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='hmac',
            full_name='spotify.LoginCryptoDiffieHellmanResponse.hmac',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2492,
    serialized_end=2540,
)

_POWRESPONSEUNION = _descriptor.Descriptor(
    name='PoWResponseUnion',
    full_name='spotify.PoWResponseUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='hash_cash',
            full_name='spotify.PoWResponseUnion.hash_cash',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2542,
    serialized_end=2609,
)

_POWHASHCASHRESPONSE = _descriptor.Descriptor(
    name='PoWHashCashResponse',
    full_name='spotify.PoWHashCashResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='hash_suffix',
            full_name='spotify.PoWHashCashResponse.hash_suffix',
            index=0,
            number=10,
            type=12,
            cpp_type=9,
            label=2,
            has_default_value=False,
            default_value=b"",
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2611,
    serialized_end=2653,
)

_CRYPTORESPONSEUNION = _descriptor.Descriptor(
    name='CryptoResponseUnion',
    full_name='spotify.CryptoResponseUnion',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='shannon',
            full_name='spotify.CryptoResponseUnion.shannon',
            index=0,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='rc4_sha1_hmac',
            full_name='spotify.CryptoResponseUnion.rc4_sha1_hmac',
            index=1,
            number=20,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2656,
    serialized_end=2785,
)

_CRYPTOSHANNONRESPONSE = _descriptor.Descriptor(
    name='CryptoShannonResponse',
    full_name='spotify.CryptoShannonResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='dummy',
            full_name='spotify.CryptoShannonResponse.dummy',
            index=0,
            number=1,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2787,
    serialized_end=2825,
)

_CRYPTORC4SHA1HMACRESPONSE = _descriptor.Descriptor(
    name='CryptoRc4Sha1HmacResponse',
    full_name='spotify.CryptoRc4Sha1HmacResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='dummy',
            full_name='spotify.CryptoRc4Sha1HmacResponse.dummy',
            index=0,
            number=1,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
            create_key=_descriptor._internal_create_key),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto2',
    extension_ranges=[],
    oneofs=[],
    serialized_start=2827,
    serialized_end=2869,
)

_CLIENTHELLO.fields_by_name['build_info'].message_type = _BUILDINFO
_CLIENTHELLO.fields_by_name['fingerprints_supported'].enum_type = _FINGERPRINT
_CLIENTHELLO.fields_by_name['cryptosuites_supported'].enum_type = _CRYPTOSUITE
_CLIENTHELLO.fields_by_name['powschemes_supported'].enum_type = _POWSCHEME
_CLIENTHELLO.fields_by_name[
    'login_crypto_hello'].message_type = _LOGINCRYPTOHELLOUNION
_CLIENTHELLO.fields_by_name['feature_set'].message_type = _FEATURESET
_BUILDINFO.fields_by_name['product'].enum_type = _PRODUCT
_BUILDINFO.fields_by_name['product_flags'].enum_type = _PRODUCTFLAGS
_BUILDINFO.fields_by_name['platform'].enum_type = _PLATFORM
_LOGINCRYPTOHELLOUNION.fields_by_name[
    'diffie_hellman'].message_type = _LOGINCRYPTODIFFIEHELLMANHELLO
_APRESPONSEMESSAGE.fields_by_name['challenge'].message_type = _APCHALLENGE
_APRESPONSEMESSAGE.fields_by_name[
    'upgrade'].message_type = _UPGRADEREQUIREDMESSAGE
_APRESPONSEMESSAGE.fields_by_name['login_failed'].message_type = _APLOGINFAILED
_APCHALLENGE.fields_by_name[
    'login_crypto_challenge'].message_type = _LOGINCRYPTOCHALLENGEUNION
_APCHALLENGE.fields_by_name[
    'fingerprint_challenge'].message_type = _FINGERPRINTCHALLENGEUNION
_APCHALLENGE.fields_by_name['pow_challenge'].message_type = _POWCHALLENGEUNION
_APCHALLENGE.fields_by_name[
    'crypto_challenge'].message_type = _CRYPTOCHALLENGEUNION
_LOGINCRYPTOCHALLENGEUNION.fields_by_name[
    'diffie_hellman'].message_type = _LOGINCRYPTODIFFIEHELLMANCHALLENGE
_FINGERPRINTCHALLENGEUNION.fields_by_name[
    'grain'].message_type = _FINGERPRINTGRAINCHALLENGE
_FINGERPRINTCHALLENGEUNION.fields_by_name[
    'hmac_ripemd'].message_type = _FINGERPRINTHMACRIPEMDCHALLENGE
_POWCHALLENGEUNION.fields_by_name[
    'hash_cash'].message_type = _POWHASHCASHCHALLENGE
_CRYPTOCHALLENGEUNION.fields_by_name[
    'shannon'].message_type = _CRYPTOSHANNONCHALLENGE
_CRYPTOCHALLENGEUNION.fields_by_name[
    'rc4_sha1_hmac'].message_type = _CRYPTORC4SHA1HMACCHALLENGE
_APLOGINFAILED.fields_by_name['error_code'].enum_type = _ERRORCODE
_CLIENTRESPONSEPLAINTEXT.fields_by_name[
    'login_crypto_response'].message_type = _LOGINCRYPTORESPONSEUNION
_CLIENTRESPONSEPLAINTEXT.fields_by_name[
    'pow_response'].message_type = _POWRESPONSEUNION
_CLIENTRESPONSEPLAINTEXT.fields_by_name[
    'crypto_response'].message_type = _CRYPTORESPONSEUNION
_LOGINCRYPTORESPONSEUNION.fields_by_name[
    'diffie_hellman'].message_type = _LOGINCRYPTODIFFIEHELLMANRESPONSE
_POWRESPONSEUNION.fields_by_name[
    'hash_cash'].message_type = _POWHASHCASHRESPONSE
_CRYPTORESPONSEUNION.fields_by_name[
    'shannon'].message_type = _CRYPTOSHANNONRESPONSE
_CRYPTORESPONSEUNION.fields_by_name[
    'rc4_sha1_hmac'].message_type = _CRYPTORC4SHA1HMACRESPONSE
DESCRIPTOR.message_types_by_name['ClientHello'] = _CLIENTHELLO
DESCRIPTOR.message_types_by_name['BuildInfo'] = _BUILDINFO
DESCRIPTOR.message_types_by_name[
    'LoginCryptoHelloUnion'] = _LOGINCRYPTOHELLOUNION
DESCRIPTOR.message_types_by_name[
    'LoginCryptoDiffieHellmanHello'] = _LOGINCRYPTODIFFIEHELLMANHELLO
DESCRIPTOR.message_types_by_name['FeatureSet'] = _FEATURESET
DESCRIPTOR.message_types_by_name['APResponseMessage'] = _APRESPONSEMESSAGE
DESCRIPTOR.message_types_by_name['APChallenge'] = _APCHALLENGE
DESCRIPTOR.message_types_by_name[
    'LoginCryptoChallengeUnion'] = _LOGINCRYPTOCHALLENGEUNION
DESCRIPTOR.message_types_by_name[
    'LoginCryptoDiffieHellmanChallenge'] = _LOGINCRYPTODIFFIEHELLMANCHALLENGE
DESCRIPTOR.message_types_by_name[
    'FingerprintChallengeUnion'] = _FINGERPRINTCHALLENGEUNION
DESCRIPTOR.message_types_by_name[
    'FingerprintGrainChallenge'] = _FINGERPRINTGRAINCHALLENGE
DESCRIPTOR.message_types_by_name[
    'FingerprintHmacRipemdChallenge'] = _FINGERPRINTHMACRIPEMDCHALLENGE
DESCRIPTOR.message_types_by_name['PoWChallengeUnion'] = _POWCHALLENGEUNION
DESCRIPTOR.message_types_by_name[
    'PoWHashCashChallenge'] = _POWHASHCASHCHALLENGE
DESCRIPTOR.message_types_by_name[
    'CryptoChallengeUnion'] = _CRYPTOCHALLENGEUNION
DESCRIPTOR.message_types_by_name[
    'CryptoShannonChallenge'] = _CRYPTOSHANNONCHALLENGE
DESCRIPTOR.message_types_by_name[
    'CryptoRc4Sha1HmacChallenge'] = _CRYPTORC4SHA1HMACCHALLENGE
DESCRIPTOR.message_types_by_name[
    'UpgradeRequiredMessage'] = _UPGRADEREQUIREDMESSAGE
DESCRIPTOR.message_types_by_name['APLoginFailed'] = _APLOGINFAILED
DESCRIPTOR.message_types_by_name[
    'ClientResponsePlaintext'] = _CLIENTRESPONSEPLAINTEXT
DESCRIPTOR.message_types_by_name[
    'LoginCryptoResponseUnion'] = _LOGINCRYPTORESPONSEUNION
DESCRIPTOR.message_types_by_name[
    'LoginCryptoDiffieHellmanResponse'] = _LOGINCRYPTODIFFIEHELLMANRESPONSE
DESCRIPTOR.message_types_by_name['PoWResponseUnion'] = _POWRESPONSEUNION
DESCRIPTOR.message_types_by_name['PoWHashCashResponse'] = _POWHASHCASHRESPONSE
DESCRIPTOR.message_types_by_name['CryptoResponseUnion'] = _CRYPTORESPONSEUNION
DESCRIPTOR.message_types_by_name[
    'CryptoShannonResponse'] = _CRYPTOSHANNONRESPONSE
DESCRIPTOR.message_types_by_name[
    'CryptoRc4Sha1HmacResponse'] = _CRYPTORC4SHA1HMACRESPONSE
DESCRIPTOR.enum_types_by_name['Product'] = _PRODUCT
DESCRIPTOR.enum_types_by_name['ProductFlags'] = _PRODUCTFLAGS
DESCRIPTOR.enum_types_by_name['Platform'] = _PLATFORM
DESCRIPTOR.enum_types_by_name['Fingerprint'] = _FINGERPRINT
DESCRIPTOR.enum_types_by_name['Cryptosuite'] = _CRYPTOSUITE
DESCRIPTOR.enum_types_by_name['Powscheme'] = _POWSCHEME
DESCRIPTOR.enum_types_by_name['ErrorCode'] = _ERRORCODE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ClientHello = _reflection.GeneratedProtocolMessageType(
    'ClientHello',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CLIENTHELLO,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.ClientHello)
    })
_sym_db.RegisterMessage(ClientHello)

BuildInfo = _reflection.GeneratedProtocolMessageType(
    'BuildInfo',
    (_message.Message, ),
    {
        'DESCRIPTOR': _BUILDINFO,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.BuildInfo)
    })
_sym_db.RegisterMessage(BuildInfo)

LoginCryptoHelloUnion = _reflection.GeneratedProtocolMessageType(
    'LoginCryptoHelloUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _LOGINCRYPTOHELLOUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.LoginCryptoHelloUnion)
    })
_sym_db.RegisterMessage(LoginCryptoHelloUnion)

LoginCryptoDiffieHellmanHello = _reflection.GeneratedProtocolMessageType(
    'LoginCryptoDiffieHellmanHello',
    (_message.Message, ),
    {
        'DESCRIPTOR': _LOGINCRYPTODIFFIEHELLMANHELLO,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.LoginCryptoDiffieHellmanHello)
    })
_sym_db.RegisterMessage(LoginCryptoDiffieHellmanHello)

FeatureSet = _reflection.GeneratedProtocolMessageType(
    'FeatureSet',
    (_message.Message, ),
    {
        'DESCRIPTOR': _FEATURESET,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.FeatureSet)
    })
_sym_db.RegisterMessage(FeatureSet)

APResponseMessage = _reflection.GeneratedProtocolMessageType(
    'APResponseMessage',
    (_message.Message, ),
    {
        'DESCRIPTOR': _APRESPONSEMESSAGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.APResponseMessage)
    })
_sym_db.RegisterMessage(APResponseMessage)

APChallenge = _reflection.GeneratedProtocolMessageType(
    'APChallenge',
    (_message.Message, ),
    {
        'DESCRIPTOR': _APCHALLENGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.APChallenge)
    })
_sym_db.RegisterMessage(APChallenge)

LoginCryptoChallengeUnion = _reflection.GeneratedProtocolMessageType(
    'LoginCryptoChallengeUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _LOGINCRYPTOCHALLENGEUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.LoginCryptoChallengeUnion)
    })
_sym_db.RegisterMessage(LoginCryptoChallengeUnion)

LoginCryptoDiffieHellmanChallenge = _reflection.GeneratedProtocolMessageType(
    'LoginCryptoDiffieHellmanChallenge',
    (_message.Message, ),
    {
        'DESCRIPTOR': _LOGINCRYPTODIFFIEHELLMANCHALLENGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.LoginCryptoDiffieHellmanChallenge)
    })
_sym_db.RegisterMessage(LoginCryptoDiffieHellmanChallenge)

FingerprintChallengeUnion = _reflection.GeneratedProtocolMessageType(
    'FingerprintChallengeUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _FINGERPRINTCHALLENGEUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.FingerprintChallengeUnion)
    })
_sym_db.RegisterMessage(FingerprintChallengeUnion)

FingerprintGrainChallenge = _reflection.GeneratedProtocolMessageType(
    'FingerprintGrainChallenge',
    (_message.Message, ),
    {
        'DESCRIPTOR': _FINGERPRINTGRAINCHALLENGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.FingerprintGrainChallenge)
    })
_sym_db.RegisterMessage(FingerprintGrainChallenge)

FingerprintHmacRipemdChallenge = _reflection.GeneratedProtocolMessageType(
    'FingerprintHmacRipemdChallenge',
    (_message.Message, ),
    {
        'DESCRIPTOR': _FINGERPRINTHMACRIPEMDCHALLENGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.FingerprintHmacRipemdChallenge)
    })
_sym_db.RegisterMessage(FingerprintHmacRipemdChallenge)

PoWChallengeUnion = _reflection.GeneratedProtocolMessageType(
    'PoWChallengeUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _POWCHALLENGEUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.PoWChallengeUnion)
    })
_sym_db.RegisterMessage(PoWChallengeUnion)

PoWHashCashChallenge = _reflection.GeneratedProtocolMessageType(
    'PoWHashCashChallenge',
    (_message.Message, ),
    {
        'DESCRIPTOR': _POWHASHCASHCHALLENGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.PoWHashCashChallenge)
    })
_sym_db.RegisterMessage(PoWHashCashChallenge)

CryptoChallengeUnion = _reflection.GeneratedProtocolMessageType(
    'CryptoChallengeUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CRYPTOCHALLENGEUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.CryptoChallengeUnion)
    })
_sym_db.RegisterMessage(CryptoChallengeUnion)

CryptoShannonChallenge = _reflection.GeneratedProtocolMessageType(
    'CryptoShannonChallenge',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CRYPTOSHANNONCHALLENGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.CryptoShannonChallenge)
    })
_sym_db.RegisterMessage(CryptoShannonChallenge)

CryptoRc4Sha1HmacChallenge = _reflection.GeneratedProtocolMessageType(
    'CryptoRc4Sha1HmacChallenge',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CRYPTORC4SHA1HMACCHALLENGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.CryptoRc4Sha1HmacChallenge)
    })
_sym_db.RegisterMessage(CryptoRc4Sha1HmacChallenge)

UpgradeRequiredMessage = _reflection.GeneratedProtocolMessageType(
    'UpgradeRequiredMessage',
    (_message.Message, ),
    {
        'DESCRIPTOR': _UPGRADEREQUIREDMESSAGE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.UpgradeRequiredMessage)
    })
_sym_db.RegisterMessage(UpgradeRequiredMessage)

APLoginFailed = _reflection.GeneratedProtocolMessageType(
    'APLoginFailed',
    (_message.Message, ),
    {
        'DESCRIPTOR': _APLOGINFAILED,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.APLoginFailed)
    })
_sym_db.RegisterMessage(APLoginFailed)

ClientResponsePlaintext = _reflection.GeneratedProtocolMessageType(
    'ClientResponsePlaintext',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CLIENTRESPONSEPLAINTEXT,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.ClientResponsePlaintext)
    })
_sym_db.RegisterMessage(ClientResponsePlaintext)

LoginCryptoResponseUnion = _reflection.GeneratedProtocolMessageType(
    'LoginCryptoResponseUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _LOGINCRYPTORESPONSEUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.LoginCryptoResponseUnion)
    })
_sym_db.RegisterMessage(LoginCryptoResponseUnion)

LoginCryptoDiffieHellmanResponse = _reflection.GeneratedProtocolMessageType(
    'LoginCryptoDiffieHellmanResponse',
    (_message.Message, ),
    {
        'DESCRIPTOR': _LOGINCRYPTODIFFIEHELLMANRESPONSE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.LoginCryptoDiffieHellmanResponse)
    })
_sym_db.RegisterMessage(LoginCryptoDiffieHellmanResponse)

PoWResponseUnion = _reflection.GeneratedProtocolMessageType(
    'PoWResponseUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _POWRESPONSEUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.PoWResponseUnion)
    })
_sym_db.RegisterMessage(PoWResponseUnion)

PoWHashCashResponse = _reflection.GeneratedProtocolMessageType(
    'PoWHashCashResponse',
    (_message.Message, ),
    {
        'DESCRIPTOR': _POWHASHCASHRESPONSE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.PoWHashCashResponse)
    })
_sym_db.RegisterMessage(PoWHashCashResponse)

CryptoResponseUnion = _reflection.GeneratedProtocolMessageType(
    'CryptoResponseUnion',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CRYPTORESPONSEUNION,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.CryptoResponseUnion)
    })
_sym_db.RegisterMessage(CryptoResponseUnion)

CryptoShannonResponse = _reflection.GeneratedProtocolMessageType(
    'CryptoShannonResponse',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CRYPTOSHANNONRESPONSE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.CryptoShannonResponse)
    })
_sym_db.RegisterMessage(CryptoShannonResponse)

CryptoRc4Sha1HmacResponse = _reflection.GeneratedProtocolMessageType(
    'CryptoRc4Sha1HmacResponse',
    (_message.Message, ),
    {
        'DESCRIPTOR': _CRYPTORC4SHA1HMACRESPONSE,
        '__module__': 'keyexchange_pb2'
        # @@protoc_insertion_point(class_scope:spotify.CryptoRc4Sha1HmacResponse)
    })
_sym_db.RegisterMessage(CryptoRc4Sha1HmacResponse)

DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
