text: # -*- coding: utf-8 -*-
  # Generated by the protocol buffer compiler.  DO NOT EDIT!
  # source: spotify/login5/v3/login5.proto
  """Generated protocol buffer code."""
  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
  from google.protobuf.internal import enum_type_wrapper
  from spotify.login5.v3 import \
      client_info_pb2 as spotify_dot_login5_dot_v3_dot_client__info__pb2
  from spotify.login5.v3 import \
      user_info_pb2 as spotify_dot_login5_dot_v3_dot_user__info__pb2
  from spotify.login5.v3.challenges import \
      code_pb2 as spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2
  from spotify.login5.v3.challenges import \
      hashcash_pb2 as spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2
  from spotify.login5.v3.credentials import \
      credentials_pb2 as \
      spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2
  from spotify.login5.v3.identifiers import \
      identifiers_pb2 as \
      spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2
  
  # @@protoc_insertion_point(imports)
  
  _sym_db = _symbol_database.Default()
  
  DESCRIPTOR = _descriptor.FileDescriptor(
      name="spotify/login5/v3/login5.proto",
      package="spotify.login5.v3",
      syntax="proto3",
      serialized_options=b"\n\024com.spotify.login5v3",
      create_key=_descriptor._internal_create_key,
      serialized_pb=
      b'\n\x1espotify/login5/v3/login5.proto\x12\x11spotify.login5.v3\x1a#spotify/login5/v3/client_info.proto\x1a!spotify/login5/v3/user_info.proto\x1a\'spotify/login5/v3/challenges/code.proto\x1a+spotify/login5/v3/challenges/hashcash.proto\x1a/spotify/login5/v3/credentials/credentials.proto\x1a/spotify/login5/v3/identifiers/identifiers.proto">\n\nChallenges\x12\x30\n\nchallenges\x18\x01 \x03(\x0b\x32\x1c.spotify.login5.v3.Challenge"\x89\x01\n\tChallenge\x12\x41\n\x08hashcash\x18\x01 \x01(\x0b\x32/.spotify.login5.v3.challenges.HashcashChallenge\x12\x39\n\x04\x63ode\x18\x02 \x01(\x0b\x32+.spotify.login5.v3.challenges.CodeChallenge"M\n\x12\x43hallengeSolutions\x12\x37\n\tsolutions\x18\x01 \x03(\x0b\x32$.spotify.login5.v3.ChallengeSolution"\x8f\x01\n\x11\x43hallengeSolution\x12@\n\x08hashcash\x18\x01 \x01(\x0b\x32..spotify.login5.v3.challenges.HashcashSolution\x12\x38\n\x04\x63ode\x18\x02 \x01(\x0b\x32*.spotify.login5.v3.challenges.CodeSolution"\xad\x05\n\x0cLoginRequest\x12\x32\n\x0b\x63lient_info\x18\x01 \x01(\x0b\x32\x1d.spotify.login5.v3.ClientInfo\x12\x15\n\rlogin_context\x18\x02 \x01(\x0c\x12\x42\n\x13\x63hallenge_solutions\x18\x03 \x01(\x0b\x32%.spotify.login5.v3.ChallengeSolutions\x12J\n\x11stored_credential\x18\x64 \x01(\x0b\x32/.spotify.login5.v3.credentials.StoredCredential\x12\x39\n\x08password\x18\x65 \x01(\x0b\x32\'.spotify.login5.v3.credentials.Password\x12Q\n\x15\x66\x61\x63\x65\x62ook_access_token\x18\x66 \x01(\x0b\x32\x32.spotify.login5.v3.credentials.FacebookAccessToken\x12@\n\x0cphone_number\x18g \x01(\x0b\x32*.spotify.login5.v3.identifiers.PhoneNumber\x12\x43\n\x0eone_time_token\x18h \x01(\x0b\x32+.spotify.login5.v3.credentials.OneTimeToken\x12U\n\x17parent_child_credential\x18i \x01(\x0b\x32\x34.spotify.login5.v3.credentials.ParentChildCredential\x12V\n\x18\x61pple_sign_in_credential\x18j \x01(\x0b\x32\x34.spotify.login5.v3.credentials.AppleSignInCredential"m\n\x07LoginOk\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\t\x12\x19\n\x11stored_credential\x18\x03 \x01(\x0c\x12\x1f\n\x17\x61\x63\x63\x65ss_token_expires_in\x18\x04 \x01(\x05"\xf8\x02\n\rLoginResponse\x12&\n\x02ok\x18\x01 \x01(\x0b\x32\x1a.spotify.login5.v3.LoginOk\x12,\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x1d.spotify.login5.v3.LoginError\x12\x31\n\nchallenges\x18\x03 \x01(\x0b\x32\x1d.spotify.login5.v3.Challenges\x12;\n\x08warnings\x18\x04 \x03(\x0e\x32).spotify.login5.v3.LoginResponse.Warnings\x12\x15\n\rlogin_context\x18\x05 \x01(\x0c\x12\x18\n\x10identifier_token\x18\x06 \x01(\t\x12.\n\tuser_info\x18\x07 \x01(\x0b\x32\x1b.spotify.login5.v3.UserInfo"@\n\x08Warnings\x12\x13\n\x0fUNKNOWN_WARNING\x10\x00\x12\x1f\n\x1b\x44\x45PRECATED_PROTOCOL_VERSION\x10\x01*\xd3\x01\n\nLoginError\x12\x11\n\rUNKNOWN_ERROR\x10\x00\x12\x17\n\x13INVALID_CREDENTIALS\x10\x01\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10\x02\x12\x1e\n\x1aUNSUPPORTED_LOGIN_PROTOCOL\x10\x03\x12\x0b\n\x07TIMEOUT\x10\x04\x12\x16\n\x12UNKNOWN_IDENTIFIER\x10\x05\x12\x15\n\x11TOO_MANY_ATTEMPTS\x10\x06\x12\x17\n\x13INVALID_PHONENUMBER\x10\x07\x12\x13\n\x0fTRY_AGAIN_LATER\x10\x08\x42\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
      dependencies=[
          spotify_dot_login5_dot_v3_dot_client__info__pb2.DESCRIPTOR,
          spotify_dot_login5_dot_v3_dot_user__info__pb2.DESCRIPTOR,
          spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2.DESCRIPTOR,
          spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2.DESCRIPTOR,
          spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
          DESCRIPTOR,
          spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2.
          DESCRIPTOR,
      ],
  )
  
  _LOGINERROR = _descriptor.EnumDescriptor(
      name="LoginError",
      full_name="spotify.login5.v3.LoginError",
      filename=None,
      file=DESCRIPTOR,
      create_key=_descriptor._internal_create_key,
      values=[
          _descriptor.EnumValueDescriptor(
              name="UNKNOWN_ERROR",
              index=0,
              number=0,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="INVALID_CREDENTIALS",
              index=1,
              number=1,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="BAD_REQUEST",
              index=2,
              number=2,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="UNSUPPORTED_LOGIN_PROTOCOL",
              index=3,
              number=3,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="TIMEOUT",
              index=4,
              number=4,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="UNKNOWN_IDENTIFIER",
              index=5,
              number=5,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="TOO_MANY_ATTEMPTS",
              index=6,
              number=6,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="INVALID_PHONENUMBER",
              index=7,
              number=7,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="TRY_AGAIN_LATER",
              index=8,
              number=8,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
      ],
      containing_type=None,
      serialized_options=None,
      serialized_start=1917,
      serialized_end=2128,
  )
  _sym_db.RegisterEnumDescriptor(_LOGINERROR)
  
  LoginError = enum_type_wrapper.EnumTypeWrapper(_LOGINERROR)
  UNKNOWN_ERROR = 0
  INVALID_CREDENTIALS = 1
  BAD_REQUEST = 2
  UNSUPPORTED_LOGIN_PROTOCOL = 3
  TIMEOUT = 4
  UNKNOWN_IDENTIFIER = 5
  TOO_MANY_ATTEMPTS = 6
  INVALID_PHONENUMBER = 7
  TRY_AGAIN_LATER = 8
  
  _LOGINRESPONSE_WARNINGS = _descriptor.EnumDescriptor(
      name="Warnings",
      full_name="spotify.login5.v3.LoginResponse.Warnings",
      filename=None,
      file=DESCRIPTOR,
      create_key=_descriptor._internal_create_key,
      values=[
          _descriptor.EnumValueDescriptor(
              name="UNKNOWN_WARNING",
              index=0,
              number=0,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
          _descriptor.EnumValueDescriptor(
              name="DEPRECATED_PROTOCOL_VERSION",
              index=1,
              number=1,
              serialized_options=None,
              type=None,
              create_key=_descriptor._internal_create_key,
          ),
      ],
      containing_type=None,
      serialized_options=None,
      serialized_start=1850,
      serialized_end=1914,
  )
  _sym_db.RegisterEnumDescriptor(_LOGINRESPONSE_WARNINGS)
  
  _CHALLENGES = _descriptor.Descriptor(
      name="Challenges",
      full_name="spotify.login5.v3.Challenges",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      create_key=_descriptor._internal_create_key,
      fields=[
          _descriptor.FieldDescriptor(
              name="challenges",
              full_name="spotify.login5.v3.Challenges.challenges",
              index=0,
              number=1,
              type=11,
              cpp_type=10,
              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,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      serialized_options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=309,
      serialized_end=371,
  )
  
  _CHALLENGE = _descriptor.Descriptor(
      name="Challenge",
      full_name="spotify.login5.v3.Challenge",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      create_key=_descriptor._internal_create_key,
      fields=[
          _descriptor.FieldDescriptor(
              name="hashcash",
              full_name="spotify.login5.v3.Challenge.hashcash",
              index=0,
              number=1,
              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="code",
              full_name="spotify.login5.v3.Challenge.code",
              index=1,
              number=2,
              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="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=374,
      serialized_end=511,
  )
  
  _CHALLENGESOLUTIONS = _descriptor.Descriptor(
      name="ChallengeSolutions",
      full_name="spotify.login5.v3.ChallengeSolutions",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      create_key=_descriptor._internal_create_key,
      fields=[
          _descriptor.FieldDescriptor(
              name="solutions",
              full_name="spotify.login5.v3.ChallengeSolutions.solutions",
              index=0,
              number=1,
              type=11,
              cpp_type=10,
              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,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      serialized_options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=513,
      serialized_end=590,
  )
  
  _CHALLENGESOLUTION = _descriptor.Descriptor(
      name="ChallengeSolution",
      full_name="spotify.login5.v3.ChallengeSolution",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      create_key=_descriptor._internal_create_key,
      fields=[
          _descriptor.FieldDescriptor(
              name="hashcash",
              full_name="spotify.login5.v3.ChallengeSolution.hashcash",
              index=0,
              number=1,
              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="code",
              full_name="spotify.login5.v3.ChallengeSolution.code",
              index=1,
              number=2,
              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="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=593,
      serialized_end=736,
  )
  
  _LOGINREQUEST = _descriptor.Descriptor(
      name="LoginRequest",
      full_name="spotify.login5.v3.LoginRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      create_key=_descriptor._internal_create_key,
      fields=[
          _descriptor.FieldDescriptor(
              name="client_info",
              full_name="spotify.login5.v3.LoginRequest.client_info",
              index=0,
              number=1,
              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_context",
              full_name="spotify.login5.v3.LoginRequest.login_context",
              index=1,
              number=2,
              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="challenge_solutions",
              full_name="spotify.login5.v3.LoginRequest.challenge_solutions",
              index=2,
              number=3,
              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="stored_credential",
              full_name="spotify.login5.v3.LoginRequest.stored_credential",
              index=3,
              number=100,
              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="password",
              full_name="spotify.login5.v3.LoginRequest.password",
              index=4,
              number=101,
              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="facebook_access_token",
              full_name="spotify.login5.v3.LoginRequest.facebook_access_token",
              index=5,
              number=102,
              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="phone_number",
              full_name="spotify.login5.v3.LoginRequest.phone_number",
              index=6,
              number=103,
              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="one_time_token",
              full_name="spotify.login5.v3.LoginRequest.one_time_token",
              index=7,
              number=104,
              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="parent_child_credential",
              full_name="spotify.login5.v3.LoginRequest.parent_child_credential",
              index=8,
              number=105,
              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="apple_sign_in_credential",
              full_name="spotify.login5.v3.LoginRequest.apple_sign_in_credential",
              index=9,
              number=106,
              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="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=739,
      serialized_end=1424,
  )
  
  _LOGINOK = _descriptor.Descriptor(
      name="LoginOk",
      full_name="spotify.login5.v3.LoginOk",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      create_key=_descriptor._internal_create_key,
      fields=[
          _descriptor.FieldDescriptor(
              name="username",
              full_name="spotify.login5.v3.LoginOk.username",
              index=0,
              number=1,
              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,
          ),
          _descriptor.FieldDescriptor(
              name="access_token",
              full_name="spotify.login5.v3.LoginOk.access_token",
              index=1,
              number=2,
              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,
          ),
          _descriptor.FieldDescriptor(
              name="stored_credential",
              full_name="spotify.login5.v3.LoginOk.stored_credential",
              index=2,
              number=3,
              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="access_token_expires_in",
              full_name="spotify.login5.v3.LoginOk.access_token_expires_in",
              index=3,
              number=4,
              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="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1426,
      serialized_end=1535,
  )
  
  _LOGINRESPONSE = _descriptor.Descriptor(
      name="LoginResponse",
      full_name="spotify.login5.v3.LoginResponse",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      create_key=_descriptor._internal_create_key,
      fields=[
          _descriptor.FieldDescriptor(
              name="ok",
              full_name="spotify.login5.v3.LoginResponse.ok",
              index=0,
              number=1,
              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="error",
              full_name="spotify.login5.v3.LoginResponse.error",
              index=1,
              number=2,
              type=14,
              cpp_type=8,
              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="challenges",
              full_name="spotify.login5.v3.LoginResponse.challenges",
              index=2,
              number=3,
              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="warnings",
              full_name="spotify.login5.v3.LoginResponse.warnings",
              index=3,
              number=4,
              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_context",
              full_name="spotify.login5.v3.LoginResponse.login_context",
              index=4,
              number=5,
              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="identifier_token",
              full_name="spotify.login5.v3.LoginResponse.identifier_token",
              index=5,
              number=6,
              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,
          ),
          _descriptor.FieldDescriptor(
              name="user_info",
              full_name="spotify.login5.v3.LoginResponse.user_info",
              index=6,
              number=7,
              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=[
          _LOGINRESPONSE_WARNINGS,
      ],
      serialized_options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1538,
      serialized_end=1914,
  )
  
  _CHALLENGES.fields_by_name["challenges"].message_type = _CHALLENGE
  _CHALLENGE.fields_by_name["hashcash"].message_type = (
      spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2.
      _HASHCASHCHALLENGE)
  _CHALLENGE.fields_by_name[
      "code"].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2._CODECHALLENGE
  _CHALLENGESOLUTIONS.fields_by_name[
      "solutions"].message_type = _CHALLENGESOLUTION
  _CHALLENGESOLUTION.fields_by_name["hashcash"].message_type = (
      spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2.
      _HASHCASHSOLUTION)
  _CHALLENGESOLUTION.fields_by_name[
      "code"].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2._CODESOLUTION
  _LOGINREQUEST.fields_by_name[
      "client_info"].message_type = spotify_dot_login5_dot_v3_dot_client__info__pb2._CLIENTINFO
  _LOGINREQUEST.fields_by_name[
      "challenge_solutions"].message_type = _CHALLENGESOLUTIONS
  _LOGINREQUEST.fields_by_name["stored_credential"].message_type = (
      spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
      _STOREDCREDENTIAL)
  _LOGINREQUEST.fields_by_name["password"].message_type = (
      spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._PASSWORD)
  _LOGINREQUEST.fields_by_name["facebook_access_token"].message_type = (
      spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
      _FACEBOOKACCESSTOKEN)
  _LOGINREQUEST.fields_by_name["phone_number"].message_type = (
      spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2._PHONENUMBER
  )
  _LOGINREQUEST.fields_by_name["one_time_token"].message_type = (
      spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
      _ONETIMETOKEN)
  _LOGINREQUEST.fields_by_name["parent_child_credential"].message_type = (
      spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
      _PARENTCHILDCREDENTIAL)
  _LOGINREQUEST.fields_by_name["apple_sign_in_credential"].message_type = (
      spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
      _APPLESIGNINCREDENTIAL)
  _LOGINRESPONSE.fields_by_name["ok"].message_type = _LOGINOK
  _LOGINRESPONSE.fields_by_name["error"].enum_type = _LOGINERROR
  _LOGINRESPONSE.fields_by_name["challenges"].message_type = _CHALLENGES
  _LOGINRESPONSE.fields_by_name["warnings"].enum_type = _LOGINRESPONSE_WARNINGS
  _LOGINRESPONSE.fields_by_name[
      "user_info"].message_type = spotify_dot_login5_dot_v3_dot_user__info__pb2._USERINFO
  _LOGINRESPONSE_WARNINGS.containing_type = _LOGINRESPONSE
  DESCRIPTOR.message_types_by_name["Challenges"] = _CHALLENGES
  DESCRIPTOR.message_types_by_name["Challenge"] = _CHALLENGE
  DESCRIPTOR.message_types_by_name["ChallengeSolutions"] = _CHALLENGESOLUTIONS
  DESCRIPTOR.message_types_by_name["ChallengeSolution"] = _CHALLENGESOLUTION
  DESCRIPTOR.message_types_by_name["LoginRequest"] = _LOGINREQUEST
  DESCRIPTOR.message_types_by_name["LoginOk"] = _LOGINOK
  DESCRIPTOR.message_types_by_name["LoginResponse"] = _LOGINRESPONSE
  DESCRIPTOR.enum_types_by_name["LoginError"] = _LOGINERROR
  _sym_db.RegisterFileDescriptor(DESCRIPTOR)
  
  Challenges = _reflection.GeneratedProtocolMessageType(
      "Challenges",
      (_message.Message, ),
      {
          "DESCRIPTOR": _CHALLENGES,
          "__module__": "spotify.login5.v3.login5_pb2"
          # @@protoc_insertion_point(class_scope:spotify.login5.v3.Challenges)
      },
  )
  _sym_db.RegisterMessage(Challenges)
  
  Challenge = _reflection.GeneratedProtocolMessageType(
      "Challenge",
      (_message.Message, ),
      {
          "DESCRIPTOR": _CHALLENGE,
          "__module__": "spotify.login5.v3.login5_pb2"
          # @@protoc_insertion_point(class_scope:spotify.login5.v3.Challenge)
      },
  )
  _sym_db.RegisterMessage(Challenge)
  
  ChallengeSolutions = _reflection.GeneratedProtocolMessageType(
      "ChallengeSolutions",
      (_message.Message, ),
      {
          "DESCRIPTOR": _CHALLENGESOLUTIONS,
          "__module__": "spotify.login5.v3.login5_pb2"
          # @@protoc_insertion_point(class_scope:spotify.login5.v3.ChallengeSolutions)
      },
  )
  _sym_db.RegisterMessage(ChallengeSolutions)
  
  ChallengeSolution = _reflection.GeneratedProtocolMessageType(
      "ChallengeSolution",
      (_message.Message, ),
      {
          "DESCRIPTOR": _CHALLENGESOLUTION,
          "__module__": "spotify.login5.v3.login5_pb2"
          # @@protoc_insertion_point(class_scope:spotify.login5.v3.ChallengeSolution)
      },
  )
  _sym_db.RegisterMessage(ChallengeSolution)
  
  LoginRequest = _reflection.GeneratedProtocolMessageType(
      "LoginRequest",
      (_message.Message, ),
      {
          "DESCRIPTOR": _LOGINREQUEST,
          "__module__": "spotify.login5.v3.login5_pb2"
          # @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginRequest)
      },
  )
  _sym_db.RegisterMessage(LoginRequest)
  
  LoginOk = _reflection.GeneratedProtocolMessageType(
      "LoginOk",
      (_message.Message, ),
      {
          "DESCRIPTOR": _LOGINOK,
          "__module__": "spotify.login5.v3.login5_pb2"
          # @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginOk)
      },
  )
  _sym_db.RegisterMessage(LoginOk)
  
  LoginResponse = _reflection.GeneratedProtocolMessageType(
      "LoginResponse",
      (_message.Message, ),
      {
          "DESCRIPTOR": _LOGINRESPONSE,
          "__module__": "spotify.login5.v3.login5_pb2"
          # @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginResponse)
      },
  )
  _sym_db.RegisterMessage(LoginResponse)
  
  DESCRIPTOR._options = None
  # @@protoc_insertion_point(module_scope)
  