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

package com.fca.uconnect.global;

public final class GlobalUconnectExtAuth {
  private GlobalUconnectExtAuth() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface NavAuthRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.NavAuthRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * string deviceID = 1; /// Device ID Required for Token from Nav Provider
     * </pre>
     *
     * <code>bytes token = 2;</code>
     */
    com.google.protobuf.ByteString getToken();

    /**
     * <pre>
     *&#47; ProviderID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
     */
    int getProviderValue();
    /**
     * <pre>
     *&#47; ProviderID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId getProvider();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.NavAuthRequest}
   */
  public  static final class NavAuthRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.NavAuthRequest)
      NavAuthRequestOrBuilder {
    // Use NavAuthRequest.newBuilder() to construct.
    private NavAuthRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private NavAuthRequest() {
      token_ = com.google.protobuf.ByteString.EMPTY;
      provider_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private NavAuthRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 18: {

              token_ = input.readBytes();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();

              provider_ = rawValue;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest.Builder.class);
    }

    public static final int TOKEN_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString token_;
    /**
     * <pre>
     * string deviceID = 1; /// Device ID Required for Token from Nav Provider
     * </pre>
     *
     * <code>bytes token = 2;</code>
     */
    public com.google.protobuf.ByteString getToken() {
      return token_;
    }

    public static final int PROVIDER_FIELD_NUMBER = 3;
    private int provider_;
    /**
     * <pre>
     *&#47; ProviderID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
     */
    public int getProviderValue() {
      return provider_;
    }
    /**
     * <pre>
     *&#47; ProviderID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId getProvider() {
      com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId result = com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.valueOf(provider_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!token_.isEmpty()) {
        output.writeBytes(2, token_);
      }
      if (provider_ != com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.TOMTOM.getNumber()) {
        output.writeEnum(3, provider_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!token_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, token_);
      }
      if (provider_ != com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.TOMTOM.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, provider_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest other = (com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest) obj;

      boolean result = true;
      result = result && getToken()
          .equals(other.getToken());
      result = result && provider_ == other.provider_;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getToken().hashCode();
      hash = (37 * hash) + PROVIDER_FIELD_NUMBER;
      hash = (53 * hash) + provider_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.NavAuthRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.NavAuthRequest)
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        token_ = com.google.protobuf.ByteString.EMPTY;

        provider_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest result = new com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest(this);
        result.token_ = token_;
        result.provider_ = provider_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest.getDefaultInstance()) return this;
        if (other.getToken() != com.google.protobuf.ByteString.EMPTY) {
          setToken(other.getToken());
        }
        if (other.provider_ != 0) {
          setProviderValue(other.getProviderValue());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString token_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * string deviceID = 1; /// Device ID Required for Token from Nav Provider
       * </pre>
       *
       * <code>bytes token = 2;</code>
       */
      public com.google.protobuf.ByteString getToken() {
        return token_;
      }
      /**
       * <pre>
       * string deviceID = 1; /// Device ID Required for Token from Nav Provider
       * </pre>
       *
       * <code>bytes token = 2;</code>
       */
      public Builder setToken(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string deviceID = 1; /// Device ID Required for Token from Nav Provider
       * </pre>
       *
       * <code>bytes token = 2;</code>
       */
      public Builder clearToken() {
        
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }

      private int provider_ = 0;
      /**
       * <pre>
       *&#47; ProviderID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
       */
      public int getProviderValue() {
        return provider_;
      }
      /**
       * <pre>
       *&#47; ProviderID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
       */
      public Builder setProviderValue(int value) {
        provider_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; ProviderID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId getProvider() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId result = com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.valueOf(provider_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; ProviderID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
       */
      public Builder setProvider(com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        provider_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; ProviderID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId provider = 3;</code>
       */
      public Builder clearProvider() {
        
        provider_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.NavAuthRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.NavAuthRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<NavAuthRequest>
        PARSER = new com.google.protobuf.AbstractParser<NavAuthRequest>() {
      public NavAuthRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new NavAuthRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<NavAuthRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NavAuthRequest> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface servicesListOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.servicesList)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string serviceID = 1;</code>
     */
    java.lang.String getServiceID();
    /**
     * <code>string serviceID = 1;</code>
     */
    com.google.protobuf.ByteString
        getServiceIDBytes();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.servicesList}
   */
  public  static final class servicesList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.servicesList)
      servicesListOrBuilder {
    // Use servicesList.newBuilder() to construct.
    private servicesList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private servicesList() {
      serviceID_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private servicesList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              serviceID_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_servicesList_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_servicesList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.class, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder.class);
    }

    public static final int SERVICEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object serviceID_;
    /**
     * <code>string serviceID = 1;</code>
     */
    public java.lang.String getServiceID() {
      java.lang.Object ref = serviceID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        serviceID_ = s;
        return s;
      }
    }
    /**
     * <code>string serviceID = 1;</code>
     */
    public com.google.protobuf.ByteString
        getServiceIDBytes() {
      java.lang.Object ref = serviceID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serviceID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getServiceIDBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, serviceID_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getServiceIDBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, serviceID_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList other = (com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList) obj;

      boolean result = true;
      result = result && getServiceID()
          .equals(other.getServiceID());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SERVICEID_FIELD_NUMBER;
      hash = (53 * hash) + getServiceID().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.servicesList}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.servicesList)
        com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_servicesList_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_servicesList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.class, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        serviceID_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_servicesList_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList result = new com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList(this);
        result.serviceID_ = serviceID_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.getDefaultInstance()) return this;
        if (!other.getServiceID().isEmpty()) {
          serviceID_ = other.serviceID_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object serviceID_ = "";
      /**
       * <code>string serviceID = 1;</code>
       */
      public java.lang.String getServiceID() {
        java.lang.Object ref = serviceID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          serviceID_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string serviceID = 1;</code>
       */
      public com.google.protobuf.ByteString
          getServiceIDBytes() {
        java.lang.Object ref = serviceID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serviceID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string serviceID = 1;</code>
       */
      public Builder setServiceID(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        serviceID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string serviceID = 1;</code>
       */
      public Builder clearServiceID() {
        
        serviceID_ = getDefaultInstance().getServiceID();
        onChanged();
        return this;
      }
      /**
       * <code>string serviceID = 1;</code>
       */
      public Builder setServiceIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        serviceID_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.servicesList)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.servicesList)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<servicesList>
        PARSER = new com.google.protobuf.AbstractParser<servicesList>() {
      public servicesList parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new servicesList(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<servicesList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<servicesList> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface NavAuthResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.NavAuthResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
     */
    int getResponseValue();
    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Session ID for the current login
     * </pre>
     *
     * <code>bytes sessionId = 2;</code>
     */
    com.google.protobuf.ByteString getSessionId();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    int getFailureReasonCode();

    /**
     * <pre>
     *&#47; Use for token, or for Tom Tom the XML including token and services
     * </pre>
     *
     * <code>bytes tokenFile = 1;</code>
     */
    com.google.protobuf.ByteString getTokenFile();

    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList> 
        getServiceIDsList();
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList getServiceIDs(int index);
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    int getServiceIDsCount();
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder> 
        getServiceIDsOrBuilderList();
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder getServiceIDsOrBuilder(
        int index);

    /**
     * <code>string tokenExpiration = 7;</code>
     */
    java.lang.String getTokenExpiration();
    /**
     * <code>string tokenExpiration = 7;</code>
     */
    com.google.protobuf.ByteString
        getTokenExpirationBytes();

    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
     */
    int getProviderEnumValue();
    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId getProviderEnum();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.NavAuthResponse}
   */
  public  static final class NavAuthResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.NavAuthResponse)
      NavAuthResponseOrBuilder {
    // Use NavAuthResponse.newBuilder() to construct.
    private NavAuthResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private NavAuthResponse() {
      response_ = 0;
      sessionId_ = com.google.protobuf.ByteString.EMPTY;
      isTransient_ = false;
      failureReasonCode_ = 0;
      tokenFile_ = com.google.protobuf.ByteString.EMPTY;
      serviceIDs_ = java.util.Collections.emptyList();
      tokenExpiration_ = "";
      providerEnum_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private NavAuthResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {

              tokenFile_ = input.readBytes();
              break;
            }
            case 18: {

              sessionId_ = input.readBytes();
              break;
            }
            case 24: {

              isTransient_ = input.readBool();
              break;
            }
            case 32: {

              failureReasonCode_ = input.readInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                serviceIDs_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList>();
                mutable_bitField0_ |= 0x00000020;
              }
              serviceIDs_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.parser(), extensionRegistry));
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();

              tokenExpiration_ = s;
              break;
            }
            case 64: {
              int rawValue = input.readEnum();

              providerEnum_ = rawValue;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          serviceIDs_ = java.util.Collections.unmodifiableList(serviceIDs_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.NavAuthResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; NOT_AUTHORIZED
       * </pre>
       *
       * <code>NOT_AUTHORIZED = 1;</code>
       */
      NOT_AUTHORIZED(1),
      /**
       * <pre>
       *&#47; FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      FAILURE(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; NOT_AUTHORIZED
       * </pre>
       *
       * <code>NOT_AUTHORIZED = 1;</code>
       */
      public static final int NOT_AUTHORIZED_VALUE = 1;
      /**
       * <pre>
       *&#47; FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      public static final int FAILURE_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return NOT_AUTHORIZED;
          case 2: return FAILURE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ResponseEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>() {
              public ResponseEnum findValueByNumber(int number) {
                return ResponseEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final ResponseEnum[] VALUES = values();

      public static ResponseEnum valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ResponseEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.NavAuthResponse.ResponseEnum)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.NavAuthResponse.ProviderId}
     */
    public enum ProviderId
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>TOMTOM = 0;</code>
       */
      TOMTOM(0),
      /**
       * <code>TELENAV = 1;</code>
       */
      TELENAV(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>TOMTOM = 0;</code>
       */
      public static final int TOMTOM_VALUE = 0;
      /**
       * <code>TELENAV = 1;</code>
       */
      public static final int TELENAV_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ProviderId valueOf(int value) {
        return forNumber(value);
      }

      public static ProviderId forNumber(int value) {
        switch (value) {
          case 0: return TOMTOM;
          case 1: return TELENAV;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ProviderId>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ProviderId> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ProviderId>() {
              public ProviderId findValueByNumber(int number) {
                return ProviderId.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.getDescriptor().getEnumTypes().get(1);
      }

      private static final ProviderId[] VALUES = values();

      public static ProviderId valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ProviderId(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.NavAuthResponse.ProviderId)
    }

    private int bitField0_;
    public static final int RESPONSE_FIELD_NUMBER = 5;
    private int response_;
    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum.UNRECOGNIZED : result;
    }

    public static final int SESSIONID_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString sessionId_;
    /**
     * <pre>
     *&#47; Session ID for the current login
     * </pre>
     *
     * <code>bytes sessionId = 2;</code>
     */
    public com.google.protobuf.ByteString getSessionId() {
      return sessionId_;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 3;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 4;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

    public static final int TOKENFILE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString tokenFile_;
    /**
     * <pre>
     *&#47; Use for token, or for Tom Tom the XML including token and services
     * </pre>
     *
     * <code>bytes tokenFile = 1;</code>
     */
    public com.google.protobuf.ByteString getTokenFile() {
      return tokenFile_;
    }

    public static final int SERVICEIDS_FIELD_NUMBER = 6;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList> serviceIDs_;
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList> getServiceIDsList() {
      return serviceIDs_;
    }
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder> 
        getServiceIDsOrBuilderList() {
      return serviceIDs_;
    }
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    public int getServiceIDsCount() {
      return serviceIDs_.size();
    }
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList getServiceIDs(int index) {
      return serviceIDs_.get(index);
    }
    /**
     * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder getServiceIDsOrBuilder(
        int index) {
      return serviceIDs_.get(index);
    }

    public static final int TOKENEXPIRATION_FIELD_NUMBER = 7;
    private volatile java.lang.Object tokenExpiration_;
    /**
     * <code>string tokenExpiration = 7;</code>
     */
    public java.lang.String getTokenExpiration() {
      java.lang.Object ref = tokenExpiration_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tokenExpiration_ = s;
        return s;
      }
    }
    /**
     * <code>string tokenExpiration = 7;</code>
     */
    public com.google.protobuf.ByteString
        getTokenExpirationBytes() {
      java.lang.Object ref = tokenExpiration_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tokenExpiration_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROVIDERENUM_FIELD_NUMBER = 8;
    private int providerEnum_;
    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
     */
    public int getProviderEnumValue() {
      return providerEnum_;
    }
    /**
     * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId getProviderEnum() {
      com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId result = com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.valueOf(providerEnum_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!tokenFile_.isEmpty()) {
        output.writeBytes(1, tokenFile_);
      }
      if (!sessionId_.isEmpty()) {
        output.writeBytes(2, sessionId_);
      }
      if (isTransient_ != false) {
        output.writeBool(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(4, failureReasonCode_);
      }
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(5, response_);
      }
      for (int i = 0; i < serviceIDs_.size(); i++) {
        output.writeMessage(6, serviceIDs_.get(i));
      }
      if (!getTokenExpirationBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, tokenExpiration_);
      }
      if (providerEnum_ != com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.TOMTOM.getNumber()) {
        output.writeEnum(8, providerEnum_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!tokenFile_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, tokenFile_);
      }
      if (!sessionId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, sessionId_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, failureReasonCode_);
      }
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, response_);
      }
      for (int i = 0; i < serviceIDs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, serviceIDs_.get(i));
      }
      if (!getTokenExpirationBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, tokenExpiration_);
      }
      if (providerEnum_ != com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.TOMTOM.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(8, providerEnum_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse other = (com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse) obj;

      boolean result = true;
      result = result && response_ == other.response_;
      result = result && getSessionId()
          .equals(other.getSessionId());
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      result = result && getTokenFile()
          .equals(other.getTokenFile());
      result = result && getServiceIDsList()
          .equals(other.getServiceIDsList());
      result = result && getTokenExpiration()
          .equals(other.getTokenExpiration());
      result = result && providerEnum_ == other.providerEnum_;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (37 * hash) + SESSIONID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (37 * hash) + TOKENFILE_FIELD_NUMBER;
      hash = (53 * hash) + getTokenFile().hashCode();
      if (getServiceIDsCount() > 0) {
        hash = (37 * hash) + SERVICEIDS_FIELD_NUMBER;
        hash = (53 * hash) + getServiceIDsList().hashCode();
      }
      hash = (37 * hash) + TOKENEXPIRATION_FIELD_NUMBER;
      hash = (53 * hash) + getTokenExpiration().hashCode();
      hash = (37 * hash) + PROVIDERENUM_FIELD_NUMBER;
      hash = (53 * hash) + providerEnum_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.NavAuthResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.NavAuthResponse)
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getServiceIDsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        response_ = 0;

        sessionId_ = com.google.protobuf.ByteString.EMPTY;

        isTransient_ = false;

        failureReasonCode_ = 0;

        tokenFile_ = com.google.protobuf.ByteString.EMPTY;

        if (serviceIDsBuilder_ == null) {
          serviceIDs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          serviceIDsBuilder_.clear();
        }
        tokenExpiration_ = "";

        providerEnum_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_NavAuthResponse_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse result = new com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.response_ = response_;
        result.sessionId_ = sessionId_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        result.tokenFile_ = tokenFile_;
        if (serviceIDsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            serviceIDs_ = java.util.Collections.unmodifiableList(serviceIDs_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.serviceIDs_ = serviceIDs_;
        } else {
          result.serviceIDs_ = serviceIDsBuilder_.build();
        }
        result.tokenExpiration_ = tokenExpiration_;
        result.providerEnum_ = providerEnum_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.getDefaultInstance()) return this;
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        if (other.getSessionId() != com.google.protobuf.ByteString.EMPTY) {
          setSessionId(other.getSessionId());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        if (other.getTokenFile() != com.google.protobuf.ByteString.EMPTY) {
          setTokenFile(other.getTokenFile());
        }
        if (serviceIDsBuilder_ == null) {
          if (!other.serviceIDs_.isEmpty()) {
            if (serviceIDs_.isEmpty()) {
              serviceIDs_ = other.serviceIDs_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureServiceIDsIsMutable();
              serviceIDs_.addAll(other.serviceIDs_);
            }
            onChanged();
          }
        } else {
          if (!other.serviceIDs_.isEmpty()) {
            if (serviceIDsBuilder_.isEmpty()) {
              serviceIDsBuilder_.dispose();
              serviceIDsBuilder_ = null;
              serviceIDs_ = other.serviceIDs_;
              bitField0_ = (bitField0_ & ~0x00000020);
              serviceIDsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getServiceIDsFieldBuilder() : null;
            } else {
              serviceIDsBuilder_.addAllMessages(other.serviceIDs_);
            }
          }
        }
        if (!other.getTokenExpiration().isEmpty()) {
          tokenExpiration_ = other.tokenExpiration_;
          onChanged();
        }
        if (other.providerEnum_ != 0) {
          setProviderEnumValue(other.getProviderEnumValue());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int response_ = 0;
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ResponseEnum response = 5;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString sessionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public com.google.protobuf.ByteString getSessionId() {
        return sessionId_;
      }
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public Builder setSessionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sessionId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public Builder clearSessionId() {
        
        sessionId_ = getDefaultInstance().getSessionId();
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString tokenFile_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Use for token, or for Tom Tom the XML including token and services
       * </pre>
       *
       * <code>bytes tokenFile = 1;</code>
       */
      public com.google.protobuf.ByteString getTokenFile() {
        return tokenFile_;
      }
      /**
       * <pre>
       *&#47; Use for token, or for Tom Tom the XML including token and services
       * </pre>
       *
       * <code>bytes tokenFile = 1;</code>
       */
      public Builder setTokenFile(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tokenFile_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Use for token, or for Tom Tom the XML including token and services
       * </pre>
       *
       * <code>bytes tokenFile = 1;</code>
       */
      public Builder clearTokenFile() {
        
        tokenFile_ = getDefaultInstance().getTokenFile();
        onChanged();
        return this;
      }

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList> serviceIDs_ =
        java.util.Collections.emptyList();
      private void ensureServiceIDsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          serviceIDs_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList>(serviceIDs_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder> serviceIDsBuilder_;

      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList> getServiceIDsList() {
        if (serviceIDsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(serviceIDs_);
        } else {
          return serviceIDsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public int getServiceIDsCount() {
        if (serviceIDsBuilder_ == null) {
          return serviceIDs_.size();
        } else {
          return serviceIDsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList getServiceIDs(int index) {
        if (serviceIDsBuilder_ == null) {
          return serviceIDs_.get(index);
        } else {
          return serviceIDsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder setServiceIDs(
          int index, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList value) {
        if (serviceIDsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServiceIDsIsMutable();
          serviceIDs_.set(index, value);
          onChanged();
        } else {
          serviceIDsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder setServiceIDs(
          int index, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder builderForValue) {
        if (serviceIDsBuilder_ == null) {
          ensureServiceIDsIsMutable();
          serviceIDs_.set(index, builderForValue.build());
          onChanged();
        } else {
          serviceIDsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder addServiceIDs(com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList value) {
        if (serviceIDsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServiceIDsIsMutable();
          serviceIDs_.add(value);
          onChanged();
        } else {
          serviceIDsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder addServiceIDs(
          int index, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList value) {
        if (serviceIDsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServiceIDsIsMutable();
          serviceIDs_.add(index, value);
          onChanged();
        } else {
          serviceIDsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder addServiceIDs(
          com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder builderForValue) {
        if (serviceIDsBuilder_ == null) {
          ensureServiceIDsIsMutable();
          serviceIDs_.add(builderForValue.build());
          onChanged();
        } else {
          serviceIDsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder addServiceIDs(
          int index, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder builderForValue) {
        if (serviceIDsBuilder_ == null) {
          ensureServiceIDsIsMutable();
          serviceIDs_.add(index, builderForValue.build());
          onChanged();
        } else {
          serviceIDsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder addAllServiceIDs(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList> values) {
        if (serviceIDsBuilder_ == null) {
          ensureServiceIDsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, serviceIDs_);
          onChanged();
        } else {
          serviceIDsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder clearServiceIDs() {
        if (serviceIDsBuilder_ == null) {
          serviceIDs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          serviceIDsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public Builder removeServiceIDs(int index) {
        if (serviceIDsBuilder_ == null) {
          ensureServiceIDsIsMutable();
          serviceIDs_.remove(index);
          onChanged();
        } else {
          serviceIDsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder getServiceIDsBuilder(
          int index) {
        return getServiceIDsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder getServiceIDsOrBuilder(
          int index) {
        if (serviceIDsBuilder_ == null) {
          return serviceIDs_.get(index);  } else {
          return serviceIDsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder> 
           getServiceIDsOrBuilderList() {
        if (serviceIDsBuilder_ != null) {
          return serviceIDsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(serviceIDs_);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder addServiceIDsBuilder() {
        return getServiceIDsFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.getDefaultInstance());
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder addServiceIDsBuilder(
          int index) {
        return getServiceIDsFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.getDefaultInstance());
      }
      /**
       * <code>repeated .com.fca.uconnect.global.servicesList ServiceIDs = 6;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder> 
           getServiceIDsBuilderList() {
        return getServiceIDsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder> 
          getServiceIDsFieldBuilder() {
        if (serviceIDsBuilder_ == null) {
          serviceIDsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesList.Builder, com.fca.uconnect.global.GlobalUconnectExtAuth.servicesListOrBuilder>(
                  serviceIDs_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          serviceIDs_ = null;
        }
        return serviceIDsBuilder_;
      }

      private java.lang.Object tokenExpiration_ = "";
      /**
       * <code>string tokenExpiration = 7;</code>
       */
      public java.lang.String getTokenExpiration() {
        java.lang.Object ref = tokenExpiration_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tokenExpiration_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tokenExpiration = 7;</code>
       */
      public com.google.protobuf.ByteString
          getTokenExpirationBytes() {
        java.lang.Object ref = tokenExpiration_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tokenExpiration_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tokenExpiration = 7;</code>
       */
      public Builder setTokenExpiration(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tokenExpiration_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string tokenExpiration = 7;</code>
       */
      public Builder clearTokenExpiration() {
        
        tokenExpiration_ = getDefaultInstance().getTokenExpiration();
        onChanged();
        return this;
      }
      /**
       * <code>string tokenExpiration = 7;</code>
       */
      public Builder setTokenExpirationBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        tokenExpiration_ = value;
        onChanged();
        return this;
      }

      private int providerEnum_ = 0;
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
       */
      public int getProviderEnumValue() {
        return providerEnum_;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
       */
      public Builder setProviderEnumValue(int value) {
        providerEnum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId getProviderEnum() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId result = com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.valueOf(providerEnum_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
       */
      public Builder setProviderEnum(com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse.ProviderId value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        providerEnum_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.NavAuthResponse.ProviderId providerEnum = 8;</code>
       */
      public Builder clearProviderEnum() {
        
        providerEnum_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.NavAuthResponse)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.NavAuthResponse)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<NavAuthResponse>
        PARSER = new com.google.protobuf.AbstractParser<NavAuthResponse>() {
      public NavAuthResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new NavAuthResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<NavAuthResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NavAuthResponse> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.NavAuthResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProfileTokenRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ProfileTokenRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; Username for Eco Coaching
     * </pre>
     *
     * <code>string userName = 1;</code>
     */
    java.lang.String getUserName();
    /**
     * <pre>
     *&#47; Username for Eco Coaching
     * </pre>
     *
     * <code>string userName = 1;</code>
     */
    com.google.protobuf.ByteString
        getUserNameBytes();

    /**
     * <pre>
     *&#47; Credential for Eco Coaching, should be encrypted
     * </pre>
     *
     * <code>bytes credential = 2;</code>
     */
    com.google.protobuf.ByteString getCredential();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.ProfileTokenRequest}
   */
  public  static final class ProfileTokenRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ProfileTokenRequest)
      ProfileTokenRequestOrBuilder {
    // Use ProfileTokenRequest.newBuilder() to construct.
    private ProfileTokenRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProfileTokenRequest() {
      userName_ = "";
      credential_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ProfileTokenRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              userName_ = s;
              break;
            }
            case 18: {

              credential_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest.Builder.class);
    }

    public static final int USERNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object userName_;
    /**
     * <pre>
     *&#47; Username for Eco Coaching
     * </pre>
     *
     * <code>string userName = 1;</code>
     */
    public java.lang.String getUserName() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        userName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Username for Eco Coaching
     * </pre>
     *
     * <code>string userName = 1;</code>
     */
    public com.google.protobuf.ByteString
        getUserNameBytes() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        userName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CREDENTIAL_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString credential_;
    /**
     * <pre>
     *&#47; Credential for Eco Coaching, should be encrypted
     * </pre>
     *
     * <code>bytes credential = 2;</code>
     */
    public com.google.protobuf.ByteString getCredential() {
      return credential_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getUserNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, userName_);
      }
      if (!credential_.isEmpty()) {
        output.writeBytes(2, credential_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getUserNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, userName_);
      }
      if (!credential_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, credential_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest other = (com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest) obj;

      boolean result = true;
      result = result && getUserName()
          .equals(other.getUserName());
      result = result && getCredential()
          .equals(other.getCredential());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUserName().hashCode();
      hash = (37 * hash) + CREDENTIAL_FIELD_NUMBER;
      hash = (53 * hash) + getCredential().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ProfileTokenRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ProfileTokenRequest)
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        userName_ = "";

        credential_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest result = new com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest(this);
        result.userName_ = userName_;
        result.credential_ = credential_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest.getDefaultInstance()) return this;
        if (!other.getUserName().isEmpty()) {
          userName_ = other.userName_;
          onChanged();
        }
        if (other.getCredential() != com.google.protobuf.ByteString.EMPTY) {
          setCredential(other.getCredential());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object userName_ = "";
      /**
       * <pre>
       *&#47; Username for Eco Coaching
       * </pre>
       *
       * <code>string userName = 1;</code>
       */
      public java.lang.String getUserName() {
        java.lang.Object ref = userName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          userName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Username for Eco Coaching
       * </pre>
       *
       * <code>string userName = 1;</code>
       */
      public com.google.protobuf.ByteString
          getUserNameBytes() {
        java.lang.Object ref = userName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          userName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Username for Eco Coaching
       * </pre>
       *
       * <code>string userName = 1;</code>
       */
      public Builder setUserName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        userName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Username for Eco Coaching
       * </pre>
       *
       * <code>string userName = 1;</code>
       */
      public Builder clearUserName() {
        
        userName_ = getDefaultInstance().getUserName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Username for Eco Coaching
       * </pre>
       *
       * <code>string userName = 1;</code>
       */
      public Builder setUserNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        userName_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString credential_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Credential for Eco Coaching, should be encrypted
       * </pre>
       *
       * <code>bytes credential = 2;</code>
       */
      public com.google.protobuf.ByteString getCredential() {
        return credential_;
      }
      /**
       * <pre>
       *&#47; Credential for Eco Coaching, should be encrypted
       * </pre>
       *
       * <code>bytes credential = 2;</code>
       */
      public Builder setCredential(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        credential_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Credential for Eco Coaching, should be encrypted
       * </pre>
       *
       * <code>bytes credential = 2;</code>
       */
      public Builder clearCredential() {
        
        credential_ = getDefaultInstance().getCredential();
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ProfileTokenRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProfileTokenRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ProfileTokenRequest>
        PARSER = new com.google.protobuf.AbstractParser<ProfileTokenRequest>() {
      public ProfileTokenRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new ProfileTokenRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ProfileTokenRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ProfileTokenRequest> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProfileTokenResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ProfileTokenResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
     */
    int getResponseValue();
    /**
     * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Session ID for the current login
     * </pre>
     *
     * <code>bytes sessionId = 2;</code>
     */
    com.google.protobuf.ByteString getSessionId();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    int getFailureReasonCode();

    /**
     * <pre>
     *&#47; Returned Profile Token
     * </pre>
     *
     * <code>bytes profileToken = 5;</code>
     */
    com.google.protobuf.ByteString getProfileToken();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.ProfileTokenResponse}
   */
  public  static final class ProfileTokenResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ProfileTokenResponse)
      ProfileTokenResponseOrBuilder {
    // Use ProfileTokenResponse.newBuilder() to construct.
    private ProfileTokenResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProfileTokenResponse() {
      response_ = 0;
      sessionId_ = com.google.protobuf.ByteString.EMPTY;
      isTransient_ = false;
      failureReasonCode_ = 0;
      profileToken_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ProfileTokenResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
            case 18: {

              sessionId_ = input.readBytes();
              break;
            }
            case 24: {

              isTransient_ = input.readBool();
              break;
            }
            case 32: {

              failureReasonCode_ = input.readInt32();
              break;
            }
            case 42: {

              profileToken_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; NOT_AUTHORIZED
       * </pre>
       *
       * <code>NOT_AUTHORIZED = 1;</code>
       */
      NOT_AUTHORIZED(1),
      /**
       * <pre>
       *&#47; FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      FAILURE(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; NOT_AUTHORIZED
       * </pre>
       *
       * <code>NOT_AUTHORIZED = 1;</code>
       */
      public static final int NOT_AUTHORIZED_VALUE = 1;
      /**
       * <pre>
       *&#47; FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      public static final int FAILURE_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return NOT_AUTHORIZED;
          case 2: return FAILURE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ResponseEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>() {
              public ResponseEnum findValueByNumber(int number) {
                return ResponseEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final ResponseEnum[] VALUES = values();

      public static ResponseEnum valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ResponseEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum)
    }

    public static final int RESPONSE_FIELD_NUMBER = 1;
    private int response_;
    /**
     * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum.UNRECOGNIZED : result;
    }

    public static final int SESSIONID_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString sessionId_;
    /**
     * <pre>
     *&#47; Session ID for the current login
     * </pre>
     *
     * <code>bytes sessionId = 2;</code>
     */
    public com.google.protobuf.ByteString getSessionId() {
      return sessionId_;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 3;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 4;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

    public static final int PROFILETOKEN_FIELD_NUMBER = 5;
    private com.google.protobuf.ByteString profileToken_;
    /**
     * <pre>
     *&#47; Returned Profile Token
     * </pre>
     *
     * <code>bytes profileToken = 5;</code>
     */
    public com.google.protobuf.ByteString getProfileToken() {
      return profileToken_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(1, response_);
      }
      if (!sessionId_.isEmpty()) {
        output.writeBytes(2, sessionId_);
      }
      if (isTransient_ != false) {
        output.writeBool(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(4, failureReasonCode_);
      }
      if (!profileToken_.isEmpty()) {
        output.writeBytes(5, profileToken_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, response_);
      }
      if (!sessionId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, sessionId_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, failureReasonCode_);
      }
      if (!profileToken_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, profileToken_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse other = (com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse) obj;

      boolean result = true;
      result = result && response_ == other.response_;
      result = result && getSessionId()
          .equals(other.getSessionId());
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      result = result && getProfileToken()
          .equals(other.getProfileToken());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (37 * hash) + SESSIONID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (37 * hash) + PROFILETOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getProfileToken().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ProfileTokenResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ProfileTokenResponse)
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        response_ = 0;

        sessionId_ = com.google.protobuf.ByteString.EMPTY;

        isTransient_ = false;

        failureReasonCode_ = 0;

        profileToken_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_ProfileTokenResponse_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse result = new com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse(this);
        result.response_ = response_;
        result.sessionId_ = sessionId_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        result.profileToken_ = profileToken_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.getDefaultInstance()) return this;
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        if (other.getSessionId() != com.google.protobuf.ByteString.EMPTY) {
          setSessionId(other.getSessionId());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        if (other.getProfileToken() != com.google.protobuf.ByteString.EMPTY) {
          setProfileToken(other.getProfileToken());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int response_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ProfileTokenResponse.ResponseEnum response = 1;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString sessionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public com.google.protobuf.ByteString getSessionId() {
        return sessionId_;
      }
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public Builder setSessionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sessionId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public Builder clearSessionId() {
        
        sessionId_ = getDefaultInstance().getSessionId();
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString profileToken_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Returned Profile Token
       * </pre>
       *
       * <code>bytes profileToken = 5;</code>
       */
      public com.google.protobuf.ByteString getProfileToken() {
        return profileToken_;
      }
      /**
       * <pre>
       *&#47; Returned Profile Token
       * </pre>
       *
       * <code>bytes profileToken = 5;</code>
       */
      public Builder setProfileToken(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        profileToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Returned Profile Token
       * </pre>
       *
       * <code>bytes profileToken = 5;</code>
       */
      public Builder clearProfileToken() {
        
        profileToken_ = getDefaultInstance().getProfileToken();
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ProfileTokenResponse)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProfileTokenResponse)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ProfileTokenResponse>
        PARSER = new com.google.protobuf.AbstractParser<ProfileTokenResponse>() {
      public ProfileTokenResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new ProfileTokenResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ProfileTokenResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ProfileTokenResponse> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.ProfileTokenResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LoginRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.LoginRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47;Is this initial login or a pin authorized login.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
     */
    int getAccessValue();
    /**
     * <pre>
     *&#47;Is this initial login or a pin authorized login.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum getAccess();

    /**
     * <pre>
     *&#47; Login Id for current user.
     * </pre>
     *
     * <code>string identifier = 2;</code>
     */
    java.lang.String getIdentifier();
    /**
     * <pre>
     *&#47; Login Id for current user.
     * </pre>
     *
     * <code>string identifier = 2;</code>
     */
    com.google.protobuf.ByteString
        getIdentifierBytes();

    /**
     * <pre>
     *&#47; Password for current user
     * </pre>
     *
     * <code>string credentials = 3;</code>
     */
    java.lang.String getCredentials();
    /**
     * <pre>
     *&#47; Password for current user
     * </pre>
     *
     * <code>string credentials = 3;</code>
     */
    com.google.protobuf.ByteString
        getCredentialsBytes();

    /**
     * <pre>
     *&#47;For passing authorization tokens
     * </pre>
     *
     * <code>bytes token = 4;</code>
     */
    com.google.protobuf.ByteString getToken();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.LoginRequest}
   */
  public  static final class LoginRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.LoginRequest)
      LoginRequestOrBuilder {
    // Use LoginRequest.newBuilder() to construct.
    private LoginRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LoginRequest() {
      access_ = 0;
      identifier_ = "";
      credentials_ = "";
      token_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private LoginRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              access_ = rawValue;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              identifier_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              credentials_ = s;
              break;
            }
            case 34: {

              token_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.LoginRequest.AccessLevelEnum}
     */
    public enum AccessLevelEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Base Enumeration
       * </pre>
       *
       * <code>BASE = 0;</code>
       */
      BASE(0),
      /**
       * <pre>
       *&#47; Pin Authorized
       * </pre>
       *
       * <code>PIN_AUTHORIZED = 1;</code>
       */
      PIN_AUTHORIZED(1),
      /**
       * <pre>
       *&#47; For Eco Coaching Profiles
       * </pre>
       *
       * <code>TOKENAUTHORIZED = 2;</code>
       */
      TOKENAUTHORIZED(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Base Enumeration
       * </pre>
       *
       * <code>BASE = 0;</code>
       */
      public static final int BASE_VALUE = 0;
      /**
       * <pre>
       *&#47; Pin Authorized
       * </pre>
       *
       * <code>PIN_AUTHORIZED = 1;</code>
       */
      public static final int PIN_AUTHORIZED_VALUE = 1;
      /**
       * <pre>
       *&#47; For Eco Coaching Profiles
       * </pre>
       *
       * <code>TOKENAUTHORIZED = 2;</code>
       */
      public static final int TOKENAUTHORIZED_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AccessLevelEnum valueOf(int value) {
        return forNumber(value);
      }

      public static AccessLevelEnum forNumber(int value) {
        switch (value) {
          case 0: return BASE;
          case 1: return PIN_AUTHORIZED;
          case 2: return TOKENAUTHORIZED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<AccessLevelEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          AccessLevelEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<AccessLevelEnum>() {
              public AccessLevelEnum findValueByNumber(int number) {
                return AccessLevelEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final AccessLevelEnum[] VALUES = values();

      public static AccessLevelEnum valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private AccessLevelEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.LoginRequest.AccessLevelEnum)
    }

    public static final int ACCESS_FIELD_NUMBER = 1;
    private int access_;
    /**
     * <pre>
     *&#47;Is this initial login or a pin authorized login.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
     */
    public int getAccessValue() {
      return access_;
    }
    /**
     * <pre>
     *&#47;Is this initial login or a pin authorized login.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum getAccess() {
      com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum.valueOf(access_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum.UNRECOGNIZED : result;
    }

    public static final int IDENTIFIER_FIELD_NUMBER = 2;
    private volatile java.lang.Object identifier_;
    /**
     * <pre>
     *&#47; Login Id for current user.
     * </pre>
     *
     * <code>string identifier = 2;</code>
     */
    public java.lang.String getIdentifier() {
      java.lang.Object ref = identifier_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        identifier_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Login Id for current user.
     * </pre>
     *
     * <code>string identifier = 2;</code>
     */
    public com.google.protobuf.ByteString
        getIdentifierBytes() {
      java.lang.Object ref = identifier_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        identifier_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CREDENTIALS_FIELD_NUMBER = 3;
    private volatile java.lang.Object credentials_;
    /**
     * <pre>
     *&#47; Password for current user
     * </pre>
     *
     * <code>string credentials = 3;</code>
     */
    public java.lang.String getCredentials() {
      java.lang.Object ref = credentials_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        credentials_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Password for current user
     * </pre>
     *
     * <code>string credentials = 3;</code>
     */
    public com.google.protobuf.ByteString
        getCredentialsBytes() {
      java.lang.Object ref = credentials_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        credentials_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOKEN_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString token_;
    /**
     * <pre>
     *&#47;For passing authorization tokens
     * </pre>
     *
     * <code>bytes token = 4;</code>
     */
    public com.google.protobuf.ByteString getToken() {
      return token_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (access_ != com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum.BASE.getNumber()) {
        output.writeEnum(1, access_);
      }
      if (!getIdentifierBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, identifier_);
      }
      if (!getCredentialsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, credentials_);
      }
      if (!token_.isEmpty()) {
        output.writeBytes(4, token_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (access_ != com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum.BASE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, access_);
      }
      if (!getIdentifierBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, identifier_);
      }
      if (!getCredentialsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, credentials_);
      }
      if (!token_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, token_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest other = (com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest) obj;

      boolean result = true;
      result = result && access_ == other.access_;
      result = result && getIdentifier()
          .equals(other.getIdentifier());
      result = result && getCredentials()
          .equals(other.getCredentials());
      result = result && getToken()
          .equals(other.getToken());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ACCESS_FIELD_NUMBER;
      hash = (53 * hash) + access_;
      hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER;
      hash = (53 * hash) + getIdentifier().hashCode();
      hash = (37 * hash) + CREDENTIALS_FIELD_NUMBER;
      hash = (53 * hash) + getCredentials().hashCode();
      hash = (37 * hash) + TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getToken().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.LoginRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.LoginRequest)
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        access_ = 0;

        identifier_ = "";

        credentials_ = "";

        token_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest result = new com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest(this);
        result.access_ = access_;
        result.identifier_ = identifier_;
        result.credentials_ = credentials_;
        result.token_ = token_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.getDefaultInstance()) return this;
        if (other.access_ != 0) {
          setAccessValue(other.getAccessValue());
        }
        if (!other.getIdentifier().isEmpty()) {
          identifier_ = other.identifier_;
          onChanged();
        }
        if (!other.getCredentials().isEmpty()) {
          credentials_ = other.credentials_;
          onChanged();
        }
        if (other.getToken() != com.google.protobuf.ByteString.EMPTY) {
          setToken(other.getToken());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int access_ = 0;
      /**
       * <pre>
       *&#47;Is this initial login or a pin authorized login.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
       */
      public int getAccessValue() {
        return access_;
      }
      /**
       * <pre>
       *&#47;Is this initial login or a pin authorized login.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
       */
      public Builder setAccessValue(int value) {
        access_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Is this initial login or a pin authorized login.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum getAccess() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum.valueOf(access_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47;Is this initial login or a pin authorized login.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
       */
      public Builder setAccess(com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest.AccessLevelEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        access_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Is this initial login or a pin authorized login.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LoginRequest.AccessLevelEnum access = 1;</code>
       */
      public Builder clearAccess() {
        
        access_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object identifier_ = "";
      /**
       * <pre>
       *&#47; Login Id for current user.
       * </pre>
       *
       * <code>string identifier = 2;</code>
       */
      public java.lang.String getIdentifier() {
        java.lang.Object ref = identifier_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          identifier_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Login Id for current user.
       * </pre>
       *
       * <code>string identifier = 2;</code>
       */
      public com.google.protobuf.ByteString
          getIdentifierBytes() {
        java.lang.Object ref = identifier_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          identifier_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Login Id for current user.
       * </pre>
       *
       * <code>string identifier = 2;</code>
       */
      public Builder setIdentifier(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        identifier_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Login Id for current user.
       * </pre>
       *
       * <code>string identifier = 2;</code>
       */
      public Builder clearIdentifier() {
        
        identifier_ = getDefaultInstance().getIdentifier();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Login Id for current user.
       * </pre>
       *
       * <code>string identifier = 2;</code>
       */
      public Builder setIdentifierBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        identifier_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object credentials_ = "";
      /**
       * <pre>
       *&#47; Password for current user
       * </pre>
       *
       * <code>string credentials = 3;</code>
       */
      public java.lang.String getCredentials() {
        java.lang.Object ref = credentials_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          credentials_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Password for current user
       * </pre>
       *
       * <code>string credentials = 3;</code>
       */
      public com.google.protobuf.ByteString
          getCredentialsBytes() {
        java.lang.Object ref = credentials_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          credentials_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Password for current user
       * </pre>
       *
       * <code>string credentials = 3;</code>
       */
      public Builder setCredentials(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        credentials_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Password for current user
       * </pre>
       *
       * <code>string credentials = 3;</code>
       */
      public Builder clearCredentials() {
        
        credentials_ = getDefaultInstance().getCredentials();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Password for current user
       * </pre>
       *
       * <code>string credentials = 3;</code>
       */
      public Builder setCredentialsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        credentials_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString token_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47;For passing authorization tokens
       * </pre>
       *
       * <code>bytes token = 4;</code>
       */
      public com.google.protobuf.ByteString getToken() {
        return token_;
      }
      /**
       * <pre>
       *&#47;For passing authorization tokens
       * </pre>
       *
       * <code>bytes token = 4;</code>
       */
      public Builder setToken(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;For passing authorization tokens
       * </pre>
       *
       * <code>bytes token = 4;</code>
       */
      public Builder clearToken() {
        
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.LoginRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.LoginRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LoginRequest>
        PARSER = new com.google.protobuf.AbstractParser<LoginRequest>() {
      public LoginRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new LoginRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LoginRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LoginRequest> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LoginResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.LoginResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
     */
    int getResponseValue();
    /**
     * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Session ID for the current login
     * </pre>
     *
     * <code>bytes sessionId = 2;</code>
     */
    com.google.protobuf.ByteString getSessionId();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * <pre>
   **
   * This is for loginResponse.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;Login Response Example Message:&lt;/h4&gt;
   *  &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1488868821160
   * 		messageId: 1
   * 		correlationId: 1
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.loginResponse]
   * 		 {
   * 			response: SUCCESS
   * 			sessionId: "-&#92;0274&#92;302]&#92;325&#92;324 &#92;354K"
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.LoginResponse}
   */
  public  static final class LoginResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.LoginResponse)
      LoginResponseOrBuilder {
    // Use LoginResponse.newBuilder() to construct.
    private LoginResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LoginResponse() {
      response_ = 0;
      sessionId_ = com.google.protobuf.ByteString.EMPTY;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private LoginResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
            case 18: {

              sessionId_ = input.readBytes();
              break;
            }
            case 24: {

              isTransient_ = input.readBool();
              break;
            }
            case 32: {

              failureReasonCode_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.LoginResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; NOT_AUTHORIZED
       * </pre>
       *
       * <code>NOT_AUTHORIZED = 1;</code>
       */
      NOT_AUTHORIZED(1),
      /**
       * <pre>
       *&#47; FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      FAILURE(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; NOT_AUTHORIZED
       * </pre>
       *
       * <code>NOT_AUTHORIZED = 1;</code>
       */
      public static final int NOT_AUTHORIZED_VALUE = 1;
      /**
       * <pre>
       *&#47; FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      public static final int FAILURE_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return NOT_AUTHORIZED;
          case 2: return FAILURE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ResponseEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>() {
              public ResponseEnum findValueByNumber(int number) {
                return ResponseEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final ResponseEnum[] VALUES = values();

      public static ResponseEnum valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ResponseEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.LoginResponse.ResponseEnum)
    }

    public static final int RESPONSE_FIELD_NUMBER = 1;
    private int response_;
    /**
     * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum.UNRECOGNIZED : result;
    }

    public static final int SESSIONID_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString sessionId_;
    /**
     * <pre>
     *&#47; Session ID for the current login
     * </pre>
     *
     * <code>bytes sessionId = 2;</code>
     */
    public com.google.protobuf.ByteString getSessionId() {
      return sessionId_;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 3;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 4;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(1, response_);
      }
      if (!sessionId_.isEmpty()) {
        output.writeBytes(2, sessionId_);
      }
      if (isTransient_ != false) {
        output.writeBool(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(4, failureReasonCode_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, response_);
      }
      if (!sessionId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, sessionId_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, failureReasonCode_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse other = (com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse) obj;

      boolean result = true;
      result = result && response_ == other.response_;
      result = result && getSessionId()
          .equals(other.getSessionId());
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (37 * hash) + SESSIONID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This is for loginResponse.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;Login Response Example Message:&lt;/h4&gt;
     *  &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1488868821160
     * 		messageId: 1
     * 		correlationId: 1
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.loginResponse]
     * 		 {
     * 			response: SUCCESS
     * 			sessionId: "-&#92;0274&#92;302]&#92;325&#92;324 &#92;354K"
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.LoginResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.LoginResponse)
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        response_ = 0;

        sessionId_ = com.google.protobuf.ByteString.EMPTY;

        isTransient_ = false;

        failureReasonCode_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LoginResponse_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse result = new com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse(this);
        result.response_ = response_;
        result.sessionId_ = sessionId_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.getDefaultInstance()) return this;
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        if (other.getSessionId() != com.google.protobuf.ByteString.EMPTY) {
          setSessionId(other.getSessionId());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int response_ = 0;
      /**
       * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.LoginResponse.ResponseEnum response = 1;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString sessionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public com.google.protobuf.ByteString getSessionId() {
        return sessionId_;
      }
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public Builder setSessionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sessionId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Session ID for the current login
       * </pre>
       *
       * <code>bytes sessionId = 2;</code>
       */
      public Builder clearSessionId() {
        
        sessionId_ = getDefaultInstance().getSessionId();
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.LoginResponse)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.LoginResponse)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LoginResponse>
        PARSER = new com.google.protobuf.AbstractParser<LoginResponse>() {
      public LoginResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new LoginResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LoginResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LoginResponse> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.LoginResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LogoutRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.LogoutRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   **
   * The LogoutRequest has no data elements.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;LogoutRequest Example Message:&lt;/h4&gt;
   *  &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1488869130664
   * 		messageId: 20
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.logoutRequest]
   * 		 {
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.LogoutRequest}
   */
  public  static final class LogoutRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.LogoutRequest)
      LogoutRequestOrBuilder {
    // Use LogoutRequest.newBuilder() to construct.
    private LogoutRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LogoutRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private LogoutRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest other = (com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest) obj;

      boolean result = true;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * The LogoutRequest has no data elements.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;LogoutRequest Example Message:&lt;/h4&gt;
     *  &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1488869130664
     * 		messageId: 20
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.logoutRequest]
     * 		 {
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.LogoutRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.LogoutRequest)
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest result = new com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest(this);
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest.getDefaultInstance()) return this;
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.LogoutRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.LogoutRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LogoutRequest>
        PARSER = new com.google.protobuf.AbstractParser<LogoutRequest>() {
      public LogoutRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new LogoutRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LogoutRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LogoutRequest> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LogoutResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.LogoutResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47;This is an enum which identifies whether logout is successful or has failed.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
     */
    int getResponseValue();
    /**
     * <pre>
     *&#47;This is an enum which identifies whether logout is successful or has failed.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * <pre>
   **
   * This will be response to LogoutRequest.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;LogoutResponse Example Message:&lt;/h4&gt;
   *  &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1488869130739
   * 		messageId: 22
   * 		correlationId: 20
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.logoutResponse]
   * 		 {
   * 			response: SUCCESS
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.LogoutResponse}
   */
  public  static final class LogoutResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.LogoutResponse)
      LogoutResponseOrBuilder {
    // Use LogoutResponse.newBuilder() to construct.
    private LogoutResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LogoutResponse() {
      response_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private LogoutResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
            case 16: {

              isTransient_ = input.readBool();
              break;
            }
            case 24: {

              failureReasonCode_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum}
     */
    public enum LogoutResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; Failure
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      FAILURE(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; Failure
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      public static final int FAILURE_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static LogoutResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static LogoutResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return FAILURE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<LogoutResponseEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          LogoutResponseEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<LogoutResponseEnum>() {
              public LogoutResponseEnum findValueByNumber(int number) {
                return LogoutResponseEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final LogoutResponseEnum[] VALUES = values();

      public static LogoutResponseEnum valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private LogoutResponseEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum)
    }

    public static final int RESPONSE_FIELD_NUMBER = 1;
    private int response_;
    /**
     * <pre>
     *&#47;This is an enum which identifies whether logout is successful or has failed.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <pre>
     *&#47;This is an enum which identifies whether logout is successful or has failed.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum.UNRECOGNIZED : result;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 2;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 3;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(1, response_);
      }
      if (isTransient_ != false) {
        output.writeBool(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(3, failureReasonCode_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, response_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, failureReasonCode_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse other = (com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse) obj;

      boolean result = true;
      result = result && response_ == other.response_;
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This will be response to LogoutRequest.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;LogoutResponse Example Message:&lt;/h4&gt;
     *  &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1488869130739
     * 		messageId: 22
     * 		correlationId: 20
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.logoutResponse]
     * 		 {
     * 			response: SUCCESS
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.LogoutResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.LogoutResponse)
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.class, com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        response_ = 0;

        isTransient_ = false;

        failureReasonCode_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.internal_static_com_fca_uconnect_global_LogoutResponse_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse build() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse result = new com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse(this);
        result.response_ = response_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.getDefaultInstance()) return this;
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int response_ = 0;
      /**
       * <pre>
       *&#47;This is an enum which identifies whether logout is successful or has failed.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <pre>
       *&#47;This is an enum which identifies whether logout is successful or has failed.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;This is an enum which identifies whether logout is successful or has failed.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47;This is an enum which identifies whether logout is successful or has failed.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse.LogoutResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;This is an enum which identifies whether logout is successful or has failed.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.LogoutResponse.LogoutResponseEnum response = 1;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.LogoutResponse)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.LogoutResponse)
    private static final com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LogoutResponse>
        PARSER = new com.google.protobuf.AbstractParser<LogoutResponse>() {
      public LogoutResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new LogoutResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LogoutResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LogoutResponse> getParserForType() {
      return PARSER;
    }

    public com.fca.uconnect.global.GlobalUconnectExtAuth.LogoutResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_NavAuthRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_NavAuthRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_servicesList_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_servicesList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_NavAuthResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_NavAuthResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ProfileTokenRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ProfileTokenRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ProfileTokenResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ProfileTokenResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_LoginRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_LoginRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_LoginResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_LoginResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_LogoutRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_LogoutRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_LogoutResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_LogoutResponse_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\036Global_Uconnect_Ext_Auth.proto\022\027com.fc" +
      "a.uconnect.global\032\034Global_Uconnect_Devic" +
      "e.proto\"f\n\016NavAuthRequest\022\r\n\005token\030\002 \001(\014" +
      "\022E\n\010provider\030\003 \001(\01623.com.fca.uconnect.gl" +
      "obal.NavAuthResponse.ProviderId\"!\n\014servi" +
      "cesList\022\021\n\tserviceID\030\001 \001(\t\"\264\003\n\017NavAuthRe" +
      "sponse\022G\n\010response\030\005 \001(\01625.com.fca.uconn" +
      "ect.global.NavAuthResponse.ResponseEnum\022" +
      "\021\n\tsessionId\030\002 \001(\014\022\023\n\013isTransient\030\003 \001(\010\022" +
      "\031\n\021failureReasonCode\030\004 \001(\005\022\021\n\ttokenFile\030",
      "\001 \001(\014\0229\n\nServiceIDs\030\006 \003(\0132%.com.fca.ucon" +
      "nect.global.servicesList\022\027\n\017tokenExpirat" +
      "ion\030\007 \001(\t\022I\n\014providerEnum\030\010 \001(\01623.com.fc" +
      "a.uconnect.global.NavAuthResponse.Provid" +
      "erId\"<\n\014ResponseEnum\022\013\n\007SUCCESS\020\000\022\022\n\016NOT" +
      "_AUTHORIZED\020\001\022\013\n\007FAILURE\020\002\"%\n\nProviderId" +
      "\022\n\n\006TOMTOM\020\000\022\013\n\007TELENAV\020\001\";\n\023ProfileToke" +
      "nRequest\022\020\n\010userName\030\001 \001(\t\022\022\n\ncredential" +
      "\030\002 \001(\014\"\373\001\n\024ProfileTokenResponse\022L\n\010respo" +
      "nse\030\001 \001(\0162:.com.fca.uconnect.global.Prof",
      "ileTokenResponse.ResponseEnum\022\021\n\tsession" +
      "Id\030\002 \001(\014\022\023\n\013isTransient\030\003 \001(\010\022\031\n\021failure" +
      "ReasonCode\030\004 \001(\005\022\024\n\014profileToken\030\005 \001(\014\"<" +
      "\n\014ResponseEnum\022\013\n\007SUCCESS\020\000\022\022\n\016NOT_AUTHO" +
      "RIZED\020\001\022\013\n\007FAILURE\020\002\"\323\001\n\014LoginRequest\022E\n" +
      "\006access\030\001 \001(\01625.com.fca.uconnect.global." +
      "LoginRequest.AccessLevelEnum\022\022\n\nidentifi" +
      "er\030\002 \001(\t\022\023\n\013credentials\030\003 \001(\t\022\r\n\005token\030\004" +
      " \001(\014\"D\n\017AccessLevelEnum\022\010\n\004BASE\020\000\022\022\n\016PIN" +
      "_AUTHORIZED\020\001\022\023\n\017TOKENAUTHORIZED\020\002\"\327\001\n\rL",
      "oginResponse\022E\n\010response\030\001 \001(\01623.com.fca" +
      ".uconnect.global.LoginResponse.ResponseE" +
      "num\022\021\n\tsessionId\030\002 \001(\014\022\023\n\013isTransient\030\003 " +
      "\001(\010\022\031\n\021failureReasonCode\030\004 \001(\005\"<\n\014Respon" +
      "seEnum\022\013\n\007SUCCESS\020\000\022\022\n\016NOT_AUTHORIZED\020\001\022" +
      "\013\n\007FAILURE\020\002\"\017\n\rLogoutRequest\"\276\001\n\016Logout" +
      "Response\022L\n\010response\030\001 \001(\0162:.com.fca.uco" +
      "nnect.global.LogoutResponse.LogoutRespon" +
      "seEnum\022\023\n\013isTransient\030\002 \001(\010\022\031\n\021failureRe" +
      "asonCode\030\003 \001(\005\".\n\022LogoutResponseEnum\022\013\n\007",
      "SUCCESS\020\000\022\013\n\007FAILURE\020\001P\000b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor(),
        }, assigner);
    internal_static_com_fca_uconnect_global_NavAuthRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_NavAuthRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_NavAuthRequest_descriptor,
        new java.lang.String[] { "Token", "Provider", });
    internal_static_com_fca_uconnect_global_servicesList_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_servicesList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_servicesList_descriptor,
        new java.lang.String[] { "ServiceID", });
    internal_static_com_fca_uconnect_global_NavAuthResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_NavAuthResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_NavAuthResponse_descriptor,
        new java.lang.String[] { "Response", "SessionId", "IsTransient", "FailureReasonCode", "TokenFile", "ServiceIDs", "TokenExpiration", "ProviderEnum", });
    internal_static_com_fca_uconnect_global_ProfileTokenRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_ProfileTokenRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ProfileTokenRequest_descriptor,
        new java.lang.String[] { "UserName", "Credential", });
    internal_static_com_fca_uconnect_global_ProfileTokenResponse_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_fca_uconnect_global_ProfileTokenResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ProfileTokenResponse_descriptor,
        new java.lang.String[] { "Response", "SessionId", "IsTransient", "FailureReasonCode", "ProfileToken", });
    internal_static_com_fca_uconnect_global_LoginRequest_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_fca_uconnect_global_LoginRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_LoginRequest_descriptor,
        new java.lang.String[] { "Access", "Identifier", "Credentials", "Token", });
    internal_static_com_fca_uconnect_global_LoginResponse_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_com_fca_uconnect_global_LoginResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_LoginResponse_descriptor,
        new java.lang.String[] { "Response", "SessionId", "IsTransient", "FailureReasonCode", });
    internal_static_com_fca_uconnect_global_LogoutRequest_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_com_fca_uconnect_global_LogoutRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_LogoutRequest_descriptor,
        new java.lang.String[] { });
    internal_static_com_fca_uconnect_global_LogoutResponse_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_com_fca_uconnect_global_LogoutResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_LogoutResponse_descriptor,
        new java.lang.String[] { "Response", "IsTransient", "FailureReasonCode", });
    com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
